Choose Language Hide Translation Bar
Highlighted
Benkins
Level II

DOEs: running a simulation experiment through JSL

I have a large set of DOEs and was hoping to create a jsl script that would do the long string of relatively manual steps: run and open the profiler, set up and run a simulation experiment, and then run the Gaussian process to open the defect profiler.   

 

Using the "save to script" functionality makes it really straightforward to get a jsl script that opens the jmp profiler and then sets it up right through to the having a simulator with given distributions on factors.  But I am struggling to work out how to make this jsl script do two things beyond this: firstly, set the spec limits for defects (these aren't being recorded when I use a save to script), then secondly, set up and run the simulation experiment that generates the new table of defect rates.   

 

Has anyone been able to do either of these things, or have some pointers on where to start? 

 

Alternatively, perhaps is there a way to instead manually run the Monte Carlo behind the simulation experiment?  I imagine this would mean I could simply just extract the model from the profiler and run the Monte Carlo directly on that?

 

Thanks!

 

Ben

 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
cwillden
Super User

Re: DOEs: running a simulation experiment through JSL

Just a quick follow up.  It looks like it will help to set spec limits in the column properties for the prediction formula column.  If you check the scripting index for "Defect Profiler", it looks like there's a really good example of what you want to do.  This is the example script it provides:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
:Pred Formula ABRASION <<
Set Property( "Spec Limits", {LSL( 110 )} );
:Pred Formula MODULUS <<
Set Property(
	"Spec Limits",
	{LSL( 750 ), USL( 1700 )}
);
obj = Profiler(
	Y(
		:Pred Formula ABRASION,
		:Pred Formula MODULUS,
		:Pred Formula ELONG,
		:Pred Formula HARDNESS
	),
	Simulator(
		1,
		Factors(
			SILICA <<
			Random( Normal( 1.25, 0.3266 ) ),
			SILANE <<
			Random(
				Normal weighted( 50, 6.532 )
			),
			SULFUR << Fixed( 2.25 )
		),
		Responses(
			Pred Formula ABRASION << No Noise,
			Pred Formula MODULUS << No Noise,
			Pred Formula ELONG << No Noise,
			Pred Formula HARDNESS << No Noise
		),
		Defect Profiler( 1 ),
		Simulate
	)
);
-- Cameron Willden

View solution in original post

4 REPLIES 4
Highlighted
cwillden
Super User

Re: DOEs: running a simulation experiment through JSL

Does it help to set the spec limits in the column properties?  I imagine it will be possible to access the simulation functionality through JSL. Can you provide us with a minimum working example to work off of?

-- Cameron Willden
Highlighted
cwillden
Super User

Re: DOEs: running a simulation experiment through JSL

Just a quick follow up.  It looks like it will help to set spec limits in the column properties for the prediction formula column.  If you check the scripting index for "Defect Profiler", it looks like there's a really good example of what you want to do.  This is the example script it provides:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
:Pred Formula ABRASION <<
Set Property( "Spec Limits", {LSL( 110 )} );
:Pred Formula MODULUS <<
Set Property(
	"Spec Limits",
	{LSL( 750 ), USL( 1700 )}
);
obj = Profiler(
	Y(
		:Pred Formula ABRASION,
		:Pred Formula MODULUS,
		:Pred Formula ELONG,
		:Pred Formula HARDNESS
	),
	Simulator(
		1,
		Factors(
			SILICA <<
			Random( Normal( 1.25, 0.3266 ) ),
			SILANE <<
			Random(
				Normal weighted( 50, 6.532 )
			),
			SULFUR << Fixed( 2.25 )
		),
		Responses(
			Pred Formula ABRASION << No Noise,
			Pred Formula MODULUS << No Noise,
			Pred Formula ELONG << No Noise,
			Pred Formula HARDNESS << No Noise
		),
		Defect Profiler( 1 ),
		Simulate
	)
);
-- Cameron Willden

View solution in original post

Highlighted
Byron_JMP
Staff

Re: DOEs: running a simulation experiment through JSL

First, add that spec limit to the column property

In the example script above this part of the script does that.

:Pred Formula ABRASION <<Set Property( "Spec Limits", {LSL( 110 )} );

Then run the report like in the script above. For the next step to work, make sure to take note of this in the script.

obj = Profiler(  ...

This lets the "report" be referenced by the variable  "obj"

 

To get the data out of the report I need to tell JMP obj is actually a report.

Then I need to find the table I want in the tree structure. Grey Triangle next to Outline Bar, Right Click it, the Edit, and Show Tree Structure. From there find the name of the box that has the stuff you want.

Then send a message to that part of the report and have it made into a data table, like this.

objr=report(obj);
DefectTable=objr[TableBox( 3 )];
DDT=DefectTable<<Make Into Data Table;

Since you plan to iterate through a list of DOEs, I'd probably name the data table , "DDT" the name of the iteration or something, just to keep the table straight later.

 

ddt<<set name("Table Number "||char( i ));

 

JMP Systems Engineer, Pharm and BioPharm Sciences
Highlighted
Benkins
Level II

Re: DOEs: running a simulation experiment through JSL

Thanks @cwillden and @Byron_JMP, this worked nicely and now I have lots of automated defect simulations! 

Article Labels

    There are no labels assigned to this post.