cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
Ed_F
Level I

Mixture design with special constraints

Good morning,

The aim is to test mixtures of components to target a continuous variable Z.

To achieve this, the blend must contain one (and only one) component from each of the following familly (these categories are made up of components with similar characteristics), plus glycerine (systematically):
Family 1: A, B
Family 2: C, D
Family 3: E, F, G, H, I, J
Family 4: glycerine

Two intermediate continuous variables (Y1 and Y2) can be calculated to indicate whether a run is valid (these two intermediate variables must be within a certain interval for a run to be valid).

After identifying these constraint areas, the aim is to provide a DoE taking into account constraints on inputs (for example, If Family 1 = A then proportion <0.35) to model the impact on Z (rather from a screening perspective).

The method I intended to use:
1 - DoE (families + proportions) to estimate fairly precisely the stress zones on which Y1 and Y2 are in the right range (should I favor a particular DoE? )
2 - Build a much smaller mixing plan (~30 runs) to optimally screen Z. Tho, it seems we can’t create such constraints in JMP.

Do you have any recommendations or steps to follow?

Thank you all, and have a nice day
1 REPLY 1
Victor_G
Super User

Re: Mixture design with special constraints

Hi @Ed_F,

 

It sounds like a good idea to try a simple Mixture design to check the limits and possible constraints of your experimental space before augmenting this initial design into a more sophisticated/detailed one. Here are my responses/comments to your two questions :

  1. I'm surprised by the number of levels (possible raw materials) for Family 3, and all possible combinations that could be involved with the other families factors and their levels. Do you have any possibility to reduce the number of levels in family 3, based on domain expertise, physico-chemical characteristics of the raw materials, etc ... ? The first design doesn't seem to be intended to "pick a winner" but more to understand what is working and what is not working, so you don't need to use all your raw materials from family 3 to understand the possible infeasible/invalid regions of your experimental space. I would recommend based on the chemical info from these raw materials to test maximum 3 different raw materials expressing the maximum chemical variability in your design. 
    If not possible to reduce the number of levels for Family3, you could end up with around 30 runs for this first design, in order to make the ratio vary between 0 and 1 with intermediate values :

Victor_G_0-1734595762987.png

Script for proposed design :

DOE(
	Custom Design,
	{Add Response( Maximize, "Y", ., ., . ),
	Add Factor( Categorical, {"A", "B"}, "Family1", 0 ),
	Add Factor( Categorical, {"C", "D"}, "Family 2", 0 ),
	Add Factor( Categorical, {"E", "F", "G", "H", "I", "J"}, "Family3", 0 ),
	Add Factor( Mixture, 0, 1, "XF1", 0 ), Add Factor( Mixture, 0, 1, "XF2", 0 ),
	Add Factor( Mixture, 0, 1, "XF3", 0 ), Add Factor(
		Mixture, 0, 1, "XF4 (Glycerine)", 0
	), Set Random Seed( 1288978935 ), Number of Starts( 1406 ), Add Term( {1, 1} ),
	Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ), Add Term( {5, 1} ),
	Add Term( {6, 1} ), Add Term( {7, 1} ), Add Term( {1, 1}, {4, 1} ),
	Add Term( {2, 1}, {5, 1} ), Add Term( {3, 1}, {6, 1} ),
	Add Term( {4, 1}, {5, 1} ), Add Term( {4, 1}, {6, 1} ),
	Add Term( {4, 1}, {7, 1} ), Add Term( {5, 1}, {6, 1} ),
	Add Term( {5, 1}, {7, 1} ), Add Term( {6, 1}, {7, 1} ),
	Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
	Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ),
	Add Alias Term( {1, 1}, {7, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
	Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
	Add Alias Term( {2, 1}, {7, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
	Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {7, 1} ),
	Set Sample Size( 30 ), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design,
	Set Run Order( Randomize ), Make Table}
);

If you are able to reduce the number of levels for Family3 to 3 different raw materials, you could end up with a similar design only with 20 runs :

Victor_G_1-1734596112336.png

Script for proposed design :

 

DOE(
	Custom Design,
	{Add Response( Maximize, "Y", ., ., . ),
	Add Factor( Categorical, {"A", "B"}, "Family1", 0 ),
	Add Factor( Categorical, {"C", "D"}, "Family 2", 0 ),
	Add Factor( Categorical, {"E", "F", "G", "H", "I", "J"}, "Family3", 0 ),
	Add Factor( Mixture, 0, 1, "XF1", 0 ), Add Factor( Mixture, 0, 1, "XF2", 0 ),
	Add Factor( Mixture, 0, 1, "XF3", 0 ), Add Factor(
		Mixture, 0, 1, "XF4 (Glycerine)", 0
	), Set Random Seed( 1500506171 ), Number of Starts( 1406 ), Add Term( {1, 1} ),
	Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ), Add Term( {5, 1} ),
	Add Term( {6, 1} ), Add Term( {7, 1} ), Add Potential Term( {1, 1}, {4, 1} ),
	Add Potential Term( {2, 1}, {5, 1} ), Add Potential Term( {3, 1}, {6, 1} ),
	Add Term( {4, 1}, {5, 1} ), Add Term( {4, 1}, {6, 1} ),
	Add Term( {4, 1}, {7, 1} ), Add Term( {5, 1}, {6, 1} ),
	Add Term( {5, 1}, {7, 1} ), Add Term( {6, 1}, {7, 1} ),
	Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
	Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ),
	Add Alias Term( {1, 1}, {7, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
	Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
	Add Alias Term( {2, 1}, {7, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
	Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {7, 1} ),
	Set Sample Size( 20 ), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design,
	Set Run Order( Randomize ), Make Table}
);

 

     2. There are many ways to create constraints for designs in JMP. I would recommend reading the great article by @Jed_Campbell Demystifying Factor Constraints
You can use the Custom Design to Define Factor Constraints, or if you have very complex constraints situation, use a Candidate Set approach to build your dataset of possible candidate points, and then use the Custom Design to select the most informative and relevant points of this dataset based on your model and design specifications. Some talks and presentations about this Candidate Set approach :

What is a covariate in design of experiments? 

Developer Tutorial - Handling Covariates Effectively when Designing Experiments 

Candidate Set Designs: Tailoring DOE Constraints to the Problem (2021-EU-30MP-784) 

 

Hope this first answer and discussion starter may help you,

 

 

Victor GUILLER

"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)