Getting Started | ![]() ![]() |
連続/離散の変換
コマンドc2d
、d2c
、d2d
は、連続を離散に、離散を連続に、離散を離散(リサンプリング)に変換します。
sysd = c2d(sysc,Ts) % サンプル周期Tsで離散化 sysc = d2c(sysd) % 等価な連続時間モデル sysd1= d2d(sysd,Ts) % 周期Tsでリサンプリング
種々の離散化/内挿法、ゼロ次ホールド(デフォルト)、一次ホールド、周波数応答を比較する周波数点を設定したTustin変換、設定していないTustin変換、零点/極の一致法、が利用できます。たとえば、
sysd = c2d(sysc,Ts,'foh') % 一次ホールドを使用 sysc = d2c(sysd,'tustin') % Tustin近似を使用
離散DCモータモデル
関数c2d
を使い、適切なサンプル時間を使って、DCモータプラントを離散化します。適切なサンプル時間を選択するためには、達成したい性能、システム内で最も速い応答を示す時定数、実行するコントローラのスピード等、いろいろな要素が考慮されます。この例題では、0.01秒の時定数を選択します。SSオブジェクトsys_ss
のコンストラクタについては、SISO例題:DCモータを参照してください。
Ts=0.01; sysd=c2d(sys_ss,Ts) a = x1 x2 x1 0.9605 0 x2 0.013986 0.90484 b = u1 x1 0.0098012 x2 7.1588e-005 c = x1 x2 y1 0 1 d = u1 y1 0 Sampling time: 0.01 Discrete-time model.
ディジタルDCモータ用の離散時間伝達関数を調べるため、関数tf
を使って、モデルを変換します。
fd=tf(sysd) Transfer function: 7.159e-005 z + 6.832e-005 ------------------------- z^2 - 1.865 z + 0.8691 Sampling time: 0.01
![]() | 離散時間システム | 時間遅れを離散時間モデルに付加 | ![]() |