Simulink Control Design

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

パラメーターが変化する DC モーターの設定値追従

この例では、Simulink モデルからの制御システムのプラント バリアントを表す、LTI モデルの配列を生成する方法を説明します。このモデルの配列は、制御設計用 SISO 設計ツールで使用されます。

DC モーター モデル

電機子制御の DC モーターでは、印加電圧 Va によってシャフトの角速度 $\omega$ が制御されます。DC モーターの簡易モデルを下に示します。

モデルを開きバッチ線形化を実行

DC モーター用の Simulink モデルを開きます。

scdDCMotor
mdl = 'scdDCMotor';

コントローラーは、基準角速度でのステップ変化に追従することを目的としています。

この例では、以下のモーターの物理定数を使用します。

  • R = 2.0 +/- 10% オーム

  • L = 0.5 ヘンリー

  • Km = 0.1 トルク定数

  • Kb = 0.1 逆起電力定数

  • Kf = 0.2; % Nms

  • J = 0.02 +/- .01 kg m^2/s^2

パラメーター R およびパラメーター J は、値範囲として指定されることに注意してください。

すべての物理パラメーター値で動作するコントローラーを設計するには、これらの値をサンプリングして代表的なプラント セットを作成します。

値 R および値 J は、ノミナル値、最小値、および最大値でサンプリングされます。

R = [2,1.8,2.2];
J = [.02,.03,.01];

J および R のサンプル値の各組み合わせに対して、DC モーター プラントの線形化されたモデルが取得されます。これは、モデルに示されているように、入力線形化ポイントをコントローラー ブロックの出力に、ループ開始点のある線形化出力ポイントを負荷ブロックの出力にそれぞれ指定することで取得できます。以下のコードでは、バッチ線形化が実行され、LTI 配列 sys が返されます。

% Get the handle to the model workspace
hws = get_param(mdl, 'modelworkspace');

% Get the linearization I/O specified in the model
io = getlinio(mdl);
ct = 1;
% Loop over the values of resistor parameters to create an array of plant models
clear sys
for ct1 = 1:numel(J)
    for ct2 = 1:numel(R)
        % Write the parameters R and J to the model workspace
        hws.assignin('J', J(ct1));
        hws.assignin('R', R(ct2));
        % Linearize the model
        sys(:,:,ct) = linearize(mdl,io);
        ct = ct+1;
    end
end

SISO 設計ツールを開く

これでプラント モデルのセットが取得できました。次は、SISO 設計ツールを使用してコントローラーを設計します。

>> sisotool(sys)

SISO 設計ツールでは、以下に示すようにプラント セット上で効果を表示しながらノミナル プラント モデル用のコントローラーを設計できます。

  • 根軌跡エディターには、ノミナル モデルの根軌跡とプラント セットに関連付けられている閉ループ極の位置が表示されます。

  • ボード線図エディターには、ノミナル モデル応答とプラント セットの応答の両方が表示されます。

ステップ応答は、プラント セット内のいずれのモデルに対しても設定値追従が達成されなかったことを示しています。

コントローラーの設計

SISO 設計ツール内のツールを使用すると、次の補償器を設定値追従用に設計できます。

$$ C(s) = 2.5 \frac{(s+2.1)}{s} $$

結果の設計を以下に示します。閉ループ ステップ応答が示すように、設定値追従の目的は、プラント セット内で定義されているすべてのモデルに対して定常偏差をゼロにすることにあります。ただし、ゼロ パーセント オーバーショット要件が必要な場合、すべての応答がこの要件を満たすわけではないことがわかります。

設計のエクスポートと Simulink モデルでの確認

Simulink モデルで設計を確認するには、エクスポート ダイアログを使用してコントローラー C をエクスポートします。[コントロールと推定ツール マネージャー] で [ファイル]、[エクスポート] を選択します。コントローラーの値は、以下のコマンドを使用してモデル内に設定できます。

>> [Cnum,Cden] = tfdata(C,'v');

>> hws.assignin('Cnum',Cnum)

>> hws.assignin('Cden',Cden)

まとめ

この例では、LTI 配列としてプラントのバリアントをモデル化するためにバッチ線形化を使用しました。次に SISO 設計ツールを使用して、コントローラーを設計し、このプラント セットに対してコントローラーの性能を分析しました。SISO 設計ツールのマルチモデル機能の使用についての追加情報は、「プラント モデル セットのための補償器の設計」を参照してください。

モデルを閉じます。

bdclose('scdDCMotor');