Reference
Category : GAMS NOA library
Mainfile : fiat.gms
$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