WOLFRAM

コンポーネントVSブロック

ブロックベースの回路コンポーネントベースの回路

ブロックベースのモデリングは因果関係が明確に定義された問題,つまりに流れの方向に適している.信号ベースの系のこのような種類の例に,制御系がある.しかし,多くの場合,因果関係は前もっては定義されていない.例えば,入力信号が電流であるかトルクであるかによって,モータは発電機として使うこともできる.もう一つの基本的な例であるAC回路を下に示す.

1.gif

AC回路モデルの回路図の下書き

この例では,上記回路を使って,モデリングにおけるブロックベースのアプローチとコンポーネントベースのアプローチの違いを述べる.

このチュートリアルに使用されているモデル
ElectricCircuit | BlockCircuit | ElectricCircuit2

ブロックベースの回路

ブロックベースモデルを作成することから始める.実際にモデルを実装し始める前に,以下のことを行わなければならない.

この例では,駆動電圧の異なる周波数に応じた正弦波電圧源を流れる電流を調べる.これを計算するには,次の3つの方程式がある:

これらの方程式において, iは正弦波電圧源を通る全電流,i1i2はそれぞれresistor1resistor2を流れる電流である.上の方程式が導関数を含まないように書き直す:

これらの方程式を使って,以下のようにブロックベースのモデルを実装する.

7.gif

IntroductoryExamples.ComponentBased.BlockCircuitモデルのダイアグラムビュー

新しいモデルを作成し,クラスブラウザでコンポーネントを探す.ブロックベースのアプローチを使った系の実装に必要なコンポーネントはすべて以下のパッケージに含まれている:

コンポーネントベースの回路

最初の下絵の系のコンポーネントベースモデルは,コンポーネントをドラッグアンドドロップして繋げ,パラメータを設定するだけで実装できる.完成したモデルは最初の下絵と同じようなものとなる.

10.gif

IntroductoryExamples.ComponentBased.ElectricCircuitモデルのダイアグラムビュー

モデルを自分で構築したい場合は,正弦波電圧コンポーネントはModelica.Electrical.Analog.Sourcesパッケージに,その他のコンポーネントはModelica.Electrical.Analog.Basicパッケージにある.パラメータ値の中にはデフォルト値とは異なるものがあるので,同じシミュレーション結果を得るためには,その値を変更する必要もある.

Now you can simulate and plot the current sineVoltage1.i, and as expected it looks just like the result plotted from the block model.

sineVoltage1.iのシミュレーションを行って結果をプロットする.当然のことながら,結果のプロットはブロックモデルのものと同じになる.

11.gif

IntroductoryExamples.ComponentBased.ElectricCircuit モデルにおいて,デフォルトパラメータ値で正弦電圧源を流れる電流をプロットする.

最後に,下に示すように,モデルに2つ目のコンデンサを加える.コンデンサコンポーネントは Modelica.Electrical.Analog.Basic パッケージに含まれている.

12.gif

IntroductoryExamples.ComponentBased.ElectricCircuit2モデルのダイアグラムビュー

シミュレーションを行い,結果の電流を比較する.

13.gif

ElectricCircuitモデルとElectricCircuit2モデルの正弦波電圧源を流れる2つの電流の比較

練習問題

2つ目の回路のブロックベースのモデルを作成する.