Main Content

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

idss

同定可能なパラメーターをもつ状態空間モデル

説明

idss を使用して、同定可能な (推定可能な) 係数をもつ連続時間状態空間モデルまたは離散時間状態空間モデルを作成したり、動的システム モデル を状態空間形式に変換したりします。

入力ベクトル u、出力ベクトル y、および外乱 e をもつシステムの状態空間モデルは、連続時間では以下の形式を取ります。

dx(t)dt=Ax(t)+Bu(t)+Ke(t)y(t)=Cx(t)+Du(t)+e(t)

離散時間では、状態空間モデルは以下の形式を取ります。

x[k+1]=Ax[k]+Bu[k]+Ke[k]y[k]=Cx[k]+Du[k]+e[k]

idss モデルの場合、状態空間行列の要素 A、B、C、および D を推定可能なパラメーターにできます。状態外乱の要素 K も、推定可能なパラメーターにできます。idss モデルでは、これらの行列要素がモデルの ABCD、および K プロパティに保存されます。

作成

idss モデル オブジェクトは 3 つの方法のいずれかで取得できます。

  • n4sid または ssest を使用し、システムの入出力測定に基づいて idss モデルを推定します。これらの推定コマンドにより、状態空間行列の推定可能な要素の値が推定されます。推定された値は、結果として得られた idss モデルの ABCD、および K プロパティに保存されます。結果として得られたモデルの Report プロパティに、初期状態値の処理や、推定に使用されたオプションなどの、推定に関する情報が保存されます。以下に例を示します。

    sys = ssest(data,nx);
    A = sys.A;
    B = sys.B;
    sys.Report

    idss モデルを推定する他の例については、ssest または n4sid を参照してください。

  • idss コマンドを使用して idss モデルを作成します。以下に例を示します。

    sys = idss(A,B,C,D)
    idss モデルを作成して、測定された応答データを当てはめるように、状態空間モデルの推定のための初期パラメーター化を構成できます。これを行う場合、1 つ以上の状態空間行列要素に制約を指定できます。たとえば、いくつかの要素の値を固定したり、自由要素の最小値または最大値を指定したりできます。その後、構成されたモデルを推定コマンド (ssest または n4sid) の入力引数として使用し、これらの制約を適用してパラメーター値を推定できます。例については、同定可能なパラメーターをもつ状態空間モデルの作成および状態空間モデルの同定可能なパラメーターの構成を参照してください。

  • idss コマンドを使用して、既存の動的システム モデルを idss モデルに変換します。以下に例を示します。

    sys_ss = idss(sys_tf);

idss モデル オブジェクトからの情報の抽出およびモデル オブジェクトの変換に使用できる関数の詳細については、オブジェクト関数を参照してください。

説明

状態空間モデルの作成

sys = idss(A,B,C,D) は、状態空間行列 A,B,C,D が指定されている状態空間モデルを作成します。既定では、sys は、サンプル時間が指定されておらず状態外乱要素のない、離散時間モデルです。この構文は特に、初期パラメーター化を n4sidssest などの状態空間推定関数の入力として構成する場合に使用します。

sys = idss(A,B,C,D,K) は、外乱行列 K を指定します。

sys = idss(A,B,C,D,K,x0) は、状態値をベクトル x0 で初期化します。

sys = idss(A,B,C,D,K,x0,Ts) は、サンプル時間のプロパティ Ts を指定します。Ts = 0 を使用して連続時間モデルを作成します。

