複数の入力を持つシステムをlinmodで線形化しても1つ目の入力に対する伝達関数しか得られません。任意の入力に対する伝達関数を得るにはどうすれば良いですか?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 25 de Oct. de 2013
Respondida: MathWorks Support Team
el 25 de Oct. de 2013
下図のSimulinkモデルを出力引数を2つにしてlinmod関数で線形化した場合(下記コマンド参照)に、1つ目の入力に対する伝達関数が得られます。

ページ下部の関連ドキュメントより、サンプルモデルのダウンロードが可能です:linsamp.mdl
(注意)ファイルのダウンロードはダウンロード対象のリンクを右クリックし「対象をファイルに保存」を選択してダウンロードを行ってください。
>> [num,den]=linmod('linsamp')
num =
0 1 1 0
0 0 0 0
den =
1 1 0 0
2つ目の入力に対する伝達関数を得るにはどうすれば良いですか?
Respuesta aceptada
MathWorks Support Team
el 25 de Oct. de 2013
下記の2つの場合について紹介します。
1. Simulink Control Designの機能を使用する場合
2. linmod関数を使用する場合
1. Simulink Control Designの機能を使用する場合
Simulink Control Design の GUI ベースの操作による線形化、入出力ポイントを明示的に指定して、線形化できます。
入出力の設定について、下記関連ソリューションの 1.1 に記載されています。
線形化で得られたシステムを、ワークスペースへエクスポートすることで伝達関数を得ることができます。
2. linmod関数を使用する場合
出力引数を[num,den]とした場合にはlinmod コマンド実行時に入力ポイント・出力ポイントを指定して線形化することはできませんが、出力引数を[a,b,c,d]として全入出力についてシステムを線形化した後に、ss2tf関数を用いて入力ポイントを指定して切り出すことができます。
サンプルモデルの場合、2つの Outport がありますので、各々の Outport に対して、線形化した結果を得たい場合は、以下のコマンド実行で結果を得ることが可能です。
[a,b,c,d] = linmod('linsamp'); % システム全体の線形化
[num1,den1] = ss2tf(a,b,c,d,1) % 入力1 の伝達関数の係数を取得
[num2,den2] = ss2tf(a,b,c,d,2) % 入力2 の伝達関数の係数を取得
入出力と対応する伝達関数の係数
入出力 分子係数 分母係数
--------------------------------------------
入力1・出力1 num1(1,:) den1
入力1・出力2 num1(2,:) den1
入力2・出力1 num2(1,:) den2
入力2・出力2 num2(2,:) den2
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Additional Math and Discrete en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!