メインコンテンツ

連続時間システムと離散時間システムの変換

連続/離散の変換に使用できるコマンド

コマンド c2dd2c、および 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 離散ステップ応答は、内部遅延のないモデルと一致します。