チュートリアル:簡単なモデルのシミュレーション

SineIntegral.scmモデルのシミュレーションを実行してその結果を確認する方法を学習します。

このチュートリアルのファイル

SineIntegral.scm

チュートリアルで構築するモデルの完成版と、チュートリアルを完了するために必要なすべてのファイルは、次の場所にあります:<installation_directory>/tutorial_models/

ブロックパラメーターの設定

SineWaveGeneratorブロックのパラメーターを設定します。

  1. チュートリアルチュートリアル:単純なブロックダイアグラムの作成で作成したモデルSineIntegral_practice.scmを読み込むか、Demo Browserのツリーからtutorial_models/SineIntegral.scmを選択します。
  2. 次の図でハイライト表示されているSineWaveGeneratorブロックをダブルクリックするか、右クリックしてコンテキストメニューからパラメーターを選択します。
  3. 位相(rad)(Phase(rad),)にpi/2と入力して、をクリックします。
    この入力値によって正弦波が4分の1周期だけシフトし、余弦波になります。

シミュレーションパラメーターの設定

解析用のシミュレーション時間パラメーターを定義します。

  1. リボン上で、シミュレートツールグループにカーソルを合わせて、設定ツールをクリックします。
  2. シミュレーションパラメーターダイアログが表示されたら、シミュレーション時間(Simulation Time)タブを選択します。
  3. 最終時間(Final Time)パラメーターに、正弦波周期の2倍の値である4*piを入力します。
  4. ソルバータブを選択します。
  5. ソルバーの選択プルダウンメニューからLSODAを選択してOKをクリックします。
    LSODAソルバーは効率的な可変ステップ、可変次数のODEソルバーで、スティフな問題にもスティフでない問題にも適しています。

モデルのシミュレーションとデータのプロット

Scopeプロットを使用し、シミュレーションを実行してその進行状況を確認します。

  1. リボンのシミュレートツールグループでRunをクリックします。
    シミュレーションはすぐに終了し、スコープウィンドウにシミュレーション結果のプロットが表示されます。スコープウィンドウが表示されない場合は、ダイアグラムのScopeブロックをダブルクリックしてウィンドウを表示します。
  2. Y軸の上限と下限が、正弦波の振幅の上下限である1と-1を大きく超えています。スコープウィンドウをプロットデータにフィッティングするには、マウスの中央ボタンをクリックします。
  3. プロジェクトブラウザのツリーのScopes & Plotsの下にあるSineIntegral/Scopeをダブルクリックするか、またはSineIntegral/Scopeを右クリックしてコンテキストメニューから表示を選択します。
    スコープウィンドウが表示されます。
  4. スコープウィンドウを閉じるには、右クリックして閉じるを選択します。
  5. もう一度ウィンドウを開く操作を試します。Project BrowserのツリーのScopes & Plotsの下にあるSineIntegral/Scopeをダブルクリックするか、またはSineIntegral/Scopeを右クリックしてコンテキストメニューから表示を選択します。
    スコープウィンドウが表示されます。
  6. 右クリックして閉じるを選択します。

OMLワークスペースへの信号のエクスポート

OMLワークスペースにエクスポートしたデータを操作します。

  1. ダイアグラムで、ScopeブロックをSignalOutブロックに置き換えます。パレットブラウザで、Activate#menucascade-separatorSignalExportersフォルダをダブルクリックします。
  2. ダイアグラムの隣にあるSignalOutブロックを選択してドラッグ&ドロップします。このブロックはダイアグラムにリンクしないようにします。
  3. SignalOutブロックを選択してCtrl+ Xを押します。
  4. Scopeブロックを選択してCtrl+Vを押します。
    Scopeブロックが消去されてSignalOutブロックに置き換えられます。
  5. SignalOutブロックをダブルクリックします。
    ブロックダイアログが開いて、パラメーター(Parameters)タブが表示されます。
  6. 次の図に示すように、入力数(Number of inputs)はデフォルト値の1のままにして、変数名(Variable name)に“data”と入力します。外部アクティベーション(External Activation)チェックボックスがオンになっている場合はオフにします。
  7. OKをクリックします。
    ダイアグラムのSignalOutブロックが更新されます。新しい変数名が表示され、ブロック上部の赤いアクティベーションポートが削除されます。これで、このブロックはアクティベーションを継承します。すなわち、着信信号があればSignalOutブロックがアクティブになります。
  8. リボンで実行を選択します。
    シミュレーション結果は、OMLコマンドウィンドウ内の"data"という名前の変数に書き出されます。OMLコマンドウィンドウがデフォルトで開かない場合は、メニューバーでビュー#menucascade-separatorOMLコマンドウィンドウを選択します。この変数は変数ブラウザにもリストアップされます。変数ブラウザが表示されない場合は、メニューバーでビュー#menucascade-separator変数ブラウザを選択します。
  9. OMLコマンドウィンドウに次のコマンドを入力し、行yを基準とする行xのデータに対する曲線をプロットします:
    x = data.ch{1}.data(1,:);
    y = data.ch{1}.data(2,:);
    plot(x,y);
    次のプロットが表示されます:
  10. Ctrl+Sを押します。表示された名前を付けてモデルを保存ダイアログで、ファイル名SineIntegralSignalOut_practiceと入力します。