【文献】
神余 浩夫、外1名,"協調分散制御システムアーキテクチャ:CODAの概念モデル",「計測自動制御学会論文 第27巻・第4号」,日本,社団法人計測自動制御学会,1991年 4月30日,第27巻,第4号,p.458-465
(58)【調査した分野】(Int.Cl.,DB名)
前記演算割り当て手段は、1つの前記プロセッサに対して、同一または類似のデータ種別の数理モデルが割り当てられるように、前記数理モデルの割り当てを行う請求項1に記載のプラントシミュレータ。
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、シミュレーション速度についての更なる高速化の要請(例えば、現実の挙動に対して10倍速)があり、この要請を満足するようなシミュレータの開発が必要とされている。しかしながら、機器単位で数理モデルを各プロセッサに割り当てる従来の方法では、各プロセッサに割り当てられる演算負荷にばらつきが生じてしまうことから、並列処理を効率的に進行させることができず、時間的なロスの発生により、上記の要請を満足するような高速化が望めないという問題があった。例えば、各プロセッサの演算負荷にばらつきが生じてしまうと、処理を終える時間がプロセッサ間でばらつくため、早く処理を終了したプロセッサは、他のプロセッサの処理が終了するまで待たなければならず、無駄な待ち時間が生じていた。
また、シミュレーション速度は、各プロセッサに対して機器単位の数理モデルを割り当てることで各プロセッサの処理を平準化するには限界があるため、他のプロセッサの処理の終了までの無駄な待ち時間を十分には解消できず、シミュレーション速度の高速化を実現するには、各プロセッサの数量を更に増加させて並列処理数を増加することで対処するなど、シミュレータのコスト増加の要因となっていた。
【0005】
本発明は、このような事情に鑑みてなされたものであって、シミュレーション速度の更なる高速化を図ることの可能なプラント運転シミュレータ及びその方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1態様は、複数のプロセッサがシミュレーション演算を並列して行うことにより、発電プラントの挙動を模擬するプラントシミュレータであって、プラントの挙動を演算するための複数の数理モデルがデータ種別と関連付けられて格納されている数理モデル格納手段と、前記データ種別毎に前記数理モデルを前記プロセッサに割り当てる演算割り当て手段とを備え、
前記データ種別の一つは、非線形モデルであり、前記演算割り当て手段は、予め設定されている演算負荷以上の前記数理モデルを抽出し、抽出した前記数理モデルのうち、演算負荷の大きい順に前記数理モデルを優先的に割り当てるとともに、各前記プロセッサの演算負荷が略均等となるように、前記数理モデルの割り当てを行
い、前記演算割り当て手段は、非線形モデルの前記数理モデルを前記プロセッサに割り当てる非線形演算割り当て手段を有し、前記非線形演算割り当て手段は、非線形モデルの前記数理モデルの中から、予め設定されている演算負荷以上の前記数理モデルを抽出し、抽出した前記数理モデルのうち、演算負荷の大きい順に所定数の前記数理モデルを抽出し、抽出した各前記数理モデルを個別の前記プロセッサにそれぞれ割り当てるステップと、非線形モデルの前記数理モデルが割り当てられた前記プロセッサを含む、シミュレーション演算を実行する各前記プロセッサの演算負荷が略均等となるように、他の非線形モデルの数理モデルを割り当てるステップとを実行するプラントシミュレータである。
【0007】
本態様によれば、数理モデル格納手段には、プラントの挙動を表す複数の数理モデルがデータ種別と関連付けられて分類されて格納されており、各プロセッサの演算負荷が略均等となるように、演算割り当て手段によって、数理モデルがデータ種別毎に複数のプロセッサにそれぞれ割り当てられる。これにより、各プロセッサの使用率、換言すると、各プロセッサの演算時間を略均一にすることができ、シミュレータ速度を向上させることが可能となる。
更に、本態様によれば、従来に行われていた機器毎ではなく、データ種別毎に処理内容を分割した数理モデルの割り当てを行うので、演算の特殊性に応じた割り当てを行うことが可能となる。また、予め設定されている演算負荷以上の数理モデルを抽出し、抽出した数理モデルのうち、演算負荷の大きい順に数理モデルを優先的にプロセッサに割り当てるので、各プロセッサの演算負荷が略均等となるような数理モデルの割り当てを比較的容易に行うことが可能となり、必要以上にプロセッサの数量を増加する必要性を解消することが可能となる。
また、本態様によれば、非線形モデルの数理モデルは、線形モデルの数理モデルに比べて演算負荷が高く、処理時間も長くなるが、演算負荷の大きい数理モデルを優先的にプロセッサに割り当てるので、各プロセッサの演算負荷が略均等となるような数理モデルの割り当てを比較的容易に行うことが可能となる。
【0008】
上記プラントシミュレータにおいて、前記演算割り当て手段は、1つの前記プロセッサに対して、同一または類似のデータ種別の数理モデルが割り当てられるように、前記数理モデルの割り当てを行うこととしてもよい。
【0009】
上記構成によれば、同一または類似のデータ種別の数理モデルを一つのプロセッサに割り当てることにより、同じような処理を繰り返し行わせることが可能となる。これにより、演算速度の向上が期待できる。
【0012】
上記プラントシミュレータにおいて、前記演算割り当て手段は、演算行列の大きさに基づいて演算負荷を判断することとしてもよい。
【0013】
演算行列の大きさが同じであれば、演算時間もほぼ同じであるとみなすことができるため、演算行列の大きさを演算負荷の大きさの指標として利用することで、容易にかつ効率的に、数理モデルの割り当てを行うことが可能となる。
【0014】
上記プラントシミュレータにおいて、前記演算割り当て手段は、線形モデルのうち、蒸気系統の圧力計算の数理モデルを
前記非線形演算割り当て手段によって抽出された前記非線形モデルの数理モデルが割り当てられていない、いずれかの前記プロセッサに割り当てる圧力演算割り当て手段を備えていてもよい。
【0015】
蒸気系統の圧力計算は、線形モデルの数理モデルの中で、重要な位置を占めており、また、演算負荷の比較的大きいことから、他の線形モデルに比べて演算時間も長くなる。したがって、このような蒸気系統の圧力計算の数理モデルについては、
非線形演算割り当て手段によって抽出された非線形モデルの演算を行わない、いずれかのプロセッサに優先的に割り当てることにより、演算負担を分散させることが可能となる。
【0016】
上記プラントシミュレータにおいて、前記演算割り当て手段は、線形モデルのうち、燃焼系統の体積計算の数理モデルを、
前記非線形演算割り当て手段によって抽出された前記非線形モデルの数理モデルも前記蒸気系統の圧力計算の数理モデルも割り当てられていない、いずれかの前記プロセッサに割り当てる体積演算割り当て手段を備えていてもよい。
【0017】
燃焼系統の体積計算(例えば、燃焼空気、排ガス、及び燃料ガス等の体積計算)は、線形モデルの数理モデルの中で、重要な位置を占めており、また、演算負荷も比較的大きいことから、他の線形モデルに比べて演算時間も長くなる。したがって、このような燃焼系統の体積計算の数理モデルについては、
非線形演算割り当て手段によって抽出された非線形モデルの演算も、蒸気系統の圧力計算の演算も行わないプロセッサに優先的に割り当てることにより、演算負担を分散させることが可能となる。
【0018】
上記プラントシミュレータにおいて、前記演算割り当て手段は
、線形モデルのうち、配管に関する伝熱計算の数理モデル、弁に関する伝熱計算の数理モデル、及びポンプファンに関する伝熱計算の数理モデルをそれぞれ異なる前記プロセッサに分散させて割り当てる伝熱計算割り当て手段を備えていてもよい。
【0019】
線形モデルの一つとして電熱計算がある。電熱計算は、機器毎に行うことが必要となるが、配管、弁、ポンプファンについては、特に数が多いことから、演算負荷が大きく、処理時間も比較的長くなる。したがって、配管に関する伝熱計算の数理モデル、弁に関する伝熱計算の数理モデル、及びポンプファンに関する伝熱計算の数理モデルについては、それぞれ異なるプロセッサに分散して優先的に割り当てることにより、プロセッサの演算負担を分散させることが可能となる。
【0020】
本発明の第2態様は、複数のプロセッサがシミュレーション演算を並列して行うことにより、発電プラントの挙動を模擬するプラントシミュレータに適用される演算割り当て方法であって、前記プラントシミュレータは、前記発電プラントの挙動を演算するための複数の数理モデルがデータ種別と関連付けられて格納されている数理モデル格納手段を有し、コンピュータが、前記データ種別毎に前記数理モデルを前記プロセッサに割り当てる演算割り当てステップを実行し、
前記データ種別の一つは、非線形モデルであり、前記演算割り当てステップでは、予め設定されている演算負荷以上の前記数理モデルを抽出し、抽出した前記数理モデルのうち、演算負荷の大きい順に前記数理モデルを優先的に割り当てるとともに、各前記プロセッサの演算負荷が略均等となるように、前記数理モデルの割り当てを行
い、前記演算割り当てステップは、非線形モデルの前記数理モデルを前記プロセッサに割り当てる非線形演算割り当てステップを有し、前記非線形演算割り当てステップは、非線形モデルの前記数理モデルの中から、予め設定されている演算負荷以上の前記数理モデルを抽出し、抽出した前記数理モデルのうち、演算負荷の大きい順に所定数の前記数理モデルを抽出し、抽出した各前記数理モデルを個別の前記プロセッサにそれぞれ割り当てるステップと、非線形モデルの前記数理モデルが割り当てられた前記プロセッサを含む、シミュレーション演算を実行する各前記プロセッサの演算負荷が略均等となるように、他の非線形モデルの数理モデルを割り当てるステップとを有するプラントシミュレータの演算割り当て方法である。
【発明の効果】
【0021】
本発明によれば、シミュレーション速度の更なる高速化を図ることができるという効果を奏する。
【発明を実施するための形態】
【0023】
以下に、本発明の一実施形態に係るプラントシミュレータ及びプラントシミュレータの演算割り当て方法について、図面を参照して説明する。本発明におけるプラントシミュレータは、例えば、火力発電プラント、原子力発電プラント等の発電プラントの挙動を模擬するものであり、例えば、運転訓練に用いられる運転訓練シミュレータである。本発明のプラントシミュレータ及びプラントシミュレータの演算割り当て方法は、発電プラントのシミュレーションに広く適用可能であるが、特に、主な構成としてボイラ、タービン、復水器を備え、流量、温度、圧力の状態量を要素とする発電プラントのシミュレーションに適用されて好適なものである。以下の実施形態においては、説明の便宜上、火力発電プラントのシミュレーションを行う場合を例示して説明するが、本発明のプラントシミュレータにより挙動が模擬される対象は、火力発電プラントに限定されない。
【0024】
図1は、火力発電プラントの模擬系統図の一例を示した図である。
図1に示すように、プラントモデル模擬系統図には、プラントの挙動を模擬するのに必要とされる各種構成が、実際の火力発電プラントにおける関係に基づいてブロック線図で結ばれ、蒸気系統、冷却水系統、燃料系統などが形成されている。
図1において、ボイラ51で発生した蒸気は、高圧タービン52に供給される。高圧タービン52で仕事をした蒸気は、再熱器53に送られて加熱された後、中圧タービン54及び低圧タービン55に供給されて仕事を行う。低圧タービン55で仕事をした蒸気は復水器56において冷却されて復水61とされる。この復水61は、脱気器57に送られ不純物が除去された後、給水62としてボイラ51に再び戻される。
【0025】
また、再熱器53、高圧タービン52の付近では高圧蒸気が一部取り出され、補助蒸気66として利用される。また、高圧タービン52、中圧タービン54及び低圧タービン55の回転動力が発電機58に伝達されることにより、発電機58が発電する。中圧タービン54における蒸気の一部は、蒸気駆動の給水ポンプ59に供給され、給水ポンプ59の駆動に用いられる。
【0026】
また、給水62の一部及び復水61の一部は、ヒータドレン60を介して復水器56から脱気器57の間に、復水として再び戻される。更に、
図1には、燃料系統の要素として、燃料空気63、排ガス64、燃料65が、冷却水系統の要素として補給水67、海水68、バキューム69、軸冷水70、及び軸受油71等が示されている。
【0027】
図2は、本実施形態に係るプラントシミュレータのハードウェア構成を示した図である。
図2に示すように、プラントシミュレータは、いわゆるコンピュータであり、ホストバス18には、8個のCPU(プロセッサ)11a〜11hと、各プログラム実行時のワーク領域として機能するメインメモリ12とが接続されている。一方、ホストバス18にI/Oブリッジ13を介して接続されるI/Oバス19には、CPU11a〜11hが実行する各種プログラム等が格納されたハードディスクドライブ(以下「HDD」という。)14、操作者(例えば、訓練生)によって操作されることにより入力指令が入力される入力部15、及びシミュレーション結果等を表示する表示部16が接続されている。
【0028】
8個のCPU11a〜11hは、1つのプロセッサ・パッケージ内に複数のプロセッサコアが搭載されたマルチコア・シングルプロセッサとして実現されてもよく、また、1つのプロセッサ・パッケージ内に1つのプロセッサコアが搭載されたシングルコアを複数備えるシングルコア・マルチプロセッサにより実現されてもよい。また、マルチコアのプロセッサを複数有する、マルチコア・マルチプロセッサとして実現されてもよい。なお、
図2では、8個のCPU11a〜11hを有している場合について例示しているが、CPUの個数については限定されない。また、CPUの個数については、必要以上に処理能力を向上させるために、必要な処理に対して個数の余裕を持ち過ぎずに、むしろ最少個数で構成されるほうがコスト低減に好ましい。
【0029】
図3は、本実施形態に係るプラントシミュレータの機能ブロック図である。
図3に示すように、プラントシミュレータは、シミュレーションに関する演算を実行する8個のシミュレーション実行部21a〜21hと、プラントの挙動を演算するための複数の数理モデルが格納されている数理モデル格納部25と、各シミュレーション実行部21a〜21hに数理モデルを割り当てる演算割り当て部30とを備えている。
【0030】
シミュレーション実行部21a〜21hの各々は、CPU11a〜11hの各々に1対1対応している。すなわち、本実施形態においては、8個のCPU11a〜11hがそれぞれシミュレーション実行部21a〜21hとして機能し、これらが並行処理を行うことによりシミュレーション演算が進行する。
【0031】
数理モデル格納部25には、プラントの挙動を演算するための複数の数理モデルがそのデータ種別に関連付けられて格納されている。データ種別には、例えば、非線形モデルか否か、演算される状態量の情報(圧力、体積、温度等)が含まれる。
【0032】
演算割り当て部30は、シミュレーション実行部21a〜21hのそれぞれの演算負荷が略均等となるように、数理モデルの割り当てを行う。ここで、「略均等」とは、各シミュレーション実行部21a〜21hに割り当てられた演算負荷の平均値からの差分が所定の許容範囲内とされることを意味する。演算割り当て部30は、更に、シミュレーション実行部21a〜21hの各々に割り当てられる数理モデルのデータ種別が、なるべく同一または類似するように数理モデルの割り当てを行う。
【0033】
演算割り当て部30は、例えば、非線形モデルの数理モデルの割り当てを行う第1演算割り当て部31(非線形演算割り当て手段)、線形モデルのうち、伝熱計算以外の数理モデル(例えば、圧力、体積等)の割り当てを行う第2演算割り当て部32(圧力演算割り当て手段、体積演算割り当て手段)、及び線形モデルのうち、伝熱計算の数理モデルの割り当てを行う第3演算割り当て部33(伝熱計算割り当て手段)を備えている。
【0034】
第1演算割り当て部31は、例えば、非線形モデルの数理モデルのうち、演算負荷が予め設定されている演算負荷閾値以上の数理モデルを抽出し、抽出した数理モデルの中から演算負荷の大きい順に所定数の数理モデルを抽出し、抽出した各数理モデルをそれぞれ異なるシミュレーション実行部21a〜21hに割り当てる。例えば、所定数が「4つ」に設定されていた場合、第1演算割り当て部31は、演算負荷の大きい順に4つの数理モデルを抽出し、それぞれの数理モデルを4つのシミュレーション実行部、例えば、シミュレーション実行部21a、21b、21e、21fにそれぞれ割り当てる。なお、演算負荷が演算負荷閾値以上である数理モデルが「所定数」未満である場合、例えば、「所定数」が「4つ」で、演算負荷が演算負荷閾値以上である数理モデルが「2つ」であった場合には、これら2つの数理モデルを2つのシミュレーション実行部にそれぞれ割り当てる。
【0035】
そして、非線形モデルにおける残りの数理モデルについては、既に非線形モデルの数理モデルが割り当てられているシミュレーション実行部21a、21b、21e、21fを含む、シミュレーション実行部21a〜21hに対して、それぞれの演算負荷が略均等になるように、割り当てを行う。ここで、それぞれの演算負荷が略均等になるということは、各シミュレーション実行部21a〜21hの各演算処理時間の上限と下限が、各演算処理時間から算出した平均演算処理時間に対して±10%以内、更に好ましくは±5%以内にある状態を示している。
【0036】
「演算負荷」は、演算行列の大きさに基づいて判断することが可能である。すなわち、数理モデルは、ヤコビアン行列等の行列によって表されるので、この行列の大きさ(列行の数)に応じて、上位から所定数(例えば、4つ)選択すればよい。行列のサイズが同じであれば、演算時間もほぼ同じであるとみなすことができるため、行列サイズに基づいて数理モデルを割り当てることにより、容易にかつ効率的に数理モデルの割り当てを行うことができる。また、この場合、演算負荷閾値も、行列のサイズを用いて設定されることとなる。また、「演算負荷閾値」及び「所定数」は、プログラム上で動的に設定できるように実装されていてもよいし、プラントの規模やシミュレーションに応じて予め設定されていてもよい。または、操作者が適宜入力できるような構成とされていてもよい。このように、「演算負荷閾値」、「所定数」の設定については方法を問わない。
【0037】
第2演算割り当て部32は、線形モデルであって、伝熱計算以外の数理モデルの中から、蒸気系統の圧力計算の数理モデルと、燃焼系統の体積計算の数理モデル(例えば、燃焼空気、排ガス、及び燃焼ガスの体積計算の数理モデル)とを抽出し、これらを
第1演算割り当て部31によって抽出された上記非線形モデルの数理モデルが割り当てられていないシミュレーション実行部、例えば、シミュレーション実行部21g、21hにそれぞれ割り当てる。続いて、第2演算割り当て部32は、残りの数理モデルを各シミュレーション実行部21a〜21hの演算負荷が略均等になるように割り当てる。
【0038】
第2演算割り当て部32が優先的に割り当てを行う蒸気系統の圧力計算及び燃焼系統の体積計算は、発電プラントの挙動を把握する上で重要な位置を占めており、また、演算負荷も比較的大きいことから、他の線形モデルの数理モデルに比べて演算時間も長くなる。したがって、蒸気系統の圧力計算及び燃焼系統の体積計算に関する数理モデルについては、
第1演算割り当て部31によって抽出された非線形モデルの演算を行わないいずれかのシミュレーション実行部に対してそれぞれ個別に割り当てることにより、演算負担を効率的に分散させることが可能となる。また、これらのシミュレーション実行部においては、同じような演算を繰り返し行うことになるため、演算処理速度の向上を期待することができる。
【0039】
第3演算割り当て部33は、線形モデルであって、電熱計算に関する数理モデルの中から、配管に関する伝熱計算、弁に関する伝熱計算、ポンプファンに関する伝熱計算を抽出し、これらをそれぞれ個別のシミュレーション実行部に優先的に割り当てる。このとき、各伝熱計算のボリュームによっては、
第1演算割り当て部31によって抽出された非線形モデルの数理モデルが割り当てられたシミュレーション実行部、すなわち、シミュレーション実行部21a、21b、21e、21fに割り当てることとしてもよい。続いて、残りの伝熱計算に関する数理モデルを、各シミュレーション実行部の演算負荷が略均等になるように割り当てる。
【0040】
伝熱計算のうち、上記配管、弁、ポンプファンについては設置数が多く、演算が煩雑になる。このため、演算負荷が比較的大きくなり、演算時間も長くなる。したがって、配管、弁、ポンプファンの伝熱計算の数理モデルについては、優先的に割り当てを行うとともに、それぞれ異なるシミュレーション実行部に割り当てることにより、演算負担を効率的に分散させることが可能となる。
【0041】
次に、本実施形態に係るプラントシミュレータにより実行される処理について
図4を参照して説明する。
まず、シミュレーションの開始時において、所定のCPU(例えば、CPU11a)が、HDD14に格納されているメインプログラムをメインメモリ12に読み出して実行することにより、CPU11a〜11hが並列処理を正常に実行できるようにするための準備処理を行う。例えば、CPU11aは、CPU11a〜11hを、上述したシミュレーション実行部21a〜21hとして機能させるためのプログラムを各CPU11a〜11hに割り付けるとともに、分割演算用のスレッドを各CPU11a〜11hに割り付ける(ステップSA1)。続いて、CPU11aは、割り付けたスレッド及びプログラムに対して計算開始イベントを発行する(ステップSA2)。これにより、各CPU11a〜11hがシミュレーション実行部21a〜21hとして機能するための準備が完了する。
【0042】
次に、CPU11aは、HDD14に格納されている各種プログラムを実行することにより、上記演算割り当て部30の第1演算割り当て部31、第2演算割り当て部32、第3演算割り当て部33として機能する。
具体的には、まず、数理モデル格納部25に格納されている非線形モデルの数理モデルの中から演算負荷の大きい順、例えば、ヤコビアン行列のサイズが大きい順に、4つの数理モデルを抽出し、抽出した各数理モデルを個別のシミュレーション実行部にそれぞれ割り当てる(第1演算割り当て部:ステップSA3)。これにより、例えば、最も演算量の大きい数理モデルがシミュレーション実行部21aに、2番目に演算量の大きい数理モデルがシミュレーション実行部21bに、3番目に演算量の大きい数理モデルがシミュレーション実行部21eに、4番目に演算量の大きい数理モデルがシミュレーション実行部21fにそれぞれ割り当てられる。
【0043】
次に、CPU11aは、数理モデル格納部25に格納されている残りの非線形モデルの数理モデルを、シミュレーション実行部21a〜21hの演算負荷が略均等となるようにそれぞれ割り当てる(第1演算割り当て部:ステップSA4)。
【0044】
次に、CPU11aは、数理モデル格納部25に格納されている線形モデルのうち、蒸気系統の圧力計算に関する数理モデル及び燃焼系統の体積計算に関する数理モデルを抽出し、抽出した数理モデルを個別のシミュレーション実行部にそれぞれ割り当てる。このとき、ステップSA3にて、比較的大きな演算負荷の非線形モデルの数理モデルが割り当てられたシミュレーション実行部21a、21b、21e、21fとは別のシミュレーション実行部21c、21d、21g、21hへ割り当てるようにする(第2演算割り当て部:ステップSA5)。これにより、例えば、蒸気系統の圧力計算の数理モデルがシミュレーション実行部21gに、燃焼系統の体積計算の数理モデルがシミュレーション実行部21hに割り当てられる。続いて、CPU11aは、シミュレーション実行部21a〜21hの演算負担が略均等となるように、残りの数理モデルの割り当てを行う(第2演算割り当て部:ステップSA6)。
【0045】
次に、CPU11aは、数理モデル格納部21に格納されている線形モデルのうち、配管に関する伝熱計算、弁に関する伝熱計算、ポンプファンに関する伝熱計算をそれぞれ個別のシミュレーション実行部に割り当てる(第3演算割り当て部:ステップSA7)。これにより、例えば、配管に関する伝熱計算の数理モデルがシミュレーション実行部21gに、弁に関する伝熱計算の数理モデルがシミュレーション実行部21aに、ポンプファンに関する伝熱計算の数理モデルがシミュレーション実行部21bにそれぞれ割り当てる。続いて、CPU11aは、残りの伝熱計算の数理モデル(例えば、ドラム、脱気器における伝熱計算等)を各シミュレーション実行部21a〜21hの演算負荷が略均等となるように割り当てる(第3演算割り当て部:ステップSA8)。
【0046】
このようにして、数理モデル格納部25に格納されている全ての数理モデルについて割り当てが完了すると、各シミュレーション実行部21a〜21hによる数理モデルの演算が並列的に行われる(ステップSA9)。そして、各シミュレーション実行部21a〜21hは、自身に割り当てられた全ての数理モデルの演算が終了すると、その旨をCPU11aに通知する。
CPU11aは、全てのCPU11a〜11hから演算完了の通知を受信すると(ステップSA10)、ステップSA2に戻り、各CPU11a〜11h(シミュレーション実行部21a〜21h)に対して計算開始イベントを発行し、次の演算周期(スレッド)による処理を開始させる。
【0047】
図5は、上記処理を実行することにより各CPU11a〜11hに割り当てられた数理モデルと各機器との関係の一例を模式的に示した図である。
図5のボイラ51、再熱器53等からわかるように、1つの機器であっても演算種別に応じて複数のCPUに演算が割り当てられていることがわかる。また、例えば、再熱器53、中圧タービン54、低圧タービン55についての蒸気系統の圧力計算は、CPU11gに割り当てられている。このように、蒸気の一連の流れに関する演算を1つのCPU11gに担当させることにより、演算処理の効率化を図ることが可能となる。また特に、中圧タービン54に関しては、蒸気の供給元が1つであるのに対し、供給先が低圧タービン55と給水ポンプ59とに分かれており、演算が複雑化する。したがって、煩雑な演算については、1つのCPUに集中して実行させることにより、演算の更なる高速化を図ることが期待できる。
【0048】
以上説明してきたように、本実施形態に係るプラントシミュレータ及びプラントシミュレータの演算割り当て方法によれば、以下の効果を奏する。
数理モデル格納部25に格納されている各種数理モデルが、データ種別単位で各CPU11a〜11h(シミュレーション実行部21a〜21h)に割り当てられるので、例えば、発電プラントを構成する複数の機器間で同じデータ種別に属する演算内容同士を併合して1つのプロセッサに割り当てることが可能となる。
【0049】
数理モデルの割り当ては、各CPU11a〜11hの演算負荷が略均等となるように行われるので、各CPU11a〜11hの演算時間を略均等にすることができ、シミュレータ速度を向上させることが可能となる。ここでいう演算負荷が略均等になるということは、各シミュレーション実行部の各演算処理時間の上限と下限が、各演算処理時間から算出した平均演算処理時間に対して±10%以内、更に好ましくは±5%以内にある状態を示している。また、演算負荷の大きい数理モデルを優先的にプロセッサに割り当てるので、各プロセッサの演算負荷が略均等となるような数理モデルの割り当てを比較的容易に行うことが可能となる。
【0050】
演算割り当て部30による数理モデルの割り当ては、プラントモデルの演算開始時、すなわち、シミュレーション開始時に行われるため、その時々の発電プラントの運転状態に応じて割り当てをダイナミックに変化させることが可能となる。このように、発電プラントの運転状態が変化した場合であっても、この変化に追従してCPU11a〜11hの演算負荷が均等となるように数理モデルを割り当てることにより、発電プラントの運転状態に依存してシミュレーション速度が著しく低下する等の現象を回避することが可能となり、安定したシミュレーション速度を保つことが可能となる。
【0051】
なお、本実施形態においては、演算割り当て部30として機能するCPU11aについても、他のCPU11b〜11hと同様に、数理モデルを割り当て、シミュレーション実行部21aとして機能させていたが、CPU11aはOSから使用されることも多く、他のCPU11b〜11hと比べてシミュレーションの演算以外の処理を実行するのに利用されることが多い。このことから、例えば、メインプログラムを実行したり、数理モデルの割り当てを行ったりするCPU(上記の例ではCPU11a)については、OS等の動きなどを阻害しないように、シミュレーション実行部として機能することを排除するフラグを設けることとしてもよい。これにより、フラグが立っている場合には、シミュレーション実行部として機能することを禁止することができるため、OSの動きが阻害されるなどの不都合を回避することが可能となる。
【0052】
また、上述した実施形態では、
図4を用いて説明したように、第1演算割り当て部31〜第3演算割り当て部33が順番に処理を行う場合について説明したが、第1演算割り当て部31〜第3演算割り当て部33のそれぞれが並列に処理を実行することとしてもよい。このように、並列処理を行うことで、割り当て時間を短縮することが可能となる。
【0053】
本発明は、上述の実施形態のみに限定されるものではなく、発明の要旨を逸脱しない範囲において、例えば、上述した各実施形態を部分的または全体的に組み合わせる等して、種々変形実施が可能である。