ドキュメンテーションヘルプ センター
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
連続時間から離散時間へモデルを変換
sysd = c2d(sysc,Ts)
sysd = c2d(sysc,Ts,method)
sysd = c2d(sysc,Ts,opts)
[sysd,G] = c2d(___)
例
sysd = c2d(sysc,Ts) は、入力でのゼロ次ホールドとサンプル時間 Ts を使用して、連続時間動的システム モデル sysc を離散化します。
sysd
sysc
Ts
sysd = c2d(sysc,Ts,method) は、離散化手法を指定します。
method
sysd = c2d(sysc,Ts,opts) は、離散化に対する追加オプションを指定します。
opts
[sysd,G] = c2d(___) (sysc は、状態空間モデル) は、状態空間モデルの連続初期条件 x0 と u0 を離散時間初期状態ベクトル x[0]. にマッピングする行列 G を返します。
G
すべて折りたたむ
この例では次を使用します:
次の連続時間の伝達関数を離散化します。
H(s)=e-0.3ss-1s2+4s+5.
このシステムには 0.3 秒の入力遅延があります。サンプル時間 Ts = 0.1 s での三角形 (1 次ホールド) 近似を使用してシステムを離散化します。
H = tf([1 -1],[1 4 5],'InputDelay', 0.3); Hd = c2d(H,0.1,'foh');
連続時間システムと離散化システムのステップ応答を比較します。
step(H,'-',Hd,'--')
入力のゼロ次ホールドと 10 Hz のサンプリング レートを使用して、次の遅延伝達関数を離散化します。
H(s)=e-0.25s10s2+3s+10.
h = tf(10,[1 3 10],'IODelay',0.25); hd = c2d(h,0.1)
hd = 0.01187 z^2 + 0.06408 z + 0.009721 z^(-3) * ---------------------------------- z^2 - 1.655 z + 0.7408 Sample time: 0.1 seconds Discrete-time transfer function.
この例では、離散化されたモデル hd に 3 サンプリング周期の遅延があります。離散化アルゴリズムは、残る半周期の遅延を hd の係数に吸収します。
hd
連続時間モデルと離散化モデルのステップ応答を比較します。
step(h,'--',hd,'-')
2 つの状態と 1 つの入力遅延をもつ連続時間状態空間モデルを作成します。
sys = ss(tf([1,2],[1,4,2])); sys.InputDelay = 2.7
sys = A = x1 x2 x1 -4 -2 x2 1 0 B = u1 x1 2 x2 0 C = x1 x2 y1 0.5 1 D = u1 y1 0 Input delays (seconds): 2.7 Continuous-time state-space model.
Tustin 離散化メソッドと Thiran フィルターを使用してモデルを離散化し、非整数遅延をモデル化します。サンプル時間 Ts は 1 秒です。
opt = c2dOptions('Method','tustin','FractDelayApproxOrder',3); sysd1 = c2d(sys,1,opt)
sysd1 = A = x1 x2 x3 x4 x5 x1 -0.4286 -0.5714 -0.00265 0.06954 2.286 x2 0.2857 0.7143 -0.001325 0.03477 1.143 x3 0 0 -0.2432 0.1449 -0.1153 x4 0 0 0.25 0 0 x5 0 0 0 0.125 0 B = u1 x1 0.002058 x2 0.001029 x3 8 x4 0 x5 0 C = x1 x2 x3 x4 x5 y1 0.2857 0.7143 -0.001325 0.03477 1.143 D = u1 y1 0.001029 Sample time: 1 seconds Discrete-time state-space model.
これにより、離散化されたモデルは、3 次 Thiran フィルターに対応する 3 つの追加状態 x3、x4、x5 を含むようになります。むだ時間をサンプル時間で除算すると 2.7 となるので、3 次 Thiran フィルター ('FractDelayApproxOrder' = 3) はむだ時間全体を近似できます。
x3
x4
x5
'FractDelayApproxOrder'
連続時間伝達関数を推定し、離散化します。
load iddata1 sys1c = tfest(z1,2); sys1d = c2d(sys1c,0.1,'zoh');
2 次離散時間伝達関数を推定します。
sys2d = tfest(z1,2,'Ts',0.1);
離散化された連続時間の伝達関数モデル sys1d の応答と、直接推定した離散時間モデル sys2d を比較します。
sys1d
sys2d
compare(z1,sys1d,sys2d)
この 2 つのシステムはほぼ同じです。
同定された状態空間モデルを離散化して、応答の 1 ステップ先の予測子を構築します。
推定データを使用して、連続時間で同定された状態空間モデルを作成します。
load iddata2 sysc = ssest(z2,4);
sysc の 1 ステップ先の予測応答を予測します。
predict(sysc,z2)
モデルを離散化します。
sysd = c2d(sysc,0.1,'zoh');
離散化モデル sysd から予測子モデルを作成します。
[A,B,C,D,K] = idssdata(sysd); Predictor = ss(A-K*C,[K B-K*D],C,[0 D],0.1);
Predictor は測定した出力信号と入力信号 ([z1.y z1.u]) を使用して、sysc の 1 ステップ先を予測した応答を計算する 2 入力モデルです。
Predictor
([z1.y z1.u])
予測子モデルをシミュレートし、predict コマンドと同じ応答を得ます。
predict
lsim(Predictor,[z2.y,z2.u])
予測子モデルのシミュレーションの応答は、predict(sysc,z2) と同じになります。
idtf、idss、idpolyなどの動的システム モデルとして指定される連続時間モデル。sysc は、周波数応答データ モデルにすることができません。'matched' 離散化手法が SISO システムのみをサポートする点を除き、sysc は、SISO または MIMO にすることができます。
idtf
idss
idpoly
'matched'
sysc は、入出力遅延または内部遅延をもつことができますが、'matched'、'impulse' および 'least-squares' メソッドは内部遅延をもつ状態空間モデルをサポートしていません。
'impulse'
'least-squares'
次の同定された線形システムは直接離散化できません。
FunctionType が 'c' である idgrey モデル。最初に idss モデルに変換します。
FunctionType
'c'
idgrey
idproc モデル。最初に idtf または idpoly モデルに変換します。
idproc
サンプル時間。結果の離散時間システムのサンプリング周期を表す正のスカラーとして指定します。Ts は、sysc.TimeUnit プロパティである TimeUnit で表されます。
sysc.TimeUnit
TimeUnit
'zoh'
'foh'
'tustin'
離散化メソッド。以下のいずれかの値として指定。
'zoh' - ゼロ次ホールド (既定) 。サンプル時間 Ts の間、制御入力は区分的に一定であると仮定します。
'foh' - 三角形近似 (修正された 1 次ホールド。サンプル時間 Ts の間、制御入力は区分的に線形であると仮定します。
'impulse' — インパルス不変法による離散化
'tustin' — 双一次 (Tustin) メソッド。周波数プリワーピング (以前に 'prewarp' メソッドと呼ばれていたもの) によるこのメソッドを指定するには、c2dOptions の PrewarpFrequency オプションを使用します。
'prewarp'
c2dOptions
PrewarpFrequency
'matched' — 極-零点マッチング法
'least-squares' — 最小二乗法
各変換法のアルゴリズムの詳細については、Continuous-Discrete Conversion Methodsを参照してください。
離散化オプション。c2dOptions オブジェクトとして指定します。たとえば、プリワープ周波数、Thiran フィルターの次数、または離散化手法をオプションとして指定します。
離散時間モデル。入力システム sysc と同じタイプの動的システム モデルとして返されます。
sysc が同定された (IDLTI) モデルの場合、sysd は次のようになります。
sysc の測定成分とノイズ成分の両方を含みます。連続時間同定モデル sysc のイノベーション分散 λ はその NoiseVariance プロパティに格納され、ノイズ スペクトルのスペクトル密度の強度と解釈されます。このため、sysd のノイズ分散は λ/Ts になります。
NoiseVariance
sysc の推定されたパラメーターの共分散は含みません。モデルの離散化中に共分散を変換する場合は、translatecov を使用します。
translatecov
状態空間モデル sysc の連続時間初期条件 x0 および u0 の離散時間初期状態ベクトル x[0] へのマッピング。行列として返されます。初期条件の初期状態ベクトルへのマッピングは次のとおりです。
x[ 0]=G⋅[x0u0]
むだ時間をもつ状態空間モデルの場合、むだ時間の離散化によって生じた追加の状態を考慮して、c2d は行列 G をゼロでパディングします。離散化システムにおけるむだ時間のモデル化については、Continuous-Discrete Conversion Methodsを参照してください。
c2d
c2dOptions | d2c | d2d | translatecov | thiran (Control System Toolbox)
d2c
d2d
thiran
この例の変更されたバージョンがシステム上にあります。代わりにこのバージョンを開きますか?
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office
無料評価版のダウンロード