sys = idss(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して追加のプロパティを設定します。名前と値のペアの引数は、前述の構文で任意の入力引数の組み合わせの後に指定します。

動的システム モデルの状態空間モデルへの変換

sys = idss(sys0) は、動的システム モデル sys0idss モデル形式に変換します。

sys = idss(sys0,'split') は、sys0idss モデル形式に変換し、sys0 の最後の Ny 入力チャネルを、返されるモデルのノイズ チャネルとして処理します。sys0 は、数値 (非同定) モデル オブジェクト tf (Control System Toolbox)zpk (Control System Toolbox)、または ss (Control System Toolbox) でなければなりません。また、sys0 には、少なくとも出力と同じ数の入力がなければなりません。

入力引数

すべて展開する

初期状態の値。Nx の値の列ベクトルとして指定します。

動的システム。idss モデルに変換する動的システム モデルとして指定します。

  • sys0 が同定されたモデルの場合、その推定されたパラメーター共分散は変換時に失われます。変換時に、推定されたパラメーター共分散を変換する場合は、translatecov を使用します。

  • sys0 が数値 (非同定) モデルの場合、sys0 の状態空間データは、変換されたモデルの行列 ABC、および D を定義します。外乱行列 K はゼロに固定されます。NoiseVariance の既定値は eye(Ny) に設定されます。ここで、Nysys の出力の数です。

構文 sys = idss(sys0,'split') では、sys0 は数値 (非同定) モデル オブジェクト tf (Control System Toolbox)zpk (Control System Toolbox)、または ss (Control System Toolbox) でなければなりません。また、sys0 には、少なくとも出力と同じ数の入力がなければなりません。最後に、サブシステム sys0(:,Ny+1:Ny+Nu) には非ゼロの直達項が含まれなければなりません (サブシステムはバイプロパーでなければなりません)。

プロパティ

すべて展開する

状態空間行列の値。A、B、C、D の各行列に対応する行列として指定します。

Ny 出力、Nu 入力、および Nx 状態をもつシステムの場合、状態空間行列は以下の次元をもちます。

  • A — Nx 行 Nx 列の行列

  • B — Nx 行 Nu 列の行列

  • C — Ny 行 Nx 列の行列

  • D — Ny 行 Nu 列の行列

ssest または n4sid を使用して同定によって idss モデル sys を取得する場合、sys.Asys.Bsys.C、および sys.D には、行列要素の推定値が含まれます。

idss コマンドを使用して idss モデル sys を作成する場合、sys.Asys.Bsys.C、および sys.D には、A,B,C,D 入力引数で指定した状態空間行列の初期値が含まれます。

idss モデル sys の場合、各プロパティ sys.Asys.Bsys.C、および sys.D は、sysStructure プロパティでの対応する Value エントリのエイリアスです。たとえば、sys.A はプロパティ sys.Structure.A.Value の値のエイリアスです。

状態外乱行列の値 K。Nx 行 Ny 列の行列として指定します。ここで、Nx は状態の数で、Ny は出力の数です。

ssest または n4sid を使用して同定によって idss モデル sys を取得する場合、sys.K には、行列要素の推定値が含まれます。

idss コマンドを使用して idss モデル sys を作成する場合、sys.K には、K 入力引数で指定した状態空間行列の初期値が含まれます。

idss モデル sys の場合、sys.K はプロパティ sys.Structure.K.Value の値のエイリアスです。

状態名。文字ベクトルまたは cell 配列として指定します。

  • 1 次モデル — 文字ベクトル

  • 2 つ以上の状態をもつモデル — 文字ベクトルの cell 配列

  • 名前のない状態 — ''

例: 'velocity' は、1 次モデルの状態にのみ名前を付けます。

状態単位。文字ベクトルまたは cell 配列として指定します。

  • 1 次モデル — 文字ベクトル

  • 2 つ以上の状態をもつモデル — 文字ベクトルの cell 配列

  • 単位が指定されない状態 — ''

各状態が表現される単位を記録するために StateUnit を使用します。StateUnit はシステムの動作に影響を与えません。

例: 'rad' は、1 次モデルの状態のみの単位に対応します。

idss モデルの推定可能なパラメーターに関する情報。プロパティ固有の値として指定します。Structure.AStructure.BStructure.CStructure.D、および Structure.K にはそれぞれ、行列 A、B、C、D、および K に関する情報を含めます。Structure の各パラメーターには、次のフィールドがあります。

フィールド説明
パラメーター値 — 各プロパティ sys.Asys.Bsys.C、および sys.D は、sysStructure プロパティでの対応する Value エントリのエイリアスです。NaN は不明なパラメーター値を表します。sys.Structure.A.Value には、A 行列の初期値または推定値を含めます。sys.A はプロパティ sys.Structure.A.Value の値のエイリアスです。
最小値推定時にパラメーターが前提とすることができる最小値sys.Structure.K.Minimum = 0 は、K 行列内のすべてのエントリがゼロ以上になるように制約します。
最大値推定時にパラメーターが前提とすることができる最大値 
自由パラメーターが自由推定変数かどうかを指定するブール値。推定時にパラメーターの値を固定にする場合は、対応する Free = false を設定します。A が 3 行 3 列の行列である場合、sys.Structure.A.Free = eyes(3) は A 内のすべての非対角要素を sys.Structure.A.Value に指定されている値に固定します。この場合、A 内の対角要素のみが推定可能です。
スケールパラメーターの値のスケール。推定アルゴリズムは Scale を使用しません。 
情報パラメーターのラベルと単位を保存するためのフィールド Label および Unit が含まれる構造体配列。パラメーターのラベルと単位を文字ベクトルとして指定します。'Time'

Structure プロパティを使用したモデル パラメーターの構成の例については、状態空間モデルの同定可能なパラメーターの構成を参照してください。

モデルのイノベーションの分散 (共分散行列) e。スカラーまたは行列として指定します。

  • SISO モデル — スカラー

  • Ny 出力をもつ MIMO モデル — Ny 行 Ny 列の行列

同定されたモデルには、ホワイト ガウス ノイズ コンポーネント e(t) が含まれます。NoiseVariance は、このノイズ コンポーネントの分散です。通常、モデル推定関数 (ssest など) によりこの分散が決定されます。

この プロパティ は読み取り専用です。

ssestssregestn4sid などの推定コマンドを使用して取得された状態空間モデルの推定オプションおよび結果に関する情報を含む概要レポート。Report を使用して、同定されたモデルに関する以下のような推定情報を確認します。

  • 推定法

  • 推定のオプション

  • 探索の終了条件

  • 推定データの当てはめおよびその他の品質メトリクス

構築によりモデルを作成する場合、推定情報を伝達するレポート プロパティはほとんど空になります。

A = [-0.1 0.4; -0.4 -0.1];
B = [1; 0];
C = [1 0];
D = 0;
sys = idss(A,B,C,D);
sys.Report
ans = 

          Status: 'Created by direct construction or transformation. Not estimated.'
          Method: ''
    InitialState: ''
        N4Weight: ''
       N4Horizon: []
             Fit: [1×1 struct]
      Parameters: [1×1 struct]
     OptionsUsed: []
       RandState: []
        DataUsed: [1×1 struct]
     Termination: []

推定コマンドを使用して取得する場合、Report のフィールドには推定データ、オプション、および結果に関する情報が含まれます。

load iddata2 z2;
sys = ssest(z2,3);
sys.Report
ans = 

          Status: 'Estimated using SSEST with prediction focus'
          Method: 'SSEST'
    InitialState: 'zero'
        N4Weight: 'CVA'
       N4Horizon: [5 8 8]
             Fit: [1×1 struct]
      Parameters: [1×1 struct]
     OptionsUsed: [1×1 idoptions.ssest]
       RandState: []
        DataUsed: [1×1 struct]
     Termination: [1×1 struct]

このプロパティおよびその使用方法の詳細については、対応する推定コマンドのリファレンス ページの出力引数セクションおよびEstimation Reportを参照してください。

各入力チャネルの入力遅延。スカラー値または数値ベクトルとして指定します。連続時間システムの場合、TimeUnit プロパティに格納された時間単位で入力遅延を指定します。離散時間システムの場合、サンプル時間 Ts の整数倍で入力遅延を指定します。たとえば、InputDelay3 に設定すると、3 サンプル時間の遅延が指定されます。

Nu 個の入力のあるシステムの場合、InputDelay を Nu 行 1 列のベクトルに設定します。このベクトルの各エントリは、対応する入力チャネル用の入力遅延を表す数値です。

InputDelay をスカラー値に設定して、同一の遅延をすべてのチャネルに適用することもできます。

idss などの同定されたシステムでは、OutputDelay はゼロに固定されます。

サンプル時間。以下のいずれかとして指定します。

  • 連続時間モデル — 0

  • 指定したサンプル時間をもつ離散時間モデル — モデルの TimeUnit プロパティで指定された単位で表されたサンプリング周期を表す正のスカラー

  • サンプル時間が指定されていない離散時間モデル — -1

このプロパティを変更してもモデルの離散化やリサンプリングは行われません。c2dd2c を使用して、連続時間表現と離散時間表現の間の変換を行います。d2d を使用して、離散時間システムのサンプル時間を変更します。

モデル内の時間変数、サンプル時間 Ts、および何らかの時間遅延の単位。スカラーとして指定します。

このプロパティを変更してもリサンプリングやデータの変換は行われません。プロパティを変更すると、既存のデータの解釈のみが変更されます。chgTimeUnit (Control System Toolbox) を使用して、データをさまざまな時間単位に変換します。

入力チャネル名。文字ベクトルまたは cell 配列として指定します。

  • 単入力モデル — 文字ベクトル。たとえば、'controls' とします。

  • 多入力モデル — 文字ベクトルの cell 配列。

または、自動的なベクトル拡張を使用して多入力モデルの入力名を割り当てます。たとえば、sys が 2 入力モデルである場合は、以下のようになります。

sys.InputName = 'controls';

入力名は自動的に {'controls(1)';'controls(2)'} へと拡張されます。

iddata オブジェクトの data を使用してモデルを推定すると、InputName は自動的に data.InputName に設定されます。

省略形表記 u を使用して、InputName プロパティを参照できます。たとえば、sys.usys.InputName と同じです。

入力チャネル名は以下のように複数の方法で使用できます。

  • モデル表示とプロットでチャネルを識別する

  • MIMO システムのサブシステムを抽出する

  • モデル相互接続時に接続点を指定する

入力チャネル単位。文字ベクトルまたは cell 配列として指定します。

  • 単入力モデル — 文字ベクトル

  • 多入力モデル — 文字ベクトルの cell 配列

InputUnit を使用して入力信号単位を追跡します。InputUnit はシステムの動作に影響しません。

入力チャネル グループ。構造体として指定します。InputGroup プロパティによって、MIMO システムの入力チャネルをグループに分割できます。これにより、各グループを名前で参照できます。InputGroup 構造体で、フィールド名をグループ名に設定し、フィールド値を各グループに属する入力チャネルに設定します。

たとえば、入力チャネル 1、2 および 3、5 をそれぞれ含む controls および noise という名前の入力グループを作成します。

sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];

