LQG サーボ コントローラーの設計
この例は、次のシステムのサーボ コントローラーを設計する方法を示します。
プラントには、3 つの状態 (x)、2 つの制御入力 (u)、2 つのランダム入力 (w)、1 つの出力 (y)、出力の測定ノイズ (v)、および次の状態方程式と測定方程式があります。
ここで、
システムには次のノイズ共分散データがあります。
次のコスト関数を使用して、トラッカーの性能と制御操作のトレードオフを定義します。
このシステムの LQG サーボ コントローラーを設計する手順は、次のとおりです。
MATLAB® のコマンド ウィンドウに次のように入力して、状態空間システムを作成します。
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]);
次のコマンドを入力することにより、与えられたコスト関数を使用して最適状態フィードバック ゲインを構成します。
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);
次のコマンドを入力することにより、与えられたノイズの共分散データを使用してカルマン状態推定器を構成します。
Qn = [4 2;2 1]; Rn = 0.7; kest = kalman(sys,Qn,Rn);
次のコマンドを入力することにより、カルマン状態推定器と最適状態フィードバック ゲインを接続し、LQG サーボ コントローラーを形成します。
このコマンドは、次の LQG サーボ コントローラーを返します。trksys = lqgtrack(kest,K)
>> 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.