MATLABでPIDコントローラをサクッと設計する

MATLAB

ロボットで何かをコントロールしようとした時に,はじめに候補に上がるのがPIDコントローラです.

このコントローラを設計とは,Kp,Ki,Kdの3つの定数の調整になります.
学生がよく使うMatlabでは検索するとすぐに専用のページが出てきますが,わかりにくい上に,結局どう設計すればいいかわからないものになっています.

実際に設計するだけなら次の4行で設計ができるので,サクッと設計してしまいましょう.

s         = tf('s');                          % s をラプラス空間の"s"だと設定
sys       = 1/(s^2 + 10*s + 20);              % 制御対象の伝達関数
opts      = pidtuneOptions('PhaseMargin',90); % コントローラに満たして欲しい条件を設定
[c, info] = pidtune(sys, 'pid', opts);        % PIDコントローラを設計する

cにPIDコントローラの設定が格納されています.
infoの方にはコントローラの安定性などの情報が保存されています.
より詳細に設計したい場合はpidtuneOptionsについて詳しくみて下さい.

また,コントロールされたシステムのステップ応答は次のコマンドから見ることができます.

g = feedback(c*sys,1);
t = 0:0.01:2;
step(g,t)

コメント