* Generalized geometric programming * Robust stability problem * Fiat Dedra engine, Barmish (1994), Abate et al. (1994) 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 b2l b3l b4u b5l b6u 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 .. -1.2721*k - q1 =l= -3.4329; b2l .. -0.06*k - q2 =l= -0.1627; b3l .. -0.0782*k - q3 =l= -0.1139; b4u .. -0.3068*k + q4 =l= 0.2539; b5l .. -0.0108*k - q5 =l= -0.0208; b6u .. -2.4715*k + q6 =l= 2.0247; b7u .. 9*k + q7 =l= 1; 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 = 1; MODEL test /ALL/; SOLVE test USING NLP MINIMIZING objval;