Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

model

モデルのシミュレーションの特定のフェーズを実行

構文

[sys,x0,str,ts] = model([],[],[],'sizes');
[sys,x0,str,ts] = model([],[],[],'compile');
outputs = model(t,x,u,'outputs');
derivs = model(t,x,u,'derivs');
dstates = model(t,x,u,'update');
model([],[],[],'term');

説明

model コマンドは、model という名前の Simulink® モデルのシミュレーションの特定のフェーズを実行します。コマンドの最後の引数 (flag) は、実行すべきシミュレーションのフェーズを指定します。モデルをシミュレーションする際に Simulink が使用する手順の詳細は、動的システムのシミュレーションの段階を参照してください。

このコマンドは、状態遷移および条件付き実行の影響を無視します。したがって、このようなロジックをもつモデルには適していません。1 つの動的システムとして表されるモデルに、このコマンドを使用します。このようなシステムは、以下の要件を満たす必要があります。

  • モデル内のすべての状態は、組み込みの非バス データ型でなければなりません。組み込みデータ型の詳細については、Simulink におけるデータ型についてを参照してください。

  • 状態の指定にベクトル形式を使用している場合、このコマンドでアクセスできるのは double データ型の非複素数状態のみになります。

  • 最小限のステート ロジック (Stateflow、条件付きで実行されるサブシステムなど) が存在します。

  • モデルは混在領域モデルではありません。つまり、モデル内のほとんどのブロックは組み込みの Simulink ブロックで、ユーザーが作成した S-Function や他の Sim* 製品からのブロックを含まないということです。

これらの要件を満たさないモデルの場合、このコマンドを使用すると、Simulink はモデルのより詳細な解析と簡略化を行うことによってのみ解釈可能な結果が生成されることがあります。

メモ

状態変数 x は構造体形式およびベクトル形式で表すことができます。変数は、指定された形式の制限に従います。

またこのコマンドは、モデルをステップ実行しながらデバッグなどを行うようには作られていません。モデルをデバッグする際に中間的な結果をチェックする必要がある場合は、Simulink デバッガーを使用してください。

引数

sys

モデル サイズ データのベクトル

  • sys(1) = 連続的状態の数

  • sys(2) = 離散的状態の数

  • sys(3) = 出力数

  • sys(4) = 入力数

  • sys(5) = 予備

  • sys(6) = 直達フラグ (1 = yes, 0 = no)

  • sys(7) = マイナー ステップ内の連続、離散、固定の数、および制御可能なサンプル時間 (= ts 内の行の数)

x0

システムの状態の初期条件を含むベクトル

str

モデルの状態に関連付けられたブロックの名前のベクトル。状態の名前と初期条件は、それぞれ、strx0 の中に同じ順序で現れます。

ts

マイナー ステップ内の連続、離散、固定のサンプル時間 (周期、オフセット) 情報、およびモデル内の制御可能なサンプル時間を含む m2 列の行列。

Simulink でのサンプル時間の詳細については、サンプル時間のタイプを参照してください。

outputs

タイム ステップ t におけるモデルの出力

derivs

時刻 t におけるモデルの連続的状態の微分値

dstates

時間 t におけるモデルの状態で、構造体または配列として返されます。Simulink はモデルに状態があるとき構造体を返し、x は空の ([]) か構造体形式です。それ以外の場合、Simulink は配列を返します。

  • 戻り値の型がベクトルまたは配列の場合、Simulink は実数の double の離散状態のみを返します。

  • 戻り値の型が構造体の場合、Simulink は組み込み型のみの連続状態と離散状態の両方を含む構造体を返します。組み込み型以外は省略されます。

t

タイム ステップ。スカラー形式の実数の double として指定します。

x

状態ベクトル。構造体またはベクトル形式の実数の double として指定します。

u

入力。ベクトル形式の実数の double として指定します。

flag

実行するシミュレーション フェーズの仕様:

  • 'sizes' は、シミュレーションのサイズ計算フェーズを実行します。このフェーズでは、モデルの入力、出力、状態ベクトルなどのサイズが求められます。

  • 'compile' は、シミュレーションのコンパイル フェーズを実行します。編集フェーズは、信号とサンプル時間属性を伝播します。

  • 'update' はモデルの離散的な状態の次の値を計算します。

  • 'outputs' は、時間 t でのモデルのブロックの出力を計算します。

  • 'derivs' は、タイム ステップ t でのモデルの連続状態の微分を計算します。

  • 'term' にした場合は、Simulink がモデルのシミュレーションを終了します。

メモ

outputupdate および derivs フラグは、シングルタスク モデルに対してのみ有効です。シングルタスクおよびマルチタスクの詳細については、タスク モード (Simulink Coder)を参照してください。

次のコマンドは、Simulink に添付されている vdp モデルのコンパイル フェーズを実行します。

vdp([], [], [], 'compile')

次のコマンドは、前の例で開始したシミュレーションを終了します。

vdp([], [], [], 'term')

メモ:

Simulink では、コンパイルまたはシミュレーション中にモデルが閉じません。'sizes' フェーズ以外のすべてのフェーズで、モデルを閉じる前に、'term' 引数を使用してモデル コマンドを呼び出さなければなりません。

参考

R2007a で導入