簡単なモデルのシミュレーション

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

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

SineIntegral.scm

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

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

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

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

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

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

  1. リボンで設定ツールを選択します。


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

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

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

  1. リボンのシミュレーション(Simulate)ツールグループで、Runをクリックします。


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

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

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

  1. ダイアグラムで、ScopeブロックをSignalOutブロックに置き換えます。パレットブラウザで、Activate > SignalExportersフォルダをダブルクリックします。
  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. リボンで 実行(Run) を選択します。
    シミュレーション結果は、OMLコマンドウィンドウ内の"data"という名前の変数に書き出されます。OMLコマンドウィンドウがデフォルトで開かない場合は、メニューバーでビュー > OMLコマンドウィンドウを選択します。この変数は変数ブラウザにもリストアップされます。変数ブラウザが表示されない場合は、メニューバーでビュー > 変数ブラウザを選択します。
  9. OMLコマンドウィンドウに次のコマンドを入力し、行yを基準とする行xのデータに対する曲線をプロットします:
    x = data.ch{1}.data(1,:);
    y = data.ch{1}.data(2,:);
    plot(x,y);
    次のプロットが表示されます:
  10. Ctrl+Sを押します。表示された名前を付けてモデルを保存ダイアログで、ファイル名SineIntegralSignalOut_practiceと入力します。