ここでは、モデル誤差抑制補償器(Model Error Compensator, MEC)の効果を確認するための数値例として2次システムのシミュレーション結果を示します。
モデル誤差抑制補償器についての説明は以下の記事をご覧下さい。
blog.control-theory.com
制御対象と問題設定
ここでは、制御対象として次の対象を扱います。

ここで、本記事では
とし、
の取りうる範囲は
とします。
誤差がない場合
まず、誤差がない場合についてフィードバック比例フィードバック制御器
を施した結果を示します。まず、ブロック線図が以下のようになります。

フィードバック制御系のブロック線図
次に制御結果(ステップ応答)が以下のようになります。

MECなし(フィードバック制御)
次に、誤差補償器を次のように定めてMECを構築した場合の結果を示します。

誤差補償器はPI制御構造にしています。ハイゲインフィードバックとなっています。MECを含む制御構造は次のように与えられます。

MEC+フィードバック制御系
このとき、得られた応答波形は次のようになります。

MEC+フィードバック制御
ほとんど変わらない応答波形になっていることがわかります。
誤差がある場合
誤差がある場合の応答波形をそれぞれ示します。
を範囲内でランダムに10本とってそれらの応答波形を重ねます。まずは、MECなしの場合です。

MECなしの場合(バラツキを含む10種類の制御対象)
次にMECありの場合の応答波形です。

MEC+フィードバック制御(バラツキを含む10種類の制御対象)
MECを含む制御系を構成することにより、
のバラツキの影響が出力にはほとんど現れていないことが確認できます。
最後に、MATLABコードを示します。
clear;
close all;
a = 1;
b = 2;
c = 1.5;
for i = 1:10
delb = -0.1+0.2*rand();
dela = -0.1+0.2*rand();
delc = -0.1+0.2*rand();
P=(c+delc)*tf([1 b+delb],[1 -(a+dela)])*tf([1],[1 5]);
Pn = c*tf([1 b],[1 -a])*tf([1],[1 5]);
Con=5;
%C=tf([2.5 0.005],[1 0]);
D=tf([50 50],[1 0]);
% MECなし
feedback(P*Con,1);
figure(1)
step(ans)
xlabel('Time')
ylabel('Out')
title('Usual')
xlim([0 5])
ylim([0 2])
hold on
% MECあり
feedback(Pn*Con,1)*feedback(P*D,1)-feedback(Con,Pn)*feedback(P,D);
figure(2)
step(ans)
xlabel('Time')
ylabel('Out')
title('With MEC')
xlim([0 5])
ylim([0 2])
hold on
end
2次制御対象についてMECの効果を確認しました。本記事は以上です。
関連記事
blog.control-theory.com