(前頁)<<      >>(次頁)          (Up)

4章 CommonMPにおける計算制御 その1
4.4 同期/非同期制御時の 未来予測型/現状計算型 要素モデル使用の制限


 全体系の計算制御が「同期」、「非同期」の各場合に、要素モデルが「未来予想型」か「現状計算型」かで、以下の様な制限事項が発生します。

非同期計算の場合

 前に接続されている要素モデルから順に計算されるため、未来予測型/現状計算型 何れの要素モデルでも計算可能です。


同期計算の場合

 要素モデルの計算順序は、必ずしも前に接続されている要素モデルが先に計算されるとは限りません。 この為、現状計算型の要素モデルが存在すると次のような不都合が発生する場合があります。 

 例えば、未来予測型:1 → 現状計算型:2 → 現状計算型:3 → 未来予測型:4 と接続されているモデルが有り、これを 同期計算させる場合を考えます。
 たまたま、計算順序が 未来予測型:4 → 現状計算型:3 → 現状計算型:2 → 未来予測型:1 である場合に T+δt 時刻の計算を行う場合を考えます。
 未来予測型:4は 現状計算型:3の 時刻:T の情報を元に T+δt の計算を完了し、T+δt の出力を行います。   現状計算型:3は 時刻T+δtの現状計算型:2の出力が必要ですが、行状計算型:2は未だ T+δtの計算を完了していません。 このため、現状計算型:3は 計算を続行することができません。


     


 要素モデルが全て未来型であれば、上記の事態は発生しません。 全ての要素モデルが、接続の前後にかかわらず、時刻:Tの情報を取り込み、T+δt の計算結果を出力します。 次の計算では、 T+δt の情報を入力し、T+2δt を計算し結果を出力します。 

     


 現在状態計算型の要素モデルは、未来予測型の要素モデルとは違って、計算によって時刻が進行するわけでは無いので、同期計算の制御ではこのような不都合 が発生します。 したがって、同期計算の場合には現在状態計算型の要素モデルが存在していると モデルチェックの段階でエラーになります。(Ver1.2 現在)

     


 上記例では、直列に接続されている場合で説明しました。 同期の場合でも必ず前の要素モデルから計算すれば、上記の現象は発生しません。 しかしなが ら、同期計算の場合にはループ接続が可能です。ループ接続の場合には、前の要素モデルが一意に決定できません。このため、前説明の現象が必ず発生為、同期 型計算時には現在状況計算型が存在する事を許可していません。


  以上を纏めると次のようになります。(Ver1.2)

   
       計算制御方法      使用可能な要素モデルの型           
   非同期計算の場合           未来予測型/現在状況計算型 ともに計算可能         
     同期計算の場合    未来予測型のみ (Ver1.2現在)






Ver1.3 での機能修正

 CommonMP Ver1.3において上記の条件は緩和され、 同期計算のプロジェクトに、現在状況計算型要素モデルを組み込んでも エラーと判定されなくなりました。
  非同期型計算の場合を復習すると、 現在状況計算型要素モデルは、DataFusion後 内部時刻をδt 進めます。 一方、未来型計算要素モデルは計 算後内部時刻をδt 進めます。 従って、Calculate時とDataFusion時の時刻は、 現在状況型要素モデルは同じ、 未来型要素モデルは 異なっています。(4.2章参照) 
 非同期型計算の場合には、必ず要素モデル接続上流側から計算されるため、接続の下流側は、計算時に必要な情報を 上流側要素モデルからの出力を使用することができます。

          
                   CommonMP Ver1.2、Ver1.3 における 非同期計算時の計算制御。



 一方、同期型計算では、上流側に現在状況型要素モデルが存在すると、この要素モデルの出力した情報は DataFusion時には 時刻が進行していな いので、次の要素モデルは必要な時刻の情報を取得できず、系全体の計算を進行することができません。 このため、 Ver1.2では、現在状況計算型要素 モデルを 同期型計算に使用することを禁止していました。


    

                   CommonMP Ver1.2 における 非同期計算時の計算制御  (現在状況計算型要素モデル組み込み禁止)



 Ver1,3では、同期型計算の計算制御を以下の様に修正しています。 系が同期型計算の場合、 現在状況計算要素モデルは Calculate直後 に、DataFusionを行い、要素モデル内のδt 時刻を進めます。 このため、次のループでDataFusion時には、時刻が進行しており、未来 状況型と同じようにδt秒後の情報が出力されて接続下流側は必要な時刻の情報を取得することができるため、同期型計算を進行することが可能です。

     
                   CommonMP Ver1.3 における 非同期計算時の計算制御  (現在状況計算型要素モデル組み込みを許容)
 

   
 しかしながら、本計算方式は 現在状況計算型の出力時刻を強制的にδt 進めたため、正確には 計算結果とその時刻がズレています。 この様な不正確さ にも関わらず、現在j状況計算型の要素モデルを 同期型計算に組み込みたいという要求から、上記のような方式で、 CommmnMP側で強制的に 計算不 能と判断する(エラーとして計算できなくする)ことは行いません。 同期計算で、現在状況計算型要素モデルを組み込んだ場合には 上記のような矛盾を抱え ていることには留意して使用する必要があります。

 


 

(前頁)<<      >>(次頁) 

初版:2013/06/26 | 第2版:2014/03/20