その後、以下の構文を使用して controls 入力からすべての出力にサブシステムを抽出できます。

sys(:,'controls')

出力チャネル名。文字ベクトルまたは cell 配列として指定します。

  • 単入力モデル — 文字ベクトル。たとえば、'measurements' とします。

  • 多入力モデル — 文字ベクトルの cell 配列。

または、自動的なベクトル拡張を使用して多出力モデルの出力名を割り当てます。たとえば、sys が 2 出力力モデルである場合は、以下のようになります。

sys.OutputName = 'measurements';

出力名は自動的に {'measurements(1)';'measurements(2)'} へと拡張されます。

iddata オブジェクト data を使用してモデルを推定すると、OutputName は自動的に data.OutputName に設定されます。

省略形表記 y を使用して、OutputName プロパティを参照できます。たとえば、sys.ysys.OutputName と同じです。

出力チャネル名は以下のように複数の方法で使用できます。

  • モデル表示とプロットでチャネルを識別する

  • MIMO システムのサブシステムを抽出する

  • モデル相互接続時に接続点を指定する

出力チャネル単位。文字ベクトルまたは cell 配列として指定します。

  • 単入力モデル — 文字ベクトル。たとえば、'seconds' とします。

  • 多入力モデル — 文字ベクトルの cell 配列。

