https://www.mathworks.com/help/control/examples/dc-motor-control.html
本文では、目標値への追従と、負荷変動への感度を低減するための、DC モーター制御について、3種類の方法を比較します。
・フィードフォワード命令
・積分フィードバック制御
・LQR 定常化
DC モーターモデルの詳細については、「ゲッティングスターテッド:モデル作成」を参照してください。
■ 課題
電機子制御の DC モーターは、供給電圧 Va が、シャフトの角速度 w を制御します。
Inertial Load:慣性負荷
本文では、負荷変動(反対側のモーター負荷によるトルクの変化)による w の感度を低減するために、2個の DC モーターを制御する方法を示します。
Armature:電機子、Vemf:起電力
DC モーターの簡易モデルを上図に示します。トルク Td は負荷変動を表します。このような変動によって引き起こされる速度の変化を最小限に抑えなければなりません。
例えば、物理特性は以下とします。
R = 2.0; % Ohms
L = 0.5; % Henrys
Km = 0.1; % torque constant
Kb = 0.1; % back emf constant
Kf = 0.2; % Nms ニュートンメートル秒
J = 0.02; % kg.m^2/s^2
最初に、2入力(Va、Td)と1出力(w)の DC モーターの状態空間モデルを作ります。
h1 = tf(Km,[L R]); % armature tf:伝達関数モデル作成(TF オブジェクト)
h2 = tf(1,[J Kf]); % eqn of motion 運動の等価式
dcm = ss(h2) * [h1 , 1]; % w = h2 * (h1*Va + Td) ss:状態空間モデル作成(ss モデルオブジェクト)
dcm = feedback(dcm,Kb,1,1); % close back emf loop feedback:モデルオブジェクトを作成、arg1:状態空間プラントモデル P、arg2:状態空間フィードバックコントローラー K、sys = feedback(sys1,sys2,feedin,feedout) feedin:sys1 の入力ベクトル(u, v, …)、feedout:sys1 の出力ベクトル(y, z, …)
注:モデルの次数を最小にするために状態方程式で計算します
電圧 Va で、ステップ入力についての、角速度応答を図示します。
図中で、マウス右クリックし、「特性:整定時間」を選べば、整定時間を表示できます。