複数の入力を持つシス​テムをlinmodで​線形化しても1つ目の​入力に対する伝達関数​しか得られません。任​意の入力に対する伝達​関数を得るにはどうす​れば良いですか?

5 次查看(过去 30 天)
下図の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つ目の入力に対する伝達関数を得るにはどうすれば良いですか?

采纳的回答

MathWorks Support Team
下記の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 个)

类别

Help CenterFile Exchange 中查找有关 Additional Math and Discrete 的更多信息

标签

尚未输入任何标签。

产品


版本

R14SP1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!