OutputUnit を使用して出力信号単位を追跡します。OutputUnit はシステムの動作に影響しません。

出力チャネル グループ。構造体として指定します。OutputGroup プロパティによって、MIMO システムの出力チャネルをグループに分割し、各グループを名前で参照できます。OutputGroup 構造体で、フィールド名をグループ名に設定し、フィールド値を各グループに属する出力チャネルに設定します。

たとえば、出力チャネル 1、および出力チャネル 3 と 5 をそれぞれ含む temperature および measurement という名前の出力グループを作成します。

sys.OutputGroup.temperature = [1];
sys.OutputGroup.measurement = [3 5];

その後、以下の構文を使用してすべての入力から measurement 出力にサブシステムを抽出できます。

sys('measurement',:)

システム名。文字ベクトルとして指定します。たとえば、'system_1' とします。

システムに関連付ける任意のテキスト。string または文字ベクトルの cell 配列として指定します。プロパティには指定したデータ型が格納されます。たとえば、sys1sys2 が動的システム モデルである場合、その Notes プロパティを次のように設定できます。

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

システムに関連付けるデータ。任意の MATLAB データ型として指定します。

モデル配列のサンプリング グリッド。構造体として指定します。

1 つ以上の独立変数をサンプリングすることによって派生させた、同定された線形 (IDLTI) モデルの配列の場合、このプロパティは各モデルに関連付けられた変数値を追跡します。この情報はモデル配列を表示またはプロットすると表示されます。この情報を使用して、結果を独立変数まで遡ります。

