4章 CommonMPにおける計算制御 その1
4.1 要素モデルの種別と派生関係
3章で要素モデル「MyDynamicWaveModel」を制作した時 親クラスを 未来型要素モデル親クラス(McForecastModelBase)から派生させました。
ところで、3章で作成したDLLの元となった プロジェクト「MyModel」の中には、「モデル型紙」というフォルダーが有り、この中に3種類の 要素モデルの型紙が準備されています。
ここで、型紙の親クラスについて 整理してみます。
セル型要素モデルから派生して 未来予測型要素モデル親クラス「McForecastModelBase」、現状計算型要素モデル親クラス「McStateCalModelBase」が
存在します。 第3章で作成した要素モデル「MyDynamicWaveModel」は 未来予測型「McForcastModelBase」から派生しましたが、何故 未来予測型から派生させたかは説明していませんでした。
実はこの2つの要素モデルは 演算の意味に大きな考え方の相違があります。
@未来予測型(McForecastModelBase)
現在時刻(T)の値から δt
後の状態を計算する要素モデル
y[T+δt] = f(
x[T] )
A現状計算型(McStatecalModelBase)
現在時刻(T)のある値から、 現在の別な側面(状態)を計算する要素モデル
z[T] = g(
x[T] )
具体的例で説明すると
未来予測型は 時刻:Tの加速度、速度から、 時刻:T+δt 後の 速度、位置を算出するモデルです。
一方、現状計算型は、時刻:Tの速度から その時刻:T
の運動エネルギーを算出するモデルです。
CommonMPの要素モデルとして 2つのモデル間でどのような違いがあるのかを調べてみます。
CommonMPをダウンロードした時に一緒にダウンロードされてくるプロジェクト「TutorialSampleModel」内に 「MyForecastModel」と「MyStateCalModel」があるので、この2つのモデルを利用してその動作を調べます。
プロジェクト「TutorialSampleModel」を CommonMPディバッグ環境で動作させる方法は 3.2章で示しました。
ここで、モデルの各メソッドがどのように呼ばれるかをトレースする為にログを設定します。 次に、下に示すように要素モデルを接続し、計算時間を2分として 計算を開始し、その時に得られたログを解析します。(ログが出力されるように HymcoModelDebug.cfg
ファイル内にクラス名は設定しておきます)
2分間の計算ログ(ModelDebugLog.txt)は下記の通りです。
s2013/06/23 22:00:00
<MyForecastModel[E210-15422-2362013]::Initialize> s2013/06/23 22:00:00 <MyForecastModel[E210-15422-2362013]::DataFusion> s2013/06/23 22:00:00 <MyStateCalModel[E412-15422-2362013]::Initialize> s2013/06/23 22:00:00 <MyForecastModel[E210-15422-2362013]::ReadyCalculation> s2013/06/23 22:00:00 <MyStateCalModel[E412-15422-2362013]::ReadyCalculation> s2013/06/23 22:00:00 <MyForecastModel[E210-15422-2362013]::Calculate> s2013/06/23 22:01:00 <MyForecastModel[E210-15422-2362013]::DataFusion> s2013/06/23 22:00:00 <MyStateCalModel[E412-15422-2362013]::Calculate> s2013/06/23 22:00:00 <MyStateCalModel[E412-15422-2362013]::DataFusion> s2013/06/23 22:01:00 <MyStateCalModel[E412-15422-2362013]::Calculate> s2013/06/23 22:01:00 <MyStateCalModel[E412-15422-2362013]::DataFusion> s2013/06/23 22:02:00 <MyStateCalModel[E412-15422-2362013]::Calculate> s2013/06/23 22:02:00 <MyStateCalModel[E412-15422-2362013]::DataFusion> s2013/06/23 22:01:00 <MyForecastModel[E210-15422-2362013]::Calculate> s2013/06/23 22:02:00 <MyForecastModel[E210-15422-2362013]::DataFusion> s2013/06/23 22:02:00 <MyForecastModel[E210-15422-2362013]::CompleteCalculation> s2013/06/23 22:03:00 <MyStateCalModel[E412-15422-2362013]::CompleteCalculation> |
ここで作成したテスト用のCommonMP計算プロジェクト(Ex08_CommonMP.lzh)
解凍して生成された、「MyExerciseStep1」フォルダーを \CommonMP\CommonMPData\ 下に置きます。
初版:2013/06/26 |