Real-Time Workshop User's Guide    

ラピッドシミュレーションの実行

ラピッドシミュレーションターゲットを使って、Real-Time Workshopが提供する一般的リアルタイム(GRT)ターゲットと同様のシミュレーションを行います。このシミュレーションは、タイマ割り込みを使わないので、非リアルタイムシミュレーション環境です。GRTrsimシミュレーションの違いは、rsimはシミュレーションの開始時に、コードを生成したり再コンパイルしないでパラメータ値や入力信号が変更可能なことです。一方、GRTターゲットは、新規のプロセッサをターゲットとするための出発点です。

モデルを1回ビルドすると、変化するパラメータや入力信号の効果を取得します。コマンドライン引数は、シミュレーションに対して新規のデータを指定するために必要なメカニズムを提供します。つぎの表は、利用可能なすべてのコマンドラインオプションの一覧です。

表11-1: rsimコマンドラインオプション 
コマンドラインオプション
説明
model -f old.mat=new.mat

MAT-ファイルの交換からFrom Fileブロックの入力信号データを読み込みます。

model -o newlogfile.mat
newlogfile.matというファイルにMAT-ファイルのロギングデータを書き込みます。
model -p filename.mat
filename.matというファイルから新規の(交換された)パラメータベクトルを読み込みます。
model -s <stoptime>
時間の値が<stoptime> に達するまでシミュレーションを実行します。
model -t old.mat=new.mat
オリジナルモデルは、信号を出力ファイルold.matに保存するように指定しました。この実行の場合、信号データの保存用にファイルnew.matを使います。
model -v
冗長モードで実行します。

From Fileブロックに対する新規の信号データファイルの指定

From Fileブロックに対して新規の信号データを指定する方法を理解するために、作業ディレクトリを作成し、そのディレクトリに接続します。つぎのようにMATLABプロンプトでタイプして、モデルrsimtfdemoをオープンします。

以下のようにタイプして

パラメータを設定します。rsimtfdemoは、データファイルrsim_tfdata.matが必要です。matlabroot/toolbox/rtw/rtwdemos/rsim_tfdata.matのローカルコピーを作業ディレクトリに作ってください。

rsim.tlc をシステムターゲットファイルとして指定し、rsim_default_tmfテンプレートmakeファイルとして指定します。Real-Time Workshopページでビルド(Build)ボタンを押して、rsim実行ファイルを作成します。

結果のプロットは、デフォルトの入力データを使ったシミュレーションの結果を示します。

入力信号の置換.   From Fileブロックに対する新規のデータは、標準のMATLAB MAT-ファイルに置かれます。Simulinkでは、From Fileブロックデータは、1行目が時間ベクトルを含み、つぎの行がuベクトルを入力信号として含む行列に格納しなければなりません。ユーザコードを生成し、コンパイルした後で、DOSプロンプトでモデル名rsimtfdemoをタイプしてシミュレーションを実行できます。この場合、ファイルrsm_tfdata.mat は、シミュレーションのための入力データを与えます。

つぎのシミュレーションに対して、newfrom.matという新規のデータファイルを作成し、これを使ってオリジナルファイル(rsim_tfdat.mat)を置き換え、この新規データを使ってrsimシミュレーションを実行します。これは、MATLABプロンプトでつぎのようにタイプすることにより行います。

つぎのようにタイプして、データをロードし、新規の結果をプロットできます。

下図は、結果のプロットを示しています。

結果として、新規のデータファイルが読み込まれ、シミュレーションはSimulation ParametersダイアログボックスのSolverページで指定した終了時間に進みます。Simulinkモデル内に複数のFrom Fileブロックをもつことが可能です。

rsimは信号データを生成コード内に置かないので、From Fileブロックから生じる多くのデータをもつシステムに対して、コードサイズやコンパイル時間を削減します。From Fileブロックは、時間ベクトルおよび信号がタイプdoubleのデータである必要があります。double以外のデータタイプの信号データをインポートする必要がある場合は、データを構造体として指定してFrom Workspaceブロックを使います。

ワークスペースデータは、つぎのフォーマットでなければなりません。

2つ以上の信号がある場合は、フォーマットは以下でなければなりません。

シミュレーションに対して新規の出力ファイル名を指定

Save to Workspaceオプション (Simulation ParametersダイアログボックスのWorkspace I/OページのTime, States, Outputs, Final Statesチェックボックスをチェック)を指定した場合、デフォルトは、シミュレーションのロギング結果をファイルmodel.matに保存することです。連続するシミュレーションに対して代替のファイル名を指定することができます。モデルrsimtfdemoの場合、MATLABプロンプトで

とタイプすると、シミュレーションを実行し、データは通常rsimtfdemo.matに保存されます。

つぎのようにタイプして、データロギング用の新規の出力ファイル名を指定できます。

この場合、From Fileブロックデータを含む、コード生成時に与えられるパラメータセットが実行されます。様々なrsimのフラグを組み合わせて、新規のデータ、パラメータ、出力ファイルをシミュレーションに与えることができます。ただし、From Fileブロックに対するデータを含むMAT-ファイルが必要です。これは、MAT-ファイルデータを、実行ファイルとしてコンパイル、リンクされる生成されたCコードに直接挿入するgrtの操作とは異なります。対照的に、rsimは、連続するシミュレーションの各々に新規のデータまたは代替データを与えることができます。しかし、これらのブロック(From FileまたはFrom Workspaceブロック)のいずれかがモデル内に存在する場合は、From FileまたはFrom Workspaceのデータを含むMAT-ファイルがなければなりません。

rsimシミュレーションに対するブロックパラメータの変更

Simulinkブロック線図内の1つまたは複数のパラメータを変更すると、モデル全体に対してパラメータベクトルrtPを抽出できます。rtPベクトルは、モデルのチェックサムと共に、MATLAB MAT-ファイルに保存されます。このMAT-ファイルは、スタンドアロンrsim実行ファイルから直接読み込むことが可能で、モデルパラメータや係数の調整や、入力信号として利用するための新規データのインポートを行うパラメータ値の変化の調査を実行するため、パラメータベクトル全体をすばやく置き換えることができます。

モデルチェックサムは、任意のパラメータの変更が、同じモデル構造をもつrsimモデルに対してのみ適用されることを保証するための安全性のチェックを行います。任意のブロックが削除された場合、あるいは新規ブロックが追加された場合、新規のrtP生成時に新規のチェックサムはオリジナルのチェックサムと一致しません。rsimは、パラメータベクトル内の不整合を検出し、不正なシミュレーション結果の出力を防ぐために終了します。この場合、モデル構造体が変更されたとき、モデルに対するコードを再生成する必要があります。

rsimターゲットを使って、side-effects関数を含むパラメータを含む任意のモデルパラメータ(double)を変更することが可能です。side-effects関数の例は、ダイアログボックス内につぎのパラメータエントリを含む単純なGainブロックです。

一般的に、Real-Time Workshopは、コードの生成よりも前にside-effects関数を評価します。この例題に対して生成されたコードは、メモリ位置のエントリを1つだけ保持し、パラメータaへの依存性は、生成コードでは確認されません。rsimターゲットは、パラメータ構造体rtP全体を置き換えることによって、side-effects関数のハンドリングの問題を克服します。rsimgetrtp.mを使ってこの新規構造体を作成し、MAT-ファイルに保存する必要があります。rsimtfdemoの例に対して

とMATLABプロンプトでタイプします。

代わりに、rsimはMAT-ファイルを読み込み、rtP構造体全体を必要なときに置き換えて、モデル全体を再コンパイルせずに1つまたは複数のパラメータを変更することが可能です。

たとえば、モデル内の1つまたは複数のパラメータを変更し、新規のrtPベクトルを生成し、rtPを新規のmyparamfile.matというMAT-ファイルに保存したと仮定します。同じrsimtfdemo モデルを実行し、これらの新規のパラメータ値を使うためには、つぎのようにタイプしてモデルを実行します。

pは小文字で、"パラメータファイル"を表わします。

rsimシミュレーションに対して新規の終了時間を指定

新規の終了時間が与えられない場合は、シミュレーションは、コード生成時にSolverページで指定された値に達するまで実行されます。以下のようにして新規の終了時間を指定できます。

この場合、シミュレーションは、6.0秒に達するまで実行されます。この点で、シミュレーションは終了し、前述したようなMAT-ファイルのデータロギングの規則に従って、データをロギングします。

モデルが、時間行列および信号行列の1行目に時間ベクトルを含むFrom Fileブロックを含む場合、シミュレーションの終了は、Simulation Parameters ダイアログボックスのSolverページのオリジナルの設定によって既定されるか、上記の-sオプションから既定されます。しかし、シミュレーション時間が時間行列および信号行列の時間の終了点を超える(終了時間がデータ行列の終了時間の値より大きい)場合、信号データは、前述したように終了時間値に外挿されます。

To Fileブロックに対する新規の出力ファイル名の指定

新規のシステム出力ファイル名を指定するのとほぼ同じ方法で、1つまたは複数のTo Fileブロックから保存されたデータに対する新規の出力ファイル名を与えることができます。これは、以下のように、コード生成時に、オリジナルのファイル名を新規の名前で指定することにより行います。

この場合、オリジナルモデルがデータをoriginal.matという出力ファイルに書き出すと仮定します。新規ファイル名を指定すると、rsimは強制的にファイルreplacement.matに書き出します。この手法を使って、既存のシミュレーションの実行の上書きを防ぐことが可能です。


 ラピッドシミュレーションターゲットのビルド シミュレーションの性能