データ構造のフィールド名をサンプリング変数の名前に設定します。フィールドの値を、配列内の各モデルに関連付けられているサンプリングされた変数の値に設定します。すべてのサンプリング変数は数値およびスカラー値でなければならず、サンプル値のすべての配列はモデル配列の次元と一致しなければなりません。

たとえば、システムのさまざまな操作点でデータを収集するとします。各操作点に対して別個にモデルを同定し、結果を一緒に単一のシステム配列に入れることができます。操作点に関する情報を使用して配列内の個別モデルにタグを付けることができます。

nominal_engine_rpm = [1000 5000 10000];
sys.SamplingGrid = struct('rpm', nominal_engine_rpm)

ここで、sys は、それぞれ 1000、5000、および 10000 rpm で取得された 3 つの同定されたモデルを含む配列です。

複数のパラメーター値または操作点で Simulink® モデルを線形化することにより生成したモデル配列の場合、SamplingGrid には配列の各エントリに対応する変数値が自動的に入力されます。

オブジェクト関数

一般に、動的システム モデルに適用できるすべての関数は idss モデル オブジェクトに適用できます。これらの関数は 4 つの一般的なタイプに分類されます。

  • idss モデル オブジェクトを操作して結果のモデル オブジェクトを返す関数を使用し、idss モデルを変換および操作できます。たとえば次のようにします。

    • canon を使用して、idss モデルを正準形式に変換する。

    • merge を使用して、推定された idss モデルをマージする。

    • c2d を使用して、idss を連続時間から離散時間に変換する。d2c を使用して、idss を離散時間から連続時間に変換する。

  • bodesim など、idss オブジェクトに対して解析およびシミュレーションの機能を実行する関数

  • advicegetpar など、モデル情報を取得または解釈する関数

  • 時間領域用の idpolyidtf、連続領域用の idfrd など、idss オブジェクトを異なるモデル タイプに変換する関数

