連続時間システムと離散時間システムの変換
連続/離散の変換に使用できるコマンド
コマンド c2d、d2c、および d2d では、連続を離散に、離散を連続に、離散を離散 (リサンプリング) に変換できます。
sysd = c2d(sysc,Ts) % Discretization w/ sample period Ts sysc = d2c(sysd) % Equivalent continuous-time model sysd1= d2d(sysd,Ts) % Resampling at the period Ts
連続/離散の変換に使用できるメソッド
ゼロ次ホールド (既定)、1 次ホールド、Tustin 近似 (プリワーピングの有無に関わらず)、極-零点マッチング法を含む、さまざまな離散化/内挿法が使用できます。以下に例を示します。
sysd = c2d(sysc,Ts,'foh') % Uses first-order hold sysc = d2c(sysd,'tustin') % Uses Tustin approximation
離散 DC モーター モデルの離散化
関数 c2d を使用すると、適切なサンプル時間を選択して、DC モーター プラントを離散化できます。適切なサンプル時間を選択するには、達成する性能、システム内で最も速い応答を示す時定数、実行するコントローラーの速度など、さまざまな要素が考慮されます。この例では、0.01 秒の時定数を選択します。SS オブジェクト sys_dc の構造については、SISO の例: DC モーターを参照してください。
Ts=0.01;
sysd=c2d(sys_dc,Ts)
a =
x1 x2
x1 0.96079 -0.00027976
x2 0.006994 0.90484
b =
u1
x1 0.019605
x2 7.1595e-005
c =
x1 x2
y1 0 1
d =
u1
y1 0
Sample time: 0.01
Discrete-time model.
デジタル DC モーター用の離散時間零点極ゲインを確認するため、zpk を使用して、モデルを変換します。
fd=zpk(sysd) Zero/pole/gain: 7.1595e-005 (z+0.9544) ------------------------ (z-0.9608) (z-0.9049) Sample time: 0.01
sys_dc と sysd のステップ応答を比較するには、次のように入力します。
step(sys_dc,sysd)

ステップ応答が一致することに注意してください。連続および FOH 離散ステップ応答は、内部遅延のないモデルと一致します。