Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

連続時間モデルの作成

この例では、tfzpkss、および frd の各コマンドを使用して連続時間線形モデルを作成する方法を示します。

LTI モデルのタイプ

Control System Toolbox™ には、線形時不変 (LTI) モデルの 4 つの基本的表現を作成する関数が用意されています。

  • 伝達関数 (TF) モデル

  • 零点-極-ゲイン (ZPK) モデル

  • 状態空間 (SS) モデル

  • 周波数応答データ (FRD) モデル

これらの関数はモデル データを入力として受け取り、このデータを単一の MATLAB® 変数で表すオブジェクトを作成します。

伝達関数モデルの作成

伝達関数 (TF) は LTI システムの周波数領域表現です。SISO 伝達関数は多項式の比です。

H(s)=A(s)B(s)=a1sn+a2sn-1++an+1b1sm+b2sm-1++bm+1

伝達関数は、その分子多項式 A(s) と分母多項式 B(s) によって指定されます。MATLAB では、多項式はその係数のベクトルによって表現されます。たとえば、多項式

s2+2s+10

は、[1 2 10] として指定されます。

伝達関数

H(s)=ss2+2s+10

を表現する TF オブジェクトを作成するには、分子多項式と分母多項式を指定し、tf を使用します。

num = [ 1  0 ];       % Numerator: s
den = [ 1  2  10 ];   % Denominator: s^2 + 2 s + 10
H = tf(num,den)
H =
 
        s
  --------------
  s^2 + 2 s + 10
 
Continuous-time transfer function.

別の方法として、このモデルをラプラス変数 s の有理式として指定することもできます。

s = tf('s');        % Create Laplace variable
H = s / (s^2 + 2*s + 10)
H =
 
        s
  --------------
  s^2 + 2 s + 10
 
Continuous-time transfer function.

零点-極-ゲイン モデルの作成

零点-極-ゲイン (ZPK) モデルは因数分解型の伝達関数です。

H(s)=k(s-z1)(s-zn)(s-p1)(s-pm)

このようなモデルは、分子の根 z (零点) と分母の根 p (極) を明示します。スカラー係数 k はゲインと呼ばれます。

ZPK モデル

H(s)=-2s(s-2)(s2-2s+2)

を作成するには、極、零点、およびゲイン k のベクトルを指定します。

z = 0;                   % Zeros
p = [ 2  1+i  1-i ];     % Poles
k = -2;                  % Gain
H = zpk(z,p,k)
H =
 
          -2 s
  --------------------
  (s-2) (s^2 - 2s + 2)
 
Continuous-time zero/pole/gain model.

TF モデルの場合、このモデルも s の有理式として指定できます。

s = zpk('s');
H = -2*s / (s - 2) / (s^2 - 2*s + 2)
H =
 
          -2 s
  --------------------
  (s-2) (s^2 - 2s + 2)
 
Continuous-time zero/pole/gain model.

状態空間モデルの作成

状態空間 (SS) モデルは LTI システムの時間領域表現です。

dxdt=Ax(t)+Bu(t)

y(t)=Cx(t)+Du(t)

x(t) は状態ベクトル、u(t) は入力ベクトル、y(t) は出力軌跡です。

状態空間モデルは、システム ダイナミクスを記述する微分方程式から導出されます。たとえば、単純な電気モーターの 2 次 ODE を考えます。

d2θdt2+2dθdt+5θ=3I

I は駆動電流 (入力)、theta は回転子の角変位 (出力) です。この ODE は、状態空間表現で書き換えることができます。

dxdt=Ax+BIA=[01-5-2]B=[03]x=[θdθdt]

θ=Cx+DIC=[10]D=[0]

このモデルを作成するには、状態空間行列 A, B, C, D を指定し、ss を使用して SS オブジェクトを作成します。

A = [ 0  1 ; -5  -2 ];
B = [ 0 ; 3 ];
C = [ 1  0 ];
D = 0;
H = ss(A,B,C,D)
H =
 
  A = 
       x1  x2
   x1   0   1
   x2  -5  -2
 
  B = 
       u1
   x1   0
   x2   3
 
  C = 
       x1  x2
   y1   1   0
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

周波数応答データ モデルの作成

周波数応答データ (FRD) モデルを使用すると、システムの測定済みまたはシミュレート済みの複雑な周波数応答を LTI オブジェクトに保存できます。次に、このデータを、周波数領域の解析と設計のための代わりのモデルとして使用できます。

たとえば、周波数アナライザーから以下のデータが得られると仮定します。

  • 周波数 (Hz): 10, 30, 50, 100, 500 10, 30, 50, 100, 500

  • Response: 0.0021+0.0009i, 0.0027+0.0029i, 0.0044+0.0052i, 0.0200-0.0040i, 0.0001-0.0021i

以下を使用して、このデータを含む FRD オブジェクトを作成できます。

freq = [10, 30, 50, 100, 500];
resp = [0.0021+0.0009i, 0.0027+0.0029i, 0.0044+0.0052i, 0.0200-0.0040i, 0.0001-0.0021i];
H = frd(resp,freq,'Units','Hz')
H =
 
    Frequency(Hz)           Response       
    -------------           --------       
          10         2.100e-03 + 9.000e-04i
          30         2.700e-03 + 2.900e-03i
          50         4.400e-03 + 5.200e-03i
         100         2.000e-02 - 4.000e-03i
         500         1.000e-04 - 2.100e-03i
 
Continuous-time frequency response.

Units をヘルツと指定しない限り、周波数値は rad/s 単位と見なされることに注意してください。

MIMO モデルの作成

tfzpkss、および frd の各コマンドを使用すると、SISO と MIMO の両モデルを作成できます。TF モデルまたは ZPK モデルの場合は通常、単純な SISO モデルを連結することで MIMO モデルを作成するという方法が便利です。たとえば、2x2 MIMO 伝達関数

H(s)=[1s+10s+1s2+s+3-4ss+2]

を作成するには、以下を使用します。

s = tf('s');
H = [ 1/(s+1) , 0 ; (s+1)/(s^2+s+3) , -4*s/(s+2) ]
H =
 
  From input 1 to output...
         1
   1:  -----
       s + 1
 
          s + 1
   2:  -----------
       s^2 + s + 3
 
  From input 2 to output...
   1:  0
 
       -4 s
   2:  -----
       s + 2
 
Continuous-time transfer function.

LTI モデルの解析

Control System Toolbox には、LTI モデルを解析するための広範な関数が用意されています。これらの関数は、I/O のサイズおよび次数に関する簡単なクエリから、高度な時間応答および周波数応答の解析まで多岐にわたります。

たとえば、上で指定した MIMO 伝達関数 H のサイズ情報を取得するには、次のように入力します。

size(H)
Transfer function with 2 outputs and 2 inputs.

極を計算するには、以下のようにします。

pole(H)
ans = 4×1 complex

  -1.0000 + 0.0000i
  -0.5000 + 1.6583i
  -0.5000 - 1.6583i
  -2.0000 + 0.0000i

このシステムが安定しているかどうかを尋ねるには、以下のようにします。

isstable(H)
ans = logical
   1

最後に、以下のように入力して、ステップ応答をプロットできます。

step(H)

Figure contains 4 axes objects. Axes object 1 with title From: In(1), ylabel To: Out(1) contains an object of type line. This object represents H. Axes object 2 with ylabel To: Out(2) contains an object of type line. This object represents H. Axes object 3 with title From: In(2) contains an object of type line. This object represents H. Axes object 4 contains an object of type line. This object represents H.

参考

| | | |

関連するトピック