以下のリストには、idss モデルで使用できる関数の代表的なサブセットが含まれています。

すべて展開する

canon(非推奨) 正準状態空間実現
ss2ss状態空間モデルの状態座標変換
balred(非推奨) モデル次数の低次元化
translatecovTranslate parameter covariance across model transformation operations
setparSet attributes such as values and bounds of linear model parameters
chgTimeUnit動的システムの時間単位の変更
d2d離散時間モデルのリサンプリング
d2c離散時間から連続時間へモデルを変換
c2d連続時間から離散時間へモデルを変換
merge推定モデルをマージする

すべて展開する

sim同定されたモデルの応答のシミュレーション
predict拡張カルマン フィルター、アンセンテッド カルマン フィルター、または粒子フィルターを使用した次のタイム ステップにおける状態および状態推定誤差の共分散の予測
compare同定されたモデル出力を測定出力と比較する
impulse動的システムのインパルス応答プロット、インパルス応答データ
step動的システムのステップ応答
bode周波数応答、または振幅と位相データのボード線図
data2stateMap past data to states of state-space and nonlinear ARX models
findstatesEstimate initial states of model

すべて展開する

idssdataState-space data for identified system
getモデル プロパティ値にアクセスする
getparObtain attributes such as values and bounds of linear model parameters
getcovParameter covariance of identified model
adviceAnalysis and recommendations for data or estimated linear models

すべて展開する

idpolyPolynomial model with identifiable parameters
idtfTransfer function model with identifiable parameters
idfrd周波数応答データまたはモデル

すべて折りたたむ

同定可能なパラメーターをもつ 4 次の SISO 状態空間モデルを作成します。すべてのエントリの初期状態値を 0.1 に初期化します。サンプル時間を 0.1 秒に設定します。

A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]);
B = [1; zeros(3,1)]; 
C = [1 0 1 0]; 
D = 0; 
K = zeros(4,1);
x0 = [0.1,0.1,0.1,0.1];
Ts = 0.1;

sys = idss(A,B,C,D,K,x0,Ts);

sys は 4 次の SISO idss モデルです。状態の数と入出力の次元は、状態空間行列の次元によって決まります。既定では、行列 ABCD、および K 内のすべてのエントリは同定可能なパラメーターです。

sys を使用して、ssest または n4sid で状態空間モデル推定の初期パラメーター化を指定できます。

同定可能なパラメーターをもつ 4 次の SISO 状態空間モデルを作成します。モデルの入力チャネルと出力チャネルに名前を付け、モデルの時間単位として分を指定します。

名前と値のペアの引数を使用して、モデル作成時に追加モデル プロパティを指定できます。

A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]);
B = [1; zeros(3,1)]; 
C = [1 0 1 0]; 
D = 0; 

sys = idss(A,B,C,D,'InputName','Drive','TimeUnit','minutes');

既存のモデルのほとんどの属性を変更または指定するために、ドット表記を使用できます。たとえば、出力名を変更します。

sys.OutputName = 'Torque';

状態外乱要素がなく、A 行列の非ゼロのエントリのみが推定可能になるように、idss モデルを構成します。また、B 行列の値を固定します。

idss モデルの個々のパラメーターを構成して、ssest または n4sid で、状態空間モデル推定の制約を指定できます。

idss モデルを作成します。

A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]);
B = [1; zeros(3,1)]; 
C = [1 0 1 0]; 
D = 0; 
K = zeros(4,1);
x0 = [0.1,0.1,0.1,0.1];

sys = idss(A,B,C,D,K,x0,0);

K to 0 のすべてのエントリを設定することで、状態外乱要素のない idss モデルを作成します。

モデルの Structure プロパティを使用して、一部のパラメーターの値を固定します。

sys.Structure.A.Free = (A~=0);
sys.Structure.B.Free = false;
sys.Structure.K.Free = false;

