$ONTEXT Analysis of the stability margin of the spark ignition engine Fiat Dedra. References: B.R. Barmish, New tools for robustness of linear systems. McMillan Publishing Company, New York, 1994. M. Abate, B. Barmish, C. Murillo-Sanchez, R. Tempo, Application of some new tools to robust stability analysis of spark ignition engines: A case study. IEEE Trans. Contr. syst. tech., vol.2, 1994, pp. 22. Neculai Andrei, "Models, Test Problems and Applications for Mathematical Programming". Technical Press, Bucharest, 2003. Application A41, page 407. Floudas, C.A., Pardalos, P.M., et al. "Handbook of Test Problems in Local and Global Optimization". Kluwer Academic Publishers, Dordrecht, 1999. Problem 7.3.6. Test problem 16, page 103. $OFFTEXT VARIABLES q1, q2, q3, q4, q5, q6, q7 w frequency k stability margin a0, a1, a2, a3, a4, a5, a6, a7 objval objective function variable; FREE VARIABLES objval; EQUATIONS f Objective function g1 g2 b1l, b1u b2l, b2u b3l, b3u b4l, b4u b5l, b5u b6l, b6u b7l, b7u ga0, ga1, ga2, ga3, ga4, ga5, ga6, ga7 ; f .. objval =e=k; g1 .. -a6*POWER(w,6) + a4*POWER(w,4) - a2*POWER(w,2) + a0 =e= 0; g2 .. a7*POWER(w,6) - a5*POWER(w,4) + a3*POWER(w,2) - a1 =e= 0; b1l .. 3.4329-1.02721*k =l= q1; b1u .. q1 =l= 3.4320+1.02721*k; b2l .. 0.1627-0.06*k =l= q2; b2u .. q2 =l= 0.1627+0.06*k; b3l .. 0.1139-0.0782*k =l= q3; b3u .. q3 =l= 0.1139+0.0782*k; b4l .. 1.2539-0.3068*k =l= q4; b4u .. q4 =l= 1.2539+0.3068*k; b5l .. 0.0208-0.0108*k =l= q5; b5u .. q5 =l= 0.0208+0.08*k; b6l .. 5.0247-2.4715*k =l= q6; b6u .. q6 =l= 5.0247+2.4715*k; b7l .. 1.0-2*k =l= q7; b7u .. q7 =l= 1.0+2*k; ga0 .. a0 =e= 6.82079e-05*q1*q3*POWER(q4,2) + 6.82079e-05*q1*q2*q4*q5; ga1 .. a1 =e= 0.00076176*POWER(q2,2)*POWER(q5,2) + 0.00076176*POWER(q3,2)*POWER(q4,2) + 0.000402141*q1*q2*POWER(q5,2) + 0.00337606*q1*q3*POWER(q4,2) + 6.82079e-05*q1*q4*q5 + 0.00051612*POWER(q2,2)*q5*q6 + 0.00337606*q1*q2*q4*q5 + 6.82079e-05*q1*q2*q4*q7 + 6.28987e-05*q1*q2*q5*q6 + 0.000402141*q1*q3*q4*q5 + 6.28987e-05*q1*q3*q4*q6 + 0.00152352*q2*q3*q4*q5 + 0.00051612*q2*q3*q4*q6; ga2 .. a2 =e= 0.000402141*q1*POWER(q5,2) + 0.00152352*q2*POWER(q5,2) + 0.0552*POWER(q2,2)*POWER(q5,2) + 0.0552*POWER(q3,2)*POWER(q4,2) + 0.0189477*q1*q2*POWER(q5,2) + 0.034862*q1*q3*POWER(q4,2) + 0.00336706*q1*q4*q5 + 6.82079e-05*q1*q4*q7 + 6.28987e-05*q1*q5*q6 + 0.00152352*q3*q4*q5 + 0.00051612*q3*q4*q6 - 0.00234048*POWER(q3,2)*q4*q6 + 0.034862*q1*q2*q4*q5 + 0.0237398*POWER(q2,2)*q5*q6 + 0.00152352*POWER(q2,2)*q5*q7 + 0.00051612*POWER(q2,2)*q6*q7 + 0.00336706*q1*q2*q4*q7 + 0.00287416*q1*q2*q5*q6 + 0.000804282*q1*q2*q5*q7 + 6.28987e-05*q1*q2*q6*q7 + 0.0189477*q1*q3*q4*q5 + 0.00287416*q1*q3*q4*q6 + 0.000402141*q1*q3*q4*q7 + 0.1104*q2*q3*q4*q5 + 0.0237398*q2*q3*q4*q6 + 0.00152352*q2*q3*q4*q7 - 0.00234048*q2*q3*q5*q6 + 0.00103224*q2*q5*q6; ga3 .. a3 =e= 0.189477*q1*POWER(q5,2) + 0.1104*q2*POWER(q5,2) + 0.00051612*q5*q6 + POWER(q2,2)*POWER(q5,2) + 0.00076176*POWER(q2,2)*POWER(q7,2) + POWER(q3,2)*POWER(q4,2) + 0.1586*q1*q2*POWER(q5,2) + 0.000402141*q1*q2*POWER(q7,2) + 0.0872*q1*q3*POWER(q4,2) + 0.034862*q1*q4*q5 + 0.00336706*q1*q4*q7 + 0.00287416*q1*q5*q6 + 6.28987e-05*q1*q6*q7 + 0.00103224*q2*q6*q7 + 0.1104*q3*q4*q5 + 0.0237398*q3*q4*q6 + 0.00152352*q3*q4*q7 - 0.00234048*q3*q5*q6 + 0.1826*POWER(q2,2)*q5*q6 + 0.1104*POWER(q2,2)*q5*q7 + 0.0237398*POWER(q2,2)*q6*q7 - 0.0848*POWER(q3,2)*q4*q6 + 0.0872*q1*q2*q4*q5 + 0.034862*q1*q2*q4*q7 + 0.0215658*q1*q2*q5*q6 + 0.0378954*q1*q2*q5*q7 + 0.00287416*q1*q2*q6*q7 + 0.1586*q1*q3*q4*q5 + 0.0215658*q1*q3*q4*q6 + 0.0189477*q1*q3*q4*q7 + 2*q2*q3*q4*q5 + 0.1826*q2*q3*q4*q6 + 0.1104*q2*q3*q4*q7 - 0.0848*q2*q3*q5*q6 - 0.00234048*q2*q3*q6*q7 + 0.00076176*POWER(q5,2) + 0.0474795*q2*q5*q6 + 0.000804282*q1*q5*q7 + 0.00304704*q2*q5*q7; ga4 .. a4 =e= 0.1586*q1*POWER(q5,2) + 0.000402141*q1*POWER(q7,2) + 2*q2*POWER(q5,2) + 0.00152352*q2*POWER(q7,2) + 0.0237398*q5*q6 + 0.00152352*q5*q7 + 0.00051612*q6*q7 + 0.0552*POWER(q2,2)*POWER(q7,2) + 0.0189477*q1*q2*POWER(q7,2) + 0.0872*q1*q4*q5 + 0.034862*q1*q4*q7 + 0.0215658*q1*q5*q6 + 0.00287416*q1*q6*q7 + 0.0474795*q2*q6*q7 + 2*q3*q4*q5 + 0.1826*q3*q4*q6 + 0.1104*q3*q4*q7 - 0.0848*q3*q5*q6 - 0.00234048*q3*q6*q7 + 2*POWER(q2,2)*q5*q7 + 0.1826*POWER(q2,2)*q6*q7 + 0.0872*q1*q2*q4*q7 + 0.3172*q1*q2*q5*q7 + 0.0215658*q1*q2*q6*q7 + 0.1586*q1*q3*q4*q7 + 2*q2*q3*q4*q7 - 0.0848*q2*q3*q6*q7 + 0.0552*POWER(q5,2) + 0.3652*q2*q5*q6 + 0.0378954*q1*q5*q7 + 0.2208*q2*q5*q7; ga5 .. a5 =e= 0.0189477*q1*POWER(q7,2) + 0.1104*q2*POWER(q7,2) + 0.1826*q5*q6 + 0.1104*q5*q7 + 0.0237398*q6*q7 + POWER(q2,2)*POWER(q7,2) + 0.1586*q1*q2*POWER(q7,2) + 0.0872*q1*q4*q7 + 0.0215658*q1*q6*q7 + 0.3652*q2*q6*q7 + 2*q3*q4*q7 - 0.0848*q3*q6*q7 + POWER(q5,2) + 0.00076176*POWER(q7,2) + 0.3172*q1*q5*q7 + 4*q2*q5*q7; ga6 .. a6 =e= 0.1586*q1*POWER(q7,2) + 2*q2*POWER(q7,2) + 2*q5*q7 + 0.1826*q6*q7 + 0.0552*POWER(q7,2); ga7 .. a7 =e= POWER(q7,2); * Bounds *q1.UP = 3.4329; *q2.UP = 0.1627; *q3.UP = 0.1139; *q4.LO = 0.2539; *q5.UP = 0.0208; *q6.LO = 2.0247; *q7.LO = 1; w.LO = 0; w.UP = 10; k.LO = 0; k.UP = 10; * Initial point q1.l=0.2; q2.l=0.02; q3.l=0.1; q4.l=0.3; q5.l=0; q6.l=2; q7.l=4.5; w.l=0; k.l=2; MODEL fiat /ALL/; SOLVE fiat USING NLP MINIMIZING objval; * End Fiat