5.3.1 追従制御


 Simulink を利用した追従制御のシミュレーションを行うためのファイル

 (1) 制御対象の状態空間表現の定義と極配置法によるコントローラ設計
    ...... M ファイル following.m (p.111)
clear
format compact

A = [ 0  1  0  0
     -4 -2  4  2
      0  0  0  1
      2  1 -2 -1 ];
B = [ 0
      2
      0
      0 ];
C = [ 0  0  1  0 ];

p = [ -2+2j
      -2-2j
      -2+j
      -2-j ];
K = - acker(A,B,p)
M0 = [ A  B
       C  0 ];
H = [ -K  1 ]*inv(M0)*[ zeros(4,1)
                            1      ]
eig(A + B*K)
 (2) 追従制御のシミュレーション ...... Simulink モデル (p.112)
simulink_following_R2010b.mdl(R2010b 以降のバージョン用)
simulink_following_R2007b.mdl(R2007b 以降のバージョン用)
simulink_following_R13SP1.mdl(R13SP1 以降のバージョン用)
 (3) シミュレーション結果の表示 ...... M ファイル plot_data_cart.m (p.111)
plot(t,y); 
grid;
xlabel('t [s]');
ylabel('position (cart2) [m]');

 (3') シミュレーション結果の表示(グラフのカスタマイズ) ...... M ファイル plot_data_cart2.m (本には記載していない)
figure(1);
plot(t,y,'r','linewidth',2); 
grid;

% --- グラフのカスタマイズ --------------------------------
xlim([0 10]);
ylim([0 1.5]);

set(gca,'xtick',[0:1:10]);
set(gca,'ytick',[0:0.25:1.5]);

set(gca,'fontname','times','fontsize',20);

xlabel('{\it{t}} [s]','fontname','times','fontsize',22);
ylabel('position (cart2) [m]','fontname','times','fontsize',22);

set(gcf,'position',[50 50 900 420])


 実行結果

 (1) 制御対象の状態空間表現の定義,極配置法によるコントローラ設計と初期状態 x(0) = 0 の設定
>> following
K =
   -3.5000   -2.5000   -6.5000   -5.5000
H =
    10
ans =
  -2.0000 + 2.0000i
  -2.0000 - 2.0000i
  -2.0000 + 1.0000i
  -2.0000 - 1.0000i
>> x0 = zeros(4,1);
 (2) シミュレーション開始

    もしくは
    もしくは
>> sim('simulink_following_R2010b')
 (3) シミュレーション結果の表示
>> plot_data_cart

 (3') シミュレーション結果の表示(グラフのカスタマイズ)
>> plot_data_cart2