主要内容

lsim

動的システムの任意の入力へのシミュレ,ションされた時間応答をプロットする。シミュレ,ションされた応答デ,タ

説明

応答プロット

lsim (sysutは、入力履歴(tu)に対する動的システムモデルsysのシミュレ,ションされた時間応答をプロットします。ベクトルtは,シミュレ,ションの時間サンプルを指定します。単入力システムの場合,入力信号uは,tと同じ長さのベクトルです。多入力システムの場合,uは、時間サンプル(长度(t))と同じ行数およびsysに対する入力と同じ列数をも配列です。

lsim (sysutx0はさらに初期状態値のベクトルx0を指定します。このとき,sysは状態空間モデルになります。

lsim (sysutx0方法lsimによるサンプル間の入力値の内挿法を指定します。このとき,sysは連続時間モデルになります。

lsim (sys1,sys2……sysN,ut___は複数の動的システムモデルの応答を同じ入力履歴でシミュレートし,これらの応答を1つの図にプロットします。すべてのシステムは入力数と出力数が同じでなければなりません。複数のモデルの応答を計算する場合は,入力引数x0および方法も使用できます。

lsim (sys1,LineSpec1、……sysN,LineSpecN,___はプロット内の各システムの色,ラ。追加のプロットカスタマesc escズオプションが必要な場合は,代わりにlsimplotを使用します。

応答デ,タ

y= lsim (sysutは,入力と同じ時間tにサンプリングされたシステム応答yを返します。単出力システムの場合,ytと同じ長さのベクトルです。多出力システムの場合,yは時間サンプル(长度(t))と同じ行数およびsysの出力と同じ列数をも配列です。この構文は,プロットを作成しません。

y= lsim (sysutx0はさらに初期状態値のベクトルx0を指定します。このとき,sysは状態空間モデルになります。

y= lsim (sysutx0方法lsimによるサンプル間の入力値の内挿法を指定します。このとき,sysは連続時間モデルになります。

y吹捧x= lsim(___は,状態軌跡xを返します。このとき,sysは状態空間モデルになります。xは時間サンプルと同じ行数およびsysの状態と同じ列数をも配列です。この構文は,吹捧のシミュレ,ションに使用される時間サンプルを返します。

線形シミュレションル

lsim (sysは線形シミュレションルを開きます。線形解析にこのツールを使用する方法の詳細については、線形シミュレションルの使用を参照してください。

すべて折りたたむ

次の伝達関数にいて考えます。

Sys = tf(3,[1 2 3])
sys = 3 ------------- s^2 + 2s + 3连续时间传递函数。

任意の入力信号に対するこのシステムの応答を計算するには,応答を計算する時間tのベクトルと,対応する信号値を含むベクトルuを使用してlsimを指定します。たとえば,時間T = 0に0で開始され,T = 1の0からT = 2の1まで上昇した後,1で状態を保つ,ランプステップ信号に対するシステム応答をプロットします。tを定義し,uの値を計算します。

T = 0:0.04:8;% 201分U = max(0,min(t-1,1));

出力引数を指定せずにlsimを使用して,信号に対するシステム応答をプロットします。

lsim (sys, u, t)网格

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示驱动输入,sys。"height=

プロットには,適用された入力(u, t)がグレ,システム応答が青で示されています。

出力引数を指定したlsimを使用して,シミュレ,ションされた応答デ,タを取得します。

Y = lsim(sys,u,t);大小(y)
ans =1×2201年1

ベクトルyには,tの対応する時間におけるシミュレ,ションされた応答が含まれます。

lsimで使用する正弦波や矩形波などの周期入力信号を作成するには,gensigを使用します。次のsiso状態空間モデルの矩形波に対する応答をシミュレ,ションします。

A = [-3 -1.5;5 0];B = [1;0);C = [0.5 1.5];D = 0;sys = ss(A,B,C,D);

この例では,10秒の周期と20秒の持続期間を指定して矩形波を作成します。

[u,t] = gensig(“广场”10、20);

gensigは,タtと,入力信号の対応する値を含むベクトルuを返します(tのサンプル時間を指定しない場合,gensigは1周期あたり64サンプル生成します)。lsimでこれらを使用して,システム応答をプロットします。

lsim (sys, u, t)网格

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示驱动输入,sys。"height=

プロットには,適用された矩形波がグレ,システム応答が青で表示されています。出力引数を指定したlsimを呼び出して,tの各ポ@ @ントにおける応答値を取得します。

[y,~] = lsim(sys,u,t);

離散時間システムの応答をシミュレ,ションする場合,ベクトルtTi: dT: Tfの形式にしなければなりません。このdTはモデルのサンプル時間です。ランプステップ入力に対する次の離散時間伝達関数の応答をシミュレ,トします。

Sys = tf([0.06 0.05],[1 -1.56 0.67],0.05);

この伝達関数のサンプル時間は0.05秒です。同じサンプル時間を使用して,時間ベクトルtとランプステップ信号uを生成します。

T = 0:05:4;U = max(0,min(t-1,1));

システム応答をプロットします。

lsim (sys, u, t)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示驱动输入,sys。"width=

周期入力信号に対する離散時間システムの応答をシミュレ,トするには,gensigで同じサンプル時間を使用して入力を生成します。たとえば,周期1秒および期間4秒の正弦波に対するシステム応答をシミュレ,ションします。

[u,t] = gensig(“正弦”, 1, 4, 0.05);

システム応答をプロットします。

lsim (sys, u, t)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示驱动输入,sys。"height=

lsimを使用して,複数の動的システムのシミュレ,ションされた応答を同じ軸にプロットできます。たとえば,piコントロラとpidコントロラでシステムの閉ルプ応答を比較します。システムの伝達関数を作成し,コントロ,ラ,を調整します。

H = tf(4,[1 10 25]);C1 = pidtune(H,“π”);C2 = pidtune(H,“PID”);

閉ル,プシステムを作成します。

sys1 = feedback(H*C1,1);sys2 = feedback(H*C2,1);

周期4秒の矩形波に対する両方のシステムの応答をプロットします。

[u,t] = gensig(“广场”4、12);lsim (sys1 sys2, u, t)网格传奇(“π”“PID”

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象代表驱动输入,PI, PID。"width=

既定では,lsimは,プロットするシステムごとに異なる色を選択します。入力引数LineSpecを使用して色とラ▪▪ンスタ▪▪ルを指定できます。

lsim (sys1“r——”sys2,“b”u, t)网格传奇(“π”“PID”

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象代表驱动输入,PI, PID。"height=

最初のLineSpecr——”では,piコントロ,ラ,での応答を表す赤い破線を指定します。2番目のLineSpecb”では,pidコントロ,ラ,での応答を表す青い実線を指定します。凡例に,指定された色とラaaplンスタaaplルが反映されます。プロットをさらにカスタマ电子邮箱ズするには,lsimplotを使用します。

Mimoシステムでは,各タaaplムステップtにおいて,入力u (t)は,長さが入力数を表すベクトルです。lsimを使用するには,uを次元Ntν列の行列として指定します。ここで,νはシステム入力の数,Nttの長さです。まり,uの各列は,対応するシステム入力に適用される入力信号になります。たとえば,201のタムステップの4の入力でシステムをシミュレションするには,uを4列および201行の行列として指定します。ここで,各行u(我,:)番目のタesc escムステップにおける入力値のベクトル,各列u (:, j)j番目の入力に適用された信号です。

同様に,lsimで計算された出力y (t)は,列が各システム出力での信号を表す行列になります。lsimを使用してシミュレ,ションされた応答をプロットすると,lsimでは出力ごとに異なる座標軸を示し,すべての入力で適用された入力u (t)への各出力チャネルでシステム応答を表します。

次の状態空間行列を使用する2入力3出力の状態空間モデルを考えてみます。

A = [-1.5 -0.2 1.0;0.6;1.0 0.6 -1.4];B = [1.5 0.6;-1.8 - 1.0;0 0];C = [0 -0.5 -0.1;0.35 -0.1 -0.15 0.65 0 0.6];D = [0.5 0;0.05 0.75 0 0]; sys = ss(A,B,C,D);

最初の入力sysに適用された周期4秒の矩形波と3秒おきに2番目の入力に適用されたパルスに対するsysの応答をプロットします。これを行うには,gensigを使用して矩形波とパルス信号を表す列ベクトルを作成します。次に,列を1の入力行列にスタックします。2つの信号のサンプル数を同じにするには、同じ終了時間とサンプル時間を指定します。

Tf = 10;Ts = 0.1;[uSq,t] = gensig(“广场”4 Tf Ts);[uP,~] = gensig(“脉搏”3 Tf Ts);u = [uSq uP];lsim (sys, u, t)

图中包含3个轴对象。Axes对象1包含3个line类型的对象。这些对象表示驱动输入,sys。坐标轴对象2包含3个line类型的对象。这些对象表示驱动输入,sys。坐标轴对象3包含3个line类型的对象。这些对象表示驱动输入,sys。"height=

各軸には,すべての入力で適用された信号uに対する3のシステム出力のいずれかの応答が示されます。各プロットには,すべての入力信号もグレ,で表示されます。

既定では,lsimは,シミュレーションの開始時にすべての状態が0であると仮定して,モデルをシミュレーションします。状態空間モデルの応答をシミュレ,トする場合は,オプションのx0入力引数を使用して,非ゼロの初期状態の値を指定します。次の2状態のsiso状態空間モデルを考えてみます。

A = [-1.5 -3;3 1];B = [1.3;0);C = [1.15 2.3];D = 0;sys = ss(A,B,C,D);

2秒の入力のない既知の初期状態のセットから展開して,単位ステップの変更を適用できるようにするとします。初期状態値のベクトルx0を指定し,入力ベクトルを作成します。

X0 = [-0.2 0.3];T = 0:05:8;U = 0(长度(t),1);U (t>=2) = 1;lsim (sys, u, t, x0)网格

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示驱动输入,sys。"height=

プロットの最初の半分には,初期状態値(-0.2 - 0.3)からのシステムの最初の変化を示します。T = 2でステップが入力に変わり,プロットにはその時点における状態値から始まるこの新しい信号に対するシステム応答が示されます。

出力引数を指定したlsimを使用すると,シミュレ,ションされた応答デ,タが配列で返されます。Sisoシステムの場合,応答デ,タはtと同じ長さの列ベクトルとして返されます。たとえば,矩形波に対するsisoシステムの応答を抽出するとします。gensigを使用して矩形波を作成します。

Sys = tf([2 5 1],[1 2 3]);[u,t] = gensig(“广场”、4、10、0.05);[y,t] = lsim(sys,u,t);大小(y)
ans =1×2201年1

ベクトルyには,t各タ▪ムステップでシミュレ▪トされた応答が含まれます(便宜上,lsimは時間ベクトルtを返します)。

Mimoシステムの場合,応答デ,タは次元Nx纽约xνの配列で返されます。纽约νは動的システムの出力および入力の数です。たとえば2つの入力と3つの出力をもつ3状態システムを表す,次の状態空間モデルを考えてみます。

A = [-1.5 -0.2 1.0;0.6;1.0 0.6 -1.4];B = [1.5 0.6;-1.8 - 1.0;0 0];C = [0 -0.1 -0.2;0.7 -0.2 -0.3 -0.65 0 -0.6];D = [0.1 0;0.1 1.5 0 0]; sys = ss(A,B,C,D);

両方の入力で適用された矩形波に対する3の出力チャネルの応答を抽出します。

uM = [u u];[y,t] = lsim(sys,uM,t);大小(y)
ans =1×2201年3

y (:, j)は,両方の入力に適用された矩形波に対するj番目の出力における応答を含む列ベクトルです。まり,y(我,:)は,番目のタ▪▪▪ムステップにおける出力値である3▪▪▪の値のベクトルです。

sysは状態空間モデルであるため,入力信号に応じて状態値の時間発展を抽出できます。

[y,t,x] = lsim(sys,uM,t);大小(x)
ans =1×2201年3

xの各行には,tの対応する時間における状態値(x1, x2, x3)が含まれます。まり,x(我,:)は,番目のタ@ @ムステップにおける状態ベクトルです。状態値をプロットします。

情节(t, x)

图中包含一个轴对象。axis对象包含3个line类型的对象。"height=

“同じ入力に対する複数システムの応答のプロット”の例は,信号軸に複数の個々のシステムの応答をプロットする方法を示しています。モデル配列に複数の動的システムを配置すると,lsimはそのすべての応答を一度にプロットします。

モデル配列を作成します。この例では、固有振動数が異なる 2 次伝達関数の 1 次元配列を使用します。最初に、モデル配列のメモリを事前に割り当てます。次のコマンドで、零点とゲインの SISO 伝達関数からなる 1 行 5 列の行を作成します。最初の 2 つの次元は、モデルの出力と入力を表します。残りの次元は配列の次元です (モデル配列とそれらの作成方法の詳細については、モデル配列を参照してください)。

Sys = tf(0 (1,1,1,5));

配列を設定します。

W0 = 1.5:1:5.5;%固有频率Zeta = 0.5;%阻尼常数i = 1:长度(w0)系统(:,:,1,我)=特遣部队(w0 (i) ^ 2,[1 2 *ζ* w0 (i) w0 (i) ^ 2]);结束

矩形波入力に対する配列内のすべてのモデルの応答をプロットします。

[u,t] = gensig(“广场”、5、15);lsim (sys, u, t)

图中包含一个轴对象。axis对象包含6个line类型的对象。这些对象表示驱动输入,sys。"height=

lsimは,配列内のすべてのエントリの応答に同じラaaplンスタaaplルを使用します。エントリを区別する1の方法は,動的システムモデルのSamplingGridプロパティを使用して配列内の各エントリを対応するw0値に関連付けることです。

sys。SamplingGrid = struct(“频率”, w0);

次に,応答をMATLAB图ウィンドウにプロットする場合は,トレースをクリックして,対応する周波数値を確認できます。

モデルを推定する推定デ,タを読み込みます。

负载(fullfile (matlabroot“工具箱”“识别”“iddemos”“数据”“dcmotordata”));Z = iddata(y,u,0.1,“名字”直流电机的);

zは,サンプル時間0.1秒の1入力2出力推定デ,タを格納するiddataオブジェクトです。

推定デ,タzを使用して次数4の状態空間モデルを推定します。

[sys,x0] = n4sid(z,4);

sysは推定されたモデル,x0は推定された初期状態です。

推定に使用したものと同じ入力デ,タと推定コマンドによって返された初期状態を使用して,sysの応答をシミュレ,トします。

[y,t,x] = lsim(sys,z.InputData,[],x0);

ここで,yはシステム応答,tはシミュレ,ションに使用される時間ベクトル,xは状態軌跡です。

両方の出力にいて,シミュレションされた応答yを測定した応答z.OutputDataと比較します。

次要情节(211),情节(t, z.OutputData (: 1),“k”、t、y (: 1),“r”)传说(“测量”“模拟”) subplot(212), plot(t,z.OutputData(:,2),“k”、t、y (:, 2),“r”)传说(“测量”“模拟”

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象代表测量的、模拟的。坐标轴对象2包含2个line类型的对象。这些对象代表测量的、模拟的。"height=

サンプル時間の選択は,シミュレ,ション結果に大きく影響する場合があります。この理由を,次の2次モデルを使って考えてみます。

年代 y 年代 年代 ω 2 年代 2 + 2 年代 + ω 2 ω 62.83

周期を1秒とし,0.1秒のサンプル時間を使用して,矩形波に対するこのモデルの応答をシミュレーションします。

W2 = 62.83^2;Sys = tf(w2,[1 2 w2]);Tau = 1;Tf = 5;Ts = 0.1;[u,t] = gensig(“广场”τ,Tf, Ts);lsim (sys, u, t)

lsim警告信息:输入信号采样不足。"></p>
                    </div>
                   </div>
                   <div class=

lsimは,指定された入力信号を使用してモデルをシミュレーションしますが,入力信号がアンダーサンプルであること示す警告を表示します。lsimでは,入力uの1周期のサンプル数を少なくとも64個生成するサンプル時間が推奨されます。この推奨事項が重要である理由を確認するために、最大推奨値よりも小さいサンプル時間を使用してsysをもう一度シミュレ,ションします。

图Ts2 = 0.01;[u2,t2] = gensig(“广场”τ,Tf, Ts2);lsim (sys, u2, t2)

この応答は,アンダ,サンプルバ,ジョンに強い振動動作が隠れていることを示します。

入力引数

すべて折りたたむ

動的システム。西索またはmimo動的システムモデルか,動的システムモデルの配列として指定します。応答をシミュレ,ションできる動的システムは次のとおりです。

  • 特遣部队zpk党卫军モデルなどの連続時間または離散時間の数値ltiモデル。

  • 一族号航空母舰モデルなどの一般化された,あるいは不確かさをもつLTIモデル(不確かさをもつモデルを使用するには鲁棒控制工具箱™ソフトウェアが必要です)。

    • 調整可能な制御設計ブロックの場合,関数は応答データをプロットする処理と返す処理の両方においてモデルをその現在の値で評価します。

    • 不確かさをもつ制御設計ブロックの場合,関数はモデルのノミナル値とランダムサンプルをプロットします。出力引数を使用する場合,関数はノミナルモデルのみの応答デ,タを返します。

  • 桅杆モデルやmechssモデルなどのスパ,ス状態空間モデル。

  • idtf中的难点idprocモデルなどの同定されたltiモデル。同定されたモデルの場合は,sim卡(系统识别工具箱)コマンドも使用します。このコマンドはシミュレーションされた応答と状態軌跡の標準偏差を計算できます。sim卡では,非ゼロ初期条件ですべてのタイプのモデルをシミュレーションし,非線形の同定されたモデルをシミュレーションすることもできます(同定されたモデルを使用するには,系统辨识工具箱™ソフトウェアが必要です)。

lsimは,的朋友genfrdidfrdモデルなど,周波数応答デ,タモデルをサポ,トしません。

sysがモデルの配列である場合,この関数は同じ座標軸上に配列のすべてのモデルの応答をプロットします。モデル配列でのシステムの応答を参照してください。

入力信号シミュレ,ション。単入力システムの場合はベクトル,多入力システムの場合は配列として指定します。

  • 単入力システムの場合,utと同じ長さのベクトルです。

  • 多入力システムの場合,uは、時間サンプル(长度(t))と同じ行数およびsysに対する入力と同じ列数をも配列です。まり,各行u(我,:)は,時間t(我)におけるsysの入力に適用された値を表します。各列u (:, j)は,sysj番目の入力に適用された信号です。

応答を計算する時間サンプル。0: dT: Tf形式のベクトルとして指定します。lsimコマンドでは,tはモデルsysTimeUnitプロパティで指定された単位を使用するものと解釈します。

連続時間sysの場合,lsimコマンドはタ@ @ムステップdTを使用してモデルを離散化します。dTがシステムダナミクスに対して大きすぎる(アンダサンプリング)場合,lsimは,サンプリング時間の短縮を推奨する警告を出します。サンプリング時間がシミュレションに与える影響の詳細にいては,シミュレ,ションに対するサンプル時間の影響を参照してください。

離散時間sysの場合,タdTsysのサンプル時間と等しくなければなりません。または,tを省略するか,[]に設定できます。その場合,lsimtを,sys。Tsと同じタesc escムステップで0から始まるuと同じ長さのベクトルに設定します。

状態空間モデルをシミュレ,ションするための初期状態値。sysの状態ごとに1の値をも。この引数を省略すると,lsimはすべての状態をT = 0の0に設定します。

連続時間モデルをサンプリングするための離散化手法。次のいずれかとして指定します。

  • “zoh”—ゼロ次ホルド

  • “呸”- 1次ホルド

sysが連続時間モデルの場合,lsimは,tのタ@ @ムステップdT = t(2)-t(1)と等しいサンプル時間を使用してモデルを離散化することで,時間応答を計算します。離散化手法を指定しない場合,lsimは,信号uの滑らかさに基づいて自動的に方式を選択します。離散化手法の詳細にいては,連続/離散の変換方法を参照してください。

ランスタル,マカ,色。1、2、または 3 文字の string または文字ベクトルとして指定します。文字が表示される順序は任意です。3 つの特性 (ライン スタイル、マーカーおよび色) をすべて指定する必要はありません。たとえば、ライン スタイルを省略してマーカーを指定した場合、プロットはラインなしでマーカーのみを表示します。この引数の設定の詳細については、関数情节の入力引数LineSpecを参照してください。

例:“r——”は赤い破線を指定します。

例:‘* b”は青いアスタリスクマ,カ,を指定します。

例:“y”は黄色いラ@ @ンを指定します。

出力引数

すべて折りたたむ

シミュレ,ションされた応答デ,タ。配列として返されます。

  • 単入力システムの場合,ytと同じ長さの列ベクトルです。

  • 多出力システムの場合,yは時間サンプル(长度(t))と同じ行数およびsysの出力と同じ列数をも配列です。したがって,yのj番目の列(y (:, j))には,すべての入力に適用されたuに対するj番目の出力の応答が含まれます。

シミュレ,ションに使用される時間ベクトル。列ベクトルとして返されます。0: dT: Tf形式の入力時間ベクトルtを指定すると,tOut = tとなります。tがほぼ等間隔でサンプリングされている場合,lsimはシミュレ,ションのサンプル時間を調整し,結果を吹捧で返します。離散時間sysの場合,tを省略するか,[]に設定できます。その場合,lsimtを,sys。Tsと同じタesc escムステップで0から始まるuと同じ長さのベクトルに設定し,結果を吹捧で返します。

状態軌跡。配列として返されます。sysが状態空間モデルの場合,xは入力に対する応答のsysの状態の発展が含まれます。xは,時間サンプル(长度(t))と同じ行数およびsysの状態と同じ列数の配列です。

ヒント

  • 追加のプロットカスタマesc escズオプションが必要な場合は,代わりにlsimplotを使用します。

アルゴリズム

離散時間の伝達関数の場合,

年代 y 年代 z 1 一个 0 + 一个 1 z 1 + ... + 一个 n z n 1 + b 1 z 1 + ... + b n z n

lsimは,この伝達関数に関連付けられた再帰に基づいて入力をフィルタ,処理します。

y k 一个 0 u k + ... + 一个 n u k n b 1 y k 1 ... b n k n

離散時間zpkモデルの場合,lsimは一連の1次セクションまたは2次セクションを通じて入力をフィルタ,処理します。この方法により、高次のモデルで数値的不安定性を引き起こす可能性がある、分子多項式と分母多項式は作成されません。

離散時間の状態空間モデルの場合,lsimは離散時間の状態空間方程式を伝播します。

x n + 1 一个 x n + B u n y n C x n + D u n

連続時間システムの場合,lsimは最初に汇集を使用してシステムを離散化してから,結果の離散時間状態空間方程式を伝播します。入力引数方法を使用して前述の指定と異なる指定をしない限り,lsimは,入力信号が滑らかな場合は1次ホールド離散化手法を使用し,パルスや矩形波など入力信号が不連続の場合はゼロ次ホールドを使用します。離散化のサンプル時間は,tで指定した時間サンプル間の間隔dTです。

バ,ジョン履歴

R2006aより前に導入