Main Content

Entwurf eines LQG-Servoreglers

Dieses Beispiel zeigt den Entwurf eines Servoreglers für das folgende System.

Die Regelstrecke enthält drei Zustände (x), zwei Steuerungseingänge (u), zwei Zufallseingänge (w), einen Ausgang (y), Messrauschen für den Ausgang (v) und die folgenden Zustands- und Messgleichungen:

x˙=Ax+Bu+Gwy=Cx+Du+Hw+v

Dabei gilt:

A=[010001100]B=[0.31010.30.9]G=[0.71.121.1710.141.5]C=[1.91.31]D=[0.530.61]H=[1.20.89]

Das Rauschen im System lässt sich mit den folgenden Kovarianzdaten darstellen:

Qn=E(wwT)=[4221]Rn=E(vvT)=0.7

Verwenden Sie die folgende Aufwandsfunktion, um den Kompromiss zwischen Tracker-Leistung und Steuerungsaufwand zu definieren:

J(u)=0(0.1xTx+xi2+uT[1002]u)dt

So entwerfen Sie einen LQG-Servoregler für dieses System:

  1. Erstellen Sie das Zustandsraumsystem, indem Sie im MATLAB®-Befehlsfenster Folgendes eingeben:

    A = [0 1 0;0 0 1;1 0 0];    
    B = [0.3 1;0 1;-0.3 0.9];
    G = [-0.7 1.12; -1.17 1; .14 1.5];
    C = [1.9 1.3 1];  
    D = [0.53 -0.61];
    H = [-1.2 -0.89];
    sys = ss(A,[B G],C,[D H]);

  2. Konstruieren Sie die optimale Zustands-Feedback-Verstärkung unter Verwendung der gegebenen Aufwandsfunktion, indem Sie die folgenden Befehle eingeben:

    nx = 3;    %Number of states
    ny = 1;    %Number of outputs
    Q = blkdiag(0.1*eye(nx),eye(ny));
    R = [1 0;0 2];
    K = lqi(ss(A,B,C,D),Q,R);
    

  3. Konstruieren Sie die Kalman-Zustandsschätzfunktion unter Verwendung der gegebenen Kovarianzdaten für das Rauschen, indem Sie die folgenden Befehle eingeben:

    Qn = [4 2;2 1]; 
    Rn = 0.7;
    kest = kalman(sys,Qn,Rn);
    

  4. Bilden Sie den LQG-Servoregler, indem Sie mit den folgenden Befehlen die Kalman-Zustandsschätzfunktion und die optimale Zustands-Feedback-Verstärkung verbinden:

    trksys = lqgtrack(kest,K)
    Dieser Befehl gibt den folgenden LQG-Servoregler zurück:
    >> trksys = lqgtrack(kest,K)
     
    a = 
               x1_e    x2_e    x3_e     xi1
       x1_e  -2.373  -1.062  -1.649   0.772
       x2_e  -3.443  -2.876  -1.335  0.6351
       x3_e  -1.963  -2.483  -2.043  0.4049
       xi1        0       0       0       0
     
    b = 
                 r1      y1
       x1_e       0  0.2849
       x2_e       0  0.7727
       x3_e       0  0.7058
       xi1        1      -1
     
    c = 
              x1_e     x2_e     x3_e      xi1
       u1  -0.5388  -0.4173  -0.2481   0.5578
       u2   -1.492   -1.388   -1.131   0.5869
     
    d = 
           r1  y1
       u1   0   0
       u2   0   0
     
    Input groups:              
           Name        Channels
         Setpoint         1    
        Measurement       2    
                               
    Output groups:             
          Name      Channels   
        Controls      1,2      
                               
    Continuous-time model.

Siehe auch

| |

Verwandte Themen