チュートリアル:ハイブリッドモデルのシミュレーション

離散信号と連続線形システムを含む簡単なハイブリッドモデルをモデル化してシミュレーションを行う方法を学習します。

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

HybridSystem.scm

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

概要

このチュートリアルのモデルでは、連続時間線形システムの入力として与えられる矩形波信号を生成するためのDiscreteDelayブロックを含んでいます。この連続時間線形システムは、ContTransFuncブロックを用いて伝達関数として表現できます。Scopeブロックは、このシステムの出力をプロットします。

係数が定数である線形微分方程式は、この方程式の両辺にラプラス変換を適用することにより、ラプラス領域で表現できます。この操作では、独立変数sによって微分演算が乗算に変換されるので、微分方程式は代数方程式に変換されます。この微分方程式が時間領域におけるシステムの入出力特性を表現している場合は、ラプラス領域に得られた方程式を使用してシステムの伝達関数を求めることができます。例えば、次の線形微分方程式を考えます。
この式から次の伝達関数が得られます。
ContTransFuncブロックは、単一入力で単一出力のシステムまたは単一入力で複数出力のシステムの伝達関数を表現できます。ブロックパラメーターには、この伝達関数の分母と分子の係数が記述されています。この伝達関数の特別なケースは、
などの積分器であり、これはIntegralブロックで表現できます。時間が離散的な場合は、微分方程式にZ変換を適用することで伝達関数を得ることができます。特殊なケースの単位遅延演算子は、DiscreteDelayブロックで表現できます。このブロックは、アクティべーションの周期とフェーズを修正するSampleClockブロックで定期的にアクティブ化することが普通です。離散時間信号はアクティべーションの際に更新され、次回のアクティベーションまで一定の状態を維持します。

離散信号の構築

DiscreteDelayブロックを使用して離散信号を構築します。

  1. ribbonからをクリックするか、メニューバーからファイル#menucascade-separator新規モデルをクリックします。
  2. モデルをHybridSystem_practice.scmという名前で保存します。
  3. Palette Browserで、以下のブロックをダイアグラムにドラッグ&ドロップします:
    • Activate#menucascade-separatorDynamicalから、DiscreteDelayブロックを2つダイアグラムにドラッグします。
    • Activate#menucascade-separatorActiveOperationsからSampleClockブロックをダイアグラムにドラッグします。
  4. ダイアグラムにあるブロックを次の図のように組み立てて接続します:
  5. SampleClockブロックをダブルクリックします。ブロックダイアログでサンプル周期(Sample period)に1/20000と入力して、OKをクリックします。
  6. DiscreteDelayブロックをダブルクリックします。ブロックダイアログで初期条件(Initial condition)に1と入力して、OKをクリックします。

    離散信号が次の図のように構築されます。この信号は、10000Hzの周波数で0と1が切り替わる矩形波信号を生成します。

連続伝達関数の作成

ContTransFuncブロックを使用して連続線形システムを表現します。

  1. パレットブラウザで、Activate#menucascade-separatorDynamicalをダブルクリックしてContTransFuncブロックをダイアグラムにドラッグします。
  2. ContTransFuncブロックをダブルクリックします。ブロックダイアログで、 分子多項式の係数(Coefficients of the numerator polynomial)1を入力します。分母多項式の係数(Coefficients of the denominator polynomial)[0.2 1]と入力して、OKをクリックします。
    ContTransFuncブロックは、単純化された車両の動的挙動をモデル化する1次線形システムを表します。
  3. ブロックを次の図のようにダイアグラムに接続します:
  4. パレットブラウザで、Activate#menucascade-separatorSignalViewersをダブルクリックして、Scopeブロックをダイアグラムにドラッグします。
  5. Scopeブロックをダブルクリックします。入力数(Number of inputs)に2と入力します。
    2つの入力ポートがScopeブロックに表示されます。
  6. Scopeブロックを次の図のようにダイアグラムに接続します:

ハイブリッドモデルのシミュレーション

シミュレーションパラメーターを設定して、シミュレーションを実行します。

  1. リボン上で、シミュレートツールグループにカーソルを合わせて、設定ツールをクリックします。
  2. シミュレーションパラメータダイアログで最終時間(Final Time)に2と入力して、OKをクリックします。
  3. リボンのシミュレートツールグループでRunをクリックします。
    ダイアグラムのシミュレーションが開始されます。

シミュレーションデータの確認

Scopeブロックで生成されたプロットのデータを調べます。

  1. Scopeブロックをダブルクリックします。
    スコープウィンドウが表示されます。Scopeブロックは2つの入力で定義されているため、それぞれ矩形波信号とシステム応答に対応する2つのサブプロットが表示されます。矩形波の周波数は10,000Hzであるため、0秒と2秒の間の時間間隔内に非常に多くの周期が存在します。したがって、狭い範囲を拡大して確認する必要があります。
  2. 矩形波形の表示をさらに明瞭化するには、上部サブプロットのX軸を右クリックしてフローティングパネルを開きます。
  3. 上限値として、0.001と入力します。
  4. 上部サブプロットのY軸を右クリックします。フローティングパネルで、下限値として-2と入力し、上限値として2と入力します。
  5. プロットのビューをウィンドウにフィットさせるには、下部サブプロットでマウスの中央ボタンをクリックします。
  6. プロットの任意の領域にズームインするには、Ctrlキーを押しながらマウスの中央ボタンをクリックしてドラッグし、プロット上の任意のフレーム領域を選択します。
    フレームの領域が、次の図のように下部プロットに表示されます:
  7. 曲線上の特定のデータポイントを表示するには、Ctrlキーを押しながらカーソルを曲線に合わせます。
    カーソルに最も近いデータポイントが表示されます。
  8. モデルを保存します。