sys.Structure.A.Free のエントリにより、sys.A 内の対応するエントリが自由 (同定可能) なのか固定なのかが決まります。最初の行で、sys.Structure.A.Free を、A が非ゼロの場合に true、それ以外の場合に false となる logical 行列に設定します。この設定は、sys.A 内のゼロのエントリの値を固定します。

残りの行は、sys.B および sys.K のすべての値を、モデル作成時に指定された値に固定します。

伝達関数を使用して動的システムをモデル化します。次に、idss を使用して伝達関数モデルを状態空間形式に変換します。

idtf を使用し、以下のように表される、連続時間の単入力単出力 (SISO) 伝達関数を作成します。

G(s)=s+4s2+20s+5

num = [1 4];
den = [1 20 5];
G = idtf(num,den)
G =
      s + 4
  --------------
  s^2 + 20 s + 5
 
Continuous-time identified transfer function.

Parameterization:
   Number of poles: 2   Number of zeros: 1
   Number of free coefficients: 4
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                         
Created by direct construction or transformation. Not estimated.
 

伝達関数を状態空間形式へ変換します。

sys0 = idss(G)
sys0 =
  Continuous-time identified state-space model:
      dx/dt = A x(t) + B u(t) + K e(t)
       y(t) = C x(t) + D u(t) + e(t)
 
  A = 
         x1    x2
   x1   -20  -2.5
   x2     2     0
 
  B = 
       u1
   x1   2
   x2   0
 
  C = 
        x1   x2
   y1  0.5    1
 
  D = 
       u1
   y1   0
 
  K = 
       y1
   x1   0
   x2   0
 
Parameterization:
   FREE form (all coefficients in A, B, C free).
   Feedthrough: none
   Disturbance component: none
   Number of free coefficients: 8
   Use "idssdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                         
Created by direct construction or transformation. Not estimated.
 

状態空間モデルの配列を作成します。

状態空間モデルの配列は、次のいずれかの方法で作成できます。

  • n 次元の状態空間配列を使用した直接的な配列作成

  • インデックス付き代入による配列作成

  • stackコマンドを使用した配列作成

  • rsampleコマンドを使用した、同定されたモデルのサンプリング

2 次元配列の代わりに n 次元配列を idss の入力引数として指定して配列を作成します。

A = rand(2,2,3,4);
sysarr = idss(A,[2;1],[1 1],0);

いずれかの状態空間配列の代わりに多次元配列を idss に指定する場合、最初の 2 つの次元により、配列内の各モデルの状態、入力、または出力の数が指定されます。残りの次元で、配列自体の次元が指定されます。A は 2×2×3×4 の配列です。そのため、sysarridss モデルの 3 行 4 列の配列です。sysarr の各モデルは、A の最初の 2 つの次元で指定されている 2 つの状態をもちます。さらに、sysarr の各モデルは、同じ BC、および D の値をもちます。

インデックス付き代入により配列を作成します。

sysarr = idss(zeros(1,1,2));
sysarr(:,:,1) = idss([4 -3; -2 0],[2;1],[1 1],0);
sysarr(:,:,2) = idss(rand(2),rand(2,1),rand(1,2),1);

最初のコマンドにより、配列を事前に割り当てます。配列の最初の 2 つの次元は、配列内の各モデルの I/O 次元です。そのため、sysarr は SISO モデルの 2 要素ベクトルです。

残りのコマンドにより、sysarr 内の各位置に idss モデルを割り当てます。配列内の各モデルの I/O 次元は同じでなければなりません。

stack を使用して別のモデルを sysarr に追加します。

stack は、インデックス付けによる配列作成の代わりになる方法です。

sysarr = stack(1,sysarr,idss([1 -2; -4 9],[0;-1],[1 1],0));

このコマンドは、sysarr の最初の配列次元に沿って別の idss モデルを追加します。sysarr は、SISO idss モデルの 3 行 1 列の配列になりました。

バージョン履歴

R2006a で導入