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

7 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 25 Ott 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つ目の入力に対する伝達関数を得るにはどうすれば良いですか?

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 25 Ott 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

Più risposte (0)

Tag

Non è stata ancora inserito alcun tag.

Prodotti


Release

R14SP1

Community Treasure Hunt

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

Start Hunting!