## Chapter 47Glossary For System Hamiltonian Calculations

This glossary contains expressions available for manipulation, functions available for evaluation, and substitution rules all prefaced by ru.

Hamiltonians
 These formulas contain mixed state and dual variables (IA systems, sec 5.2):  HWUY  = Hamiltonian for the system in SYSDefIA.m .  HWU = HWUY/.Y->G2[x,W,U];  HWY = HWUY/.U->g[z,Y];  HW = HWY/.Y->G2[x,W,U];    These formulas contain state variables only (IA systems):  sHWUY = HWUY/.ruxz;  sHWU = HWU/.ruxz;  sHWY = HWY/.ruxz;  sHW = HW/.ruxz;    These formulas contain dual variables only (IA systems):  dHWUY = HWUY//.rudual;  dHWU = HWU//.rudual;  dHWY = HWY//.rudual;  dHW = HW//.rudual;

Extremizing Hamiltonians
 ricd = Riccati from bounded real lemma for SISO systems (sec 5.1)    CritW[x_,z_,b_] = value of W which makes Grad[sHW,W]=0(both IA and WIA systems).    sHWo  = max sHW (IA systems)              W    sHWoWIA  = max sHW (WIA systems)                 W    CritU[x_,z_] = value of U which makes Grad[sHWU,U]=0 (IA systems).    RULES FOR CRITICAL VALUES:    ruCritW = {W -> tp[B1[x]] ** tp[GEx[x, z]] +                  tp[D21[x]] ** tp[b[z]] ** tp[GEz[x, z]]};    ruCritU = {U -> -inv[e1[x]] ** tp[B2[x]] ** tp[GEx[x, z]] -                               inv[e1[x]] ** tp[D12[x]] ** C1[x]}

Nonlinear Riccatis

THE DGKF RICCATIS

 IAX[x_] = XX[x] ** (A[x] - B2[x] ** inv[e1[x]] ** tp[D12[x]] ** C1[x])+     (-tp[C1[x]] ** D12[x] ** inv[e1[x]] ** tp[B2[x]] + tp[A[x]]) **     tp[XX[x]] + tp[C1[x]] ** C1[x] +      XX[x] ** (B1[x] ** tp[B1[x]] - B2[x] ** inv[e1[x]] ** tp[B2[x]]) **      tp[XX[x]] - tp[C1[x]] ** D12[x] ** inv[e1[x]] ** tp[D12[x]] ** C1[x]    IAYI[x_] = YYI[x] ** (A[x] - B1[x] ** tp[D21[x]] ** inv[e2[x]]**C2[x]) +  (-tp[C2[x]]**inv[e2[x]]**D21[x]**tp[B1[x]] + tp[A[x]])**tp[YYI[x]] +        tp[C1[x]] ** C1[x] + YYI[x] **         (B1[x]** tp[B1[x]] - B1[x]**tp[D21[x]] ** inv[e2[x]] ** D21[x] **            tp[B1[x]]) ** tp[YYI[x]] - tp[C2[x]] ** inv[e2[x]] ** C2[x]      k[x_,z_]   = minimum in b of sHWo evaluated at a* and c* (see [BHW])                    This is the 2 variable generalization of DGKF Riccati.      Hopt[x,z,a,b]  = min max sHWU, where you can specify functions a[z],b[z]                     U   W

The Central Controller
 ruc = c[z_]:> -inv[e1[z]]**(tp[B2[z]]**XX[z] + tp[D12[z]]**C1[z]);      rua = a[z_]:> A[z] + B2[z]**c[z] - b[z]**C2[z] +                           (B1[z]- b[z]**D21[z])**tp[B1[z]]**XX[z]//.ruc ;      rublin= the rule in the linear case for the b in the central soln                  to the H-infinity control problem.      ruaWIA = a[z_]:> AB[z,c[z]] - b[z]**C2[z] +                           (B1[z]- b[z]**D21[z])**tp[B1[z]]**XX[z];    Plug rua and ruc into the main Hamiltonian sHWo to get       sHWo= k[x,z]  +  tp[bterm]**bterm          which defines bterm.

Special Systems

Linear Systems

Linear systems satisfying the DGKF simplifying assumption are special cases of an IA system. To take an expression in H control which has been derived for an IA system and specialize it to linear systems apply

 SubSym[expr,rulinearall]

where rulinearall is a long list of rules for specializing IA systems formulas described below:

 ruGEXY={ruGEXY1,ruGEXY2};                        where ruGEXY1=tp[GEx[x_,0]]:>tp[x]**inv[YY];                              ruGEXY2=tp[GEx[x_,x_]]:>tp[x]**XX;    rulinearall=Union[rulinearsys,ruGE1, ruGEXY,rulinearXY];                where rulinearsys={A[x_]:>A**x, B1[x_]:>B1,                                           B2[x_]:>B2,C1[x_]:>C1**x,C2[x_]:>C2**x,                                   D21[x_]:>D21,D12[x_]:>D12,a[x_]:>a**x,                                           b[x_]:>b,c[x_]:>c**x,dd[x_]:>dd,                                           e1[x_]:>e1,                                           e2[x_]:>e2,tp[e1]->e1,tp[e2]->e2};                      rulinearXY={XX[x_]:>XX**x,YY[p_]:>p**YY,                                                  YYI[x_]:>inv[YY]**x};                                ruinvYY=YYI->inv[YY];    Lin[expr_]:= SubSym[expr,rulinearall];  Energy Ansatzes  which  are true for linear systems:  rulinearEB = sets GEx[x,z], GEz[x,z] to be linear  ruGEz0=GEz[x_,x_]:>0       Ansatz in [BHW] %(5.1):    ruGE1=Flatten[{ruGEz0,SubSym[{ruGEz0,ruGEx1,ruGEz1},ruXXYYI]}];               where ruGEx1=GEx[x_,z_]:>GEx[x,x]+GEx[x-z,0]-GEx[x-z,x-z];                     ruGEz1=GEz[x_,z_]:>-GEx[x-z,0]+GEx[x-z,x-z];

Homogeneous Systems:

 ruhomog = {A[0]->0, C1[0]->0, C2[0]->0, a[0]->0, c[0]->0};

Doyle Glover Khargonekar Francis Simplifying Assumptions:

 ruDGKFNL = Apply DGKF simplifying assumptions for IA systems    ruDGKFlin = Apply DGKF simplifying assumptions for linear systems    ruCRcDGKF=c[z_]:>-tp[B2[z]]**tp[XX[z]];  ruCRqDGKF=q[x_,z_]:>-tp[C2[x-z]];    ruaDGKF = a[z_]:>A[z]+B1[z]**tp[B1[z]]**tp[XX[z]] -                 B2[z]**tp[B2[z]]**tp[XX[z]] - b[z]**C2[z]+cheat[z];    ruaDGKF2=a[z_]:> AA1[z,z]-b[z]**C2[z];

More Rules Available For Substitution
 CHANGE OF VARIABLES:  Convert energy Hamiltonians from dual or mixed state/dual to state  variables only:  ruxz={p->GEx[x,z], PP->GEz[x,z]};    Convert energy Hamiltonian from dual or mixed state/dual to dual variables only:  rudual={rudualx,rudualz};                                where rudualx = x->IGE1[p,PP];                                      rudualy = z->IGE2[p,PP];    CHANGE OF NOTATION:  rue = {tp[D12[x_]] ** D12[x_]:> e1[x], D21[x_] ** tp[D21[x_]] :> e2[x]}  rubtoq=tp[GEz[x_,z_]]**b[z_]:>q[x,z]    ruXXYYI={ruGEz0,ruXX, ruYYI}                        where   ruXX = GEx[x_,x_]:>2*XX[x]                                ruYYI = GEx[x_,0]:>2*YYI[x]    ruIAXYI={ruIAX,ruIAYI};                        where ruIAX = replace terms linear in A or tp[A]                                              using IAX[x]=0 (see 4.4b).                              ruIAYI= replace terms linear in A or tp[A]                                              using IAYI[x]=0 (see 4.4c).        FOR ENERGY ANSATZ EXPERIMENTATION AS IN [BHW]:        EnergyGuess[ruleGE_] = generate sHWo with the Ansatz on the energy function     given by ruleGE and a, b, and c are substituted out     according to the RECIPE.      EnergyGuess2[ruleGE,rulea] = same but a is substituted out by the                                   user provided rulea.        EnergyGuessDGKF[ruleGE_] = same with DGKF simplifying assumptions      EnergyGuess2DGKF[ruleGE,ruaDGKF] = same with DGKF simplifying assumptions