簡単なモデルのシミュレーション
Tutorial Level: Beginner SineIntegral.scmモデルのシミュレーションを実行してその結果を確認する方法を学習します。
このチュートリアルのファイル
SineIntegral.scm
ブロックパラメーターの設定
SineWaveGeneratorブロックのパラメーターを設定します。
- チュートリアル単純なブロックダイアグラムの作成で作成したモデルSineIntegral_practice.scmを読み込むか、Demoブラウザのツリーからtutorial_models/SineIntegral.scmを選択します。
-
次の図でハイライト表示されているSineWaveGeneratorブロックをダブルクリックするか、右クリックしてコンテキストメニューからパラメーターを選択します。
-
位相(rad)(Phase(rad),)にpi/2と入力して、をクリックします。
この入力値によって正弦波が4分の1周期だけシフトし、余弦波になります。
シミュレーションパラメーターの設定
解析用のシミュレーション時間パラメーターを定義します。
-
リボンで設定ツールを選択します。
- シミュレーションパラメーターダイアログが表示されたらシミュレーション時間タブを選択します。
-
最終時間(Final Time)パラメーターに、正弦波周期の2倍の値である4*piを入力します。
- ソルバータブを選択します。
-
ソルバーの選択プルダウンメニューからLSODAを選択してOKをクリックします。
LSODAソルバーは効率的な可変ステップ、可変次数のODEソルバーで、スティフな問題にもスティフでない問題にも適しています。
モデルのシミュレーションとデータのプロット
Scopeプロットを使用し、シミュレーションを実行してその進行状況を確認します。
-
リボンのシミュレーション(Simulate)ツールグループで、Runをクリックします。
シミュレーションはすぐに終了し、スコープウィンドウにシミュレーション結果のプロットが表示されます。スコープウィンドウが表示されない場合は、ダイアグラムのScopeブロックをダブルクリックしてウィンドウを表示します。 -
Y軸の上限と下限が、正弦波の振幅の上下限である1と-1を大きく超えています。スコープウィンドウをプロットデータにフィッティングするには、マウスの中央ボタンをクリックします。
-
プロジェクトブラウザのツリーのScopes & Plotsの下にある SineIntegral/Scopeをダブルクリックするか、またはSineIntegral/Scopeを右クリックしてコンテキストメニューから表示(Show)を選択します。
スコープウィンドウが表示されます。
- スコープウィンドウを閉じるには、右クリックして閉じる(Close)を選択します。
-
もう一度ウィンドウを開く操作を試します。ProjectブラウザのツリーのScopes & Plotsの下にあるSineIntegral/Scopeをダブルクリックするか、またはSineIntegral/Scopeを右クリックしてコンテキストメニューから表示(Show)を選択します。
スコープウィンドウが表示されます。
- 右クリックして閉じる(Close)を選択します。
OMLワークスペースへの信号のエクスポート
OMLワークスペースにエクスポートしたデータを操作します。
- ダイアグラムで、ScopeブロックをSignalOutブロックに置き換えます。パレットブラウザで、 フォルダをダブルクリックします。
-
ダイアグラムの隣にあるSignalOutブロックを選択してドラッグ&ドロップします。このブロックはダイアグラムにリンクしないようにします。
- SignalOutブロックを選択してCtrl+ Xを押します。
-
Scopeブロックを選択してCtrl+Vを押します。
Scopeブロックが消去されてSignalOutブロックに置き換えられます。
-
SignalOutブロックをダブルクリックします。
ブロックダイアログが開いて、パラメーター(Parameters)タブが表示されます。
-
次の図に示すように、入力数(Number of inputs)はデフォルト値の1のままにして、変数名(Variable name)に“data”と入力します。外部アクティベーション(External Activation)チェックボックスがオンになっている場合はオフにします。
-
OKをクリックします。
ダイアグラムのSignalOutブロックが更新されます。新しい変数名が表示され、ブロック上部の赤いアクティベーションポートが削除されます。これで、このブロックはアクティベーションを継承します。すなわち、着信信号があればSignalOutブロックがアクティブになります。
-
リボンで 実行(Run)
を選択します。
シミュレーション結果は、OMLコマンドウィンドウ内の"data"
という名前の変数に書き出されます。OMLコマンドウィンドウがデフォルトで開かない場合は、メニューバーで を選択します。この変数は変数ブラウザにもリストアップされます。変数ブラウザが表示されない場合は、メニューバーで を選択します。 -
OMLコマンドウィンドウに次のコマンドを入力し、行
y
を基準とする行x
のデータに対する曲線をプロットします:
次のプロットが表示されます:x = data.ch{1}.data(1,:); y = data.ch{1}.data(2,:); plot(x,y);
- Ctrl+Sを押します。表示された名前を付けてモデルを保存ダイアログで、ファイル名にSineIntegralSignalOut_practiceと入力します。