本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。本実施の形態に係るシミュレータ500は、典型的には、パーソナルコンピュータなどの汎用コンピュータに実装される。
図1は、実施の形態にかかるシミュレータ500の主要なモジュール構成を示す図である。本開示では、シミュレータは、ワークの生産ラインに備えられるFA(Factory Automation)において、動的に状態が変化する、すなわち時間経過に伴い状態が変化する対象の時間シミュレーションを例示する。ここでは、シミュレーションの対象は、加熱されて状態として温度が変化するワークを例示するが、対象はこれに限定されない。
図1を参照して、シミュレータ500は、シミュレーションのためのデータを取得するデータ取得部30、対象を表すモデルを構成するためのワークモデル同定部31、最適な目標値を算出するための目標値最適化部32、GUI(Graphical User Interface)を描画するデータを生成する描画データ生成部33、および描画データに基づきディスプレイ207を駆動することによりGUIを描画(表示)させるディスプレイドライバ34を備える。なお、ディスプレイドライバ34は、シミュレータ500に専用ではなく、コンピュータに汎用的に備えられドライバを利用してもよい。
シミュレータ500は、操作量MVに従って発熱量を変化させる図示しない加熱要素(後述するヒータ3)によって加熱される対象(後述するワーク60)についての時間的特性を算出(シミュレーション)する。
より具体的には、ワークモデル同定部31は、ワーク60を加熱する実機から収集された時間の経過に従い変化する時系列の操作量(実MV)を入力とし、ワークの観測量(ワークの温度)を出力とするワークを示すワークモデルを構成する。当該ワークモデルの出力は、時間の経過に従い変化する時系列の観測量(モデルPV1)を表す。ワークモデルは、加熱によるワーク60の熱伝達特性を表す加熱伝達関数を用いて表される。ワークモデル同定部31は、ワーク60を加熱する実機から収集された時間の経過に従い変化する時系列の観測量(実MV1)を用いて、加熱伝達関数に用いられるパラメータの決定処理を実施し、パラメータを決定することによって加熱伝達関数を構成する。
目標値最適化部32は、構成されたワークモデルを用いて最適な目標値を算出する。より具体的には、目標値最適化部32は、データ取得部30から、時間的変化を示す時系列の目標値列(ワークSV(元))を用いてワークモデルの入力として第1の時間的特性(時系列の操作量MV)を算出するとともに、第1の時間的特性の入力に対するワークモデルの出力を第2の時間的特性(時系列のモデル温度(モデルPV1))として算出する(これを、算出ステップという)。なお、第1の時間的特性(操作量MV)の算出には、データ取得部30からのパラメータによって同定された関数によって表される、温度調節器の制御をモデル化したPID制御(Proportional-Integral-Differential Controller)モデルを用いた算出が適用される。PID制御モデルを用いた算出によって、ワークモデルからの出力(後述するモデルPV)を目標値に追従して変化させるための操作量MVが導出される。
目標値最適化部32は、目標値列(ワークSV(元))に対する第2の時間的特性(モデルPV1)の追従性に基づき、当該目標値を変更する。より具体的には、目標値最適化部32は、第2の時間的特性(モデルPV)の値が、目標値列(ワークSV(元))の時間の経過に従う変化に遅れなく追従して変化する追従性を、予め定められた評価関数を用いて評価する。目標値最適化部32は、追従性の評価値に基づき、目標値列を変更し、変更後の目標値列を用いて、上記の算出ステップを再実施する。例えば、目標値最適化部32は、追従性の評価値に基づき、モデルPV1がワークSV(元)に追従するような変更後の目標値列(RSワークSV)を算出し、変更後の目標値列を用いて、上記の算出ステップを再実施する。
シミュレータ500は、さらに、ユーザに対して、変更後の目標値列(RSワークSV)を手動で調整可能にする環境としてGUIを提供する。具体的には、描画データ生成部33は、変更前の目標値列(ワークSV(元))と上記の再実施おいて算出された第2の時間的特性(目標値列のRSワークSVを用いて算出された時系列の値でああるモデルPV1)とを、共通の時間軸で可視化するためのオブジェクトと、変更後の目標値列を調整するためのユーザ操作を受付ける調整オブジェクトとを含むGUIのための描画データを生成する。ディスプレイドライバ34は、描画データに基づきディスプレイ207を駆動することにより、ディスプレイ207に当該GUIを表示させる。
ユーザは、ディスプレイ207において視覚化されたオブジェクトから、共通の時間軸で表示される目標値列(ワークSV(元))と第2の時間的特性(RSワークSVを用いて算出されたモデルPV1)の偏差、すなわち追従性を視認できる。さらに、ユーザは、当該偏差から、当該偏差を小さくするような、調整量の目安を取得できる。
ユーザが、調整オブジェクトを操作して変更後の目標値列を調整した場合、目標値最適化部32は、調整後の当該目標値列を受付けて、受付けた当該調整後の目標値列を用いて上記に述べた算出するステップを再実施する。当該再実施の結果を示すGUIがディスプレイ207に表示される。当該再実施の結果を示すGUIにおいて、ユーザは、目標値列(ワークSV(元))と第2の時間的特性(RSワークSVを用いて算出されたモデルPV1)の偏差が、例えば小さくなった場合、すなわち追従性が改善されていることを視認した場合、ユーザは、調整後の目標値列の方が、調整前の目標値列(すなわち変更後の目標値列)よりも、ワーク60の加熱制御のための目標値として適していると判断できる。
図1の構成によれば、加熱時のワーク60の温度を元の目標値列(ワークSV(元))に追従して変化させるような、温度調節器7がヒータ3を制御するための目標値列(RSワークSV)を、GUIを介してユーザが手動で調整可能な環境を提供することができる。以下、この実施の形態のより具体的な応用例について説明する。
<B.シミュレーションモデルの構成>
図2は、本実施の形態に係る加熱システムの構成の一例を模式的に示す図である。図2の加熱システムは、FB(フィードバック)制御系を採用する。図2に示す加熱システムは、PID制御系を含む。本明細書において、「PID制御系」は、比例動作(Proportional Operation:P動作)を行なう比例要素、積分動作(Integral Operation:I動作)を行なう積分要素、および微分動作(Derivative Operation:D動作)を行なう微分要素のうち、少なくとも一つの要素を含む制御系を総称する用語である。すなわち、本明細書において、PID制御系は、比例要素、積分要素および微分要素のいずれをも含む制御系に加えて、一部の制御要素、例えば比例要素および積分要素のみを含む制御系(PI制御系)なども包含する概念である。
一例として、図2は、温度調節器7としては、例えば、CVD(Chemical Vapor Deposition)法により、半導体ウエハに相当するワーク60に各種の機能膜を作成するCVD装置において、CVD処理中の半導体ウエハの温度を目標温度に加熱するヒータ3の温度制御に用いられる温度調節器を、例として挙げることができる。
図2を参照して、加熱システムは、加熱炉2内でワーク60を加熱するために、温度調節器7と、SSR(Solid State Relay、ソリッドステートリレー)4と、SSR4を介して電源5から電力を供給されるヒータ3と、温度センサ62とを備える。ヒータ3は、典型的には抵抗体であり、供給される電力を熱エネルギーに変換する。温度センサ62は、ヒータ3の発熱による温度を測定する。また、図2では、シミュレーションのための入力データとして、ワーク60の温度を取得するために、ワーク60の裏面に付けられる温度センサ61が設けられる。実機の環境では温度センサ61は備えられない。温度センサ61,62は、熱電対や抵抗測温体(白金抵抗温度計)からなる。
図2のFB制御系では、温度調節器7は、ヒータ3が通電されたことによる発熱の温度が温度センサ62によって測定されて、その測定温度(観測量:Process Value;以下「PV2」とも記す。)が、シミュレーションによる取得された目標値(設定値:Setting Value;以下「SV」とも記す。)と一致するように、操作量(Manipulated Value;以下「MV」とも記す。)を出力する。すなわち、実機においては、温度調節器7は、ヒータ3の制御量PV2が目標値と一致するように操作量MVを決定する。
制御工学の分野において、「観測量」は「制御量」に何らかの誤差を含む値として定義されるが、この誤差を無視すれば、「観測量」は制御対象の「制御量」とみなすことができる。そのため、以下の説明において、「制御量」は「観測量」と読み替えてもよい。
温度調節器7は、PID制御系に係る処理を実行することで算出された操作量MVをSSR4に対して出力する。フィードバック制御系において、操作量は0〜100[%]の範囲の値をとり、SSR4は、電源5からヒータ3までの回路を操作量MVに応じたデューティー比(duty ratio)でオン/オフ制御する。例えば、操作量が50[%]であれば、予め定められた制御周期の50[%]の期間がオン(通電状態)にされ、残りの50[%]の期間がオフ(非通電状態)にされる。
このように、温度調節器7は、操作量MVを調整することで、ヒータ3の発熱量は、デューティー比に依存することになり、原理的に0〜100[%]の範囲でしか発熱量を調整できない。そのため、PID制御系において算出された操作量MVが100%を超える場合や、0%を下回る場合などには、SSR4およびヒータ3はその操作量MVに沿った動作を行なうことができない。本明細書において、このような状態(MV≧100[%]および/またはMV≦0[%])を操作量が「飽和」していると表現し、温度調節器7のPID制御においては、当該飽和を回避するような処理が実施されることで、操作量MVが飽和する事態を回避している。
本実施の形態では、温度調節器7は、ワーク60の生産ラインに備えられて、生産ラインに備えられる各機器を制御するPLC(Programmable Logic Controller)100と通信する。生産ラインの稼働時は、温度調節器7は、PLC100から目標値SVを示す指令を受信し、受信した指令に従い操作量MVを算出し、算出された操作量MVをSSR4に出力する。これにより、ヒータ3は発熱し、ヒータ3の上に載置されたワーク60はヒータ3からの伝熱によって加熱処理される。温度調節器7は、稼働時において、ヒータ3の測定温度である制御量PV2および操作量MVをPLC100に送信する。これにより、PLC100は、目標値SVに応じた制御量PV2および操作量MVを収集できる。
なお、本実施の形態では、図2の構成において、シミュレーション用のデータを取得するために、ワーク60に温度センサ61を取付けて、温度センサ61によって測定されるワーク60の測定温度である制御量PV1も取得される。これにより、シミュレータ500は、目標値SVを、制御量PV2よりも、ワーク60の温度をより正確に反映した制御量PV1を用いて導出できるので、ヒータ3の制御量PV2を用いて目標値SVを導出する場合に比べて、ワーク60のCVD処理のためのより適した目標温度を導出できる。
<C.温度調節器の構成>
図3は、図2の温度調節器7の構成を示す模式図である。図3を参照して、温度調節器7は、入力回路109と、アナログ・デジタル変換部112(以下、「A/D変換部112」とも記す。)と、表示部121と、操作部122と、通信インターフェイス124と、処理部101と、デジタル・アナログ変換部114(以下、「D/A変換部114」とも記す。)と、出力回路116とを含む。
入力回路109は、温度センサ62からの測定温度である制御量PV2を受信し、予め定められた範囲の電圧/電流信号を出力する。A/D変換部112は、入力回路109からのアナログ信号をデジタル信号へ変換し、処理部101へ出力する。
操作部122は、図2の温度調節器7の筐体の前面に設けられたボタンやスイッチなどを含み、ユーザの操作を受付け、その受付けたユーザ操作を示す情報を処理部101へ出力する。表示部121は、温度調節器7の筐体の前面に設けられたディスプレイやインジケータなどを含み、処理部101における処理の状態を示す情報をユーザへ通知する。別の局面において、操作部122および表示部121は、GUIを提示可能なタッチパネルとして提供されてもよい。
通信インターフェイス124は、外部の装置(典型的には、PLC100)との間で各種情報を遣り取りする。通信インターフェイス124は、PLC100からの情報(例えば、目標値SV)を処理部101へ出力する。
処理部101は、プロセッサ102と、メモリ104と、プログラムモジュール105とを含む。プログラムモジュール105は、例えばフラッシュメモリなどの不揮発性記憶媒体に格納される。プロセッサ102は、プログラムモジュール105のプログラムを実行することにより、制御量PV2を目標値SVに追従させるような操作量MVを算出する。
D/A変換部114は、処理部101で算出された操作量を示すデジタル信号をアナログ信号に変換し、出力回路116へ出力する。出力回路116は、D/A変換部114からのアナログ信号を制御対象(図2に示す例では、SSR4)に応じた信号に成形して出力する。例えば、操作量の0〜100[%]が0〜10[V]の電圧信号に対応する場合には、出力回路116は、この電圧範囲の信号が出力されるように調整する。あるいは、出力回路116は、操作量の値に応じたデューティー比を有するPWM(Pulse Width Modulation)信号を発生する。なお、操作量MVに応じた動作を行なう部位(図1に示す例では、SSR4)をアクチュエータとも記す。
プログラムモジュール105は、PID制御モジュール166および目標値フィルタ167を含む。目標値フィルタ167は、フィードバック制御系おける目標値特性を決定し、PID制御モジュール166は、フィードバック制御系の特性であるフィードバック特性を決定する。目標値フィルタ167は、目標値の変更に対する応答特性を改善することが目的とされている。温度調節器7では、目標値SVが変更されると、目標値フィルタ167は、制御対象を含む系全体の応答特性に適合した変化率で、目標値を現在値から変更後の値まで徐々に変化させる。これにより、目標値フィルタ167は制御部160の操作量MVの飽和を防止するように作用する。
<D.制御システムの構成>
温度調節器7を接続するPLC100を備える制御システム1の構成を説明する。図4は、本実施の形態に係る制御システム1の構成を示す模式図である。図4を参照して、制御システム1は、ネットワークNWに接続された1または複数のPLC100を含む。PLC100は、ネットワークNWを介してデータを相互に遣り取りすることができる。
PLC100は、プログラムを実行する主体である処理ユニット10と、処理ユニット10などへ電力を供給する電源ユニット12と、フィールド機器からの信号を遣り取りするIO(Input/Output)ユニット14とを含む。フィールド機器は、例えば、検出センサー6および温度調節器7のアクチュエータなどを含むが、フィールド機器の種類は、これらに限定されない。
PLC100にはサポート装置200が脱着自在に接続される。サポート装置200はPLC100で実行されるプログラム(パラメータを含む)を生成する機能、接続先のPLC100の運転状態や各種データの値などをモニタする機能などを有している。さらに、サポート装置200は、ユーザによるプログラムの生成を支援するため、エディタ機能、コンパイル機能、デバック機能、シミュレーション機能などを有し得る。
(d1:PLCのハードウェア構成)
図5は、図4のPLC100の処理ユニット10のハードウェア構成を示す模式図である。図5を参照して、処理ユニット10は、プロセッサ100と、チップセット103と、メインメモリ104と、不揮発性メモリ106と、GUIを提供し得るタッチパネル108と、USB(Universal Serial Bus)コネクタ110と、システムバスコントローラ120と、システムバスコネクタ130と、ネットワークコントローラ140と、通信コネクタ150と、フィールドネットワークコントローラ151と、フィールド通信コネクタ152とを含む。チップセット103と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
プロセッサ100およびチップセット103は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。メインメモリ104は、揮発性の記憶領域であり、処理ユニット10への電源投入後にプロセッサ100で実行されるべき各種プログラムを格納する。メインメモリ104は、プロセッサ100による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
不揮発性メモリ106は、リアルタイムOS(Operating System)、システムプログラム、各種アプリケーションプログラム(モジュール)および各種のパラメータを不揮発的に格納する。不揮発性メモリ106は、例えば、HDD(Hard disk Drive)、SSD(Solid State Drive)などを含む。
処理ユニット10は、通信インターフェイスとして、システムバスコントローラ120、ネットワークコントローラ140およびフィールドネットワークコントローラ151を有する。これらの通信インターフェイスは、出力データの送信および入力データの受信を行う。システムバスコントローラ120は、システムバスコネクタ130を介してIOユニット14と通信し、ネットワークコントローラ140は通信コネクタ150を介して他のPLCと通信し、フィールドネットワークコントローラ151は、通信コネクタ152を介して温度調節器7などのフィールド機器と通信する。USBコネクタ110は、サポート装置200と処理ユニット10とを接続するための通信インターフェイスである。典型的には、サポート装置200は、プロセッサ100で実行可能なプログラムまたは目標値SVを含むパラメータをUSBコネクタ110を介してPLC100に転送する。また、PLC100は、温度調節器7から受信する操作量MVおよび制御量PV1,PV2などを、USBコネクタ110を介してサポート装置200に転送することができる。
別の局面においては、サポート装置200は、PLC100を介さずに、温度調節器7から操作量MVおよび制御量PV1,PV2などを受信することもできる。
(d2:サポート装置のハードウェア構成)
図6は、本発明の実施の形態に係るサポート装置200のハードウェア構成の一例を示す模式図である。図6を参照して、サポート装置200は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータであってもよい。
図6を参照して、サポート装置200は、OS(Operating System)を含む各種プログラムを実行するCPU(Central Processing Unit)201と、BIOSや各種データを格納するROM(Read Only Memory)202と、CPU201でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM203と、CPU201で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)204とを含む。
サポート装置200は、さらに、ユーザからの操作を受付ける操作受付部に相当するキーボード205およびマウス206と、情報をユーザに表示するためのディスプレイ207とを含む。サポート装置200は、PLC100(処理ユニット10)などと通信するための通信インターフェイス(IF)209を含む。サポート装置200は、ディスプレイ207が、ユーザ操作を受付ける操作部と一体的に構成されたタッチパネル217として提供されてもよい。
サポート装置200で実行される各種プログラムは、CD−ROM300に格納されて流通する。このCD−ROM300に格納されたプログラムは、CD−ROM(Compact Disk-Read Only Memory)駆動装置208によって読取られ、ハードディスク(HDD)204などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。HDD204は、シミュレーションプログラム218と、シミュレーションにおいて用いられるデータ群219を格納する。データ群219は、操作量MV、制御量PV1,PV2、目標値SVなどを含み、これらデータは、時間の経過に従い変化する時系列データとして示される。
<E.目標値整形>
シミュレータ500は、ヒータ3の温度制御のための目標値SVを、ワーク60の制御量PV1を目標値列「ワークSV(元)」に精度良く追従させるような、最適化のために目標値整形(リファレンスシェイピング:RSともいう)を実施することにより整形の目標値「RSワークSV」を導出する。
図7(A)と(B)は、本実施の形態にかかるシミュレータ500による目標値整形の一例を示すグラフである。これらグラフは、実験による得られたものであり、横軸に時間(秒)および縦軸に温度(℃)をとって、温度の時間の経過に従う変化を表す。図7(A)のグラフは、生産ラインにおけるCVD処理の過程でワーク60の温度が取るべき経時的な変化を示す目標値列としての「ワークSV(元)」と、シミュレータ500により目標値整形された「RSワークSV」が示される。図7(B)では、図2の環境において、「ワークSV(元)」に基づく操作量MVに従いヒータ3を駆動した場合は「ワークPV(元)」で示される制御量PV1が取得されるのに対し、「RSワークSV」に基づく操作量MVに従いヒータ3を駆動した場合は「ワークPV(RS)」で示される制御量PV1が取得される。
図7(B)によれば、「ワークPV(元)」よりも「ワークPV(RS)」の方が、「ワークSV(元)」に対する追従性が高い、すなわち「ワークSV(元)」との偏差を速やかに小さくする。また、目標値列の整形には、ヒータ3の制御量PV2ではなくワーク60の制御量PV1を用いている。したがって、シミュレータ500の目標値整形によれば、CVD処理の過程でワーク60の温度の経時変化を「ワークSV(元)」の変化に精度良く追従させることを可能にする最適化(整形)された「RSワークSV」を取得できる。
<F.フローチャート>
図8は、本実施の形態にかかる処理の概略を示すフローチャートである。図8を参照して、シミュレータ500は、シミュレーション対象を示すモデルを構成する処理であるモデリング(ステップS1)および目標値のための調整処理(ステップS2)を実施し、調整処理によって取得された目標値列(すなわち「RSワークSV」)をPLC100に転送する。その後、実機による制御(ステップS3)が実施される。ステップS3では、実機の稼働時において、温度調節器7は、PLC100から送信される目標値列「RSワークSV」に基づく指令信号に従った操作量MVを生成しSSR4に出力し、ヒータ3の発熱量を制御する。
より具体的には、モデリング(ステップS1)では、シミュレータ500は、PLC100と通信することにより、データ取得部30によって、PLC100を介して実機の操作量MVと制御量PV1,PV2とを取得するとともに、元の目標値列を示す「ワークSV(元)」のデータを取得する(ステップS11)。取得される操作量MV、制御量PV1,PV2のデータは、PLC100が、制御周期に同期して、時系列の「ワークSV(元)」のデータを温度調節器7に出力し、温度調節器7が時系列の目標値列「ワークSV(元)」に従い生成した操作量MVの時系列データと、当該操作量MVに従いヒータ3が制御された場合に取得される時系列の制御量PV1,PV2を含む。
図13は、図8のステップS11でシミュレータ500が取得する操作量MV、制御量PV1および「ワークSV(元)」のデータの一例を示すグラフである。図13では、縦軸に時系列の操作量MVの単位(%)と制御量PV1および「ワークSV(元)」の単位(℃)が取られ、横軸に時間(秒)が取られている。シミュレータ500は、図13のグラフをディスプレイ207に表示させてもよい。
また、モデリング(ステップS1)では、シミュレータ500は、ワークモデル同定部31を用いて制御対象モデルのパラメータを同定する(ステップS12)。同定する手順は後述する。
次に、調整処理(ステップS2)では、シミュレータ500は、目標値最適化部32により、元の目標値列の「ワークSV(元)」に精度良く追従する最適化された「RSワークSV」を取得する。具体的には、目標値最適化部32は、ステップS1で取得された「ワークSV(元)」を調整処理のパラメータとして設定し(ステップS22)、ステップS12で同定されたソミュレーション対象モデルおよび「ワークSV(元)」を用いて「RSワークSV」を取得する(ステップS23)。ステップS23における目標値設計の手順は後述する。
(f1.データ取得)
シミュレータ500が、図8のステップS1で取得するデータを図9を参照して説明する。図9は、図2の構成を、データの流れと関連付けながら簡略化して示すブロック図である。
図9を参照して、稼働時は、制御周期に同期して、PLC100は元の目標値列である「ワークSV(元)」に従う指令を温度調節器7に出力する。温度調節器7は、「ワークSV(元)」の指令と温度センサ61,62からの制御量PV1,PV2とを用いて、飽和を防止するPID制御の演算を実施することにより、操作量MVを算出する。SSR4は、操作量MVのデューティー比に応じた電力をヒータ3に出力し、ヒータ3は通電により発熱する。ヒータ3の発熱によって、ヒータ3の上に載置されたワーク60は加熱される。温度センサ61および62は、それぞれ、ワーク60およびヒータ3の温度を測定し、測定温度を示す制御量PV1およびPV2を出力する。
PLC100は、温度調節器7から、時系列データである目標値列の「ワークSV(元)」と、制御周期に同期した時系列データの操作量MVおよび制御量PV1,PV2を収集し、収集された時系列データをサポート装置200に送信する。サポート装置200のシミュレータ500は、PLC100から取得されたこれら時系列データ221を、例えばHDD204にデータ群219として格納する。
(f2.シミュレーション対象モデルのパラメータ同定)
図10は、図8のステップS12のワークモデル同定部31の処理を説明する図である。図10を参照して、シミュレータ500は、ステップS11で実機から取得された操作量MV(以下、実MVともいう)と伝達関数パラメータとを用いて、例えば、以下の式1の関数f(s)で表すワーク伝達関数220に従う演算を実施して、算出値として制御量PV1を出力する(ステップS121)。
f(s)=K1/((T1・s+1)(T2・s+1)(T3・s+1))…(式1)。なお、(式1)の入力は実MVであり、T1,T2およびT3は時定数であって正の実数、K1は利得(ゲイン)であり正の実数の定数を示し、sはラプラス演算子を示す。
ワーク伝達関数220は、SSR4およびヒータ3を含むワーク60の加熱要素に対応する制御対象モデルであって、実MVの大きさに応じて制御量PV1を変化させるように作用する関数であればよく、上記の(式1)に限定されない。以下、制御対象モデルを表すワーク伝達関数220によって算出される制御量PV1を、「モデルPV1」ともいう。
シミュレータ500は、時系列の値であるモデルPV1を、実PV1を用いて予め定められた関数を用いて評価し、評価値を出力する(ステップS122)。評価値は、例えば、モデルPV1の実PV1に対する追従性を表す値である。
シミュレータ500は、ワーク伝達関数220のパラメータ(伝達関数パラメータK1,T1,T2,T3)の最適な値を、例えば山登り法に準じた方法で決定する(ステップS123)。より具体的には、シミュレータ500は、ステップS122の評価値を閾値と比較し、比較結果が、収束条件を満たすと判定すると、ワーク伝達関数220が有するパラメータの値を最適値と決定する。一方、比較結果が収束条件を満たさないと判定すると、ワーク伝達関数220を用いた処理(ステップS121)に戻り、再度、モデルPV1が算出される。シミュレータ500は、ワーク伝達関数220(式1)を用いた演算を再度実施する場合は、(式1)のパラメータK1,T1,T2,T3の少なくとも1つの値を変更して、変更後のパラメータ値を有したワーク伝達関数220によってモデルPV1を算出する(ステップS122、S123)。
このように、シミュレータ500は、時系列データである実MVについて、時間ti(i=1,2,3…n)毎に、時間tiの実PV1を用いてステップS121〜S123の処理を繰り返すことにより、ワーク伝達関数220のパラメータを算出する処理を繰り返す。シミュレータ500は、繰り返し処理において収束条件が満たされた時点において、例えば時間tnにおいて取得されたパラメータを有したワーク伝達関数220を、実PV1に対する追従性に優れたモデルPV1を導出可能な最適化されたワークモデルとして同定する。
図14は、図10のステップS12のワークモデル同定において取得されるデータの一例を示すグラフである。図14では、縦軸に実MVの単位(%)とモデルPV1および実PV1の単位(℃)が取られ、横軸に時間(秒)が取られている。図14では、実PV1のグラフと、上記に述べた山登り法による最適パラメータ探索の過程で取得されるモデルPV1のグラフと、実MVのグラフとが共通の時間軸で示される。図14のグラフによれば、モデルPV1は、実PV1に精度良く追従していることから、ステップS12において、最適なパラメータを有したワークモデルが同定できたことが示される。シミュレータ500は、描画データ生成部33およびディスプレイドライバ34を介して、図14のグラフをディスプレイ207に表示させることことができる。
シミュレータ500は、ステップS123で同定されたワーク伝達関数220をHDD204等の記憶部に格納する。
(f3.目標値の設計)
図11は、図8のステップS23の目標値最適化部32の処理を説明する図である。図11を参照して、シミュレータ500は、ステップS23では、同定後のワーク伝達関数220を用いて目標値整形を実施する。より具体的には、シミュレータ500は、ステップS22で設定された元の目標値列(すなわち「ワークSV(元)」)を入力する。シミュレータ500は、時間tiをt1、t2、t3…と変化させながら、ワークSV(元)(ti)を用いて、ステップS23の処理を時間ti毎に繰返し実施する。このような繰返し実施により、シミュレータ500は、ワークSV(元)とモデルPV1との差を小さくするような最適のRSワークSVを算出する。
シミュレータ500は、時間ti(i=1,2,3,…n)では、目標値整形処理(ステップS231)において、ステップS22からの時間tiにおける「ワークSV(元)」データを「RSワークSV」としてPID制御処理(ステップS232)へ出力する。シミュレータ500は、「RSワークSV」と後述するステップS233からのモデルPV1とを用いて飽和を回避するPID処理を実施することにより、操作量MVを算出する(ステップS232)。このように算出される操作量MVを、モデルMVとも呼ぶ。
シミュレータ500は、算出されたモデルMVを入力として、同定後のワーク伝達関数220に従う演算を実施することにより、モデルPV1を算出する(ステップS233)。シミュレータ500は、算出されたモデルPV1を予め定められた評価関数を用いて評価し、評価値を出力する(ステップS234)。予め定められた評価関数は、モデルPV1の「ワークSV(元)」に対する追従性を評価する関数である。シミュレータ500は、最適RSワークSVを決定する(ステップS235)。より具体的には、シミュレータ500は、ステップS234から出力される評価値が所定の収束条件を満たす時点で算出された時系列のモデルPV1、例えば時間tnで収束条件が満たされたとき、時間t1〜tnで算出された時系列のモデルPV1を最適化されたRSワークSVと決定する。
シミュレータ500は、最適化されたRSワークSVを決定(探索)できたとき、当該RSワークSVを出力するが、決定できないときはステップS233からのモデルPV1を、目標整形処理(ステップS231)を介して、RSワークSVとしてPID制御の処理(S232)に出力する。シミュレータ500は、最適化されたRSワークSVが決定されるまで、以降のステップS232〜S235の処理を繰返す。
シミュレータ500は、ステップS22から入力する目標値列の「ワークSV(元)」における時間tiのデータについて、収束条件が満たされるまで、ステップS231〜S235の処理を、時間t1、t2、t3…のデータについて繰り返す。これにより、シミュレータ500は、「ワークSV(元)」の時系列データに対応した時系列の最適化されたRSワークSVを取得できる。シミュレータ500は、最適化された「RSワークSV」をHDD204などの記憶部にデータ群291として格納する。
図11の処理では、PID制御の処理(ステップS232)から出力されるモデルMVから、モデルPV1の算出に同期して制御量PV2(以下、モデルPV2ともいう)を算出してもよい。より具体的には、シミュレータ500は、ヒータ3の熱伝達特性をモデル化したヒータ伝達関数を用いた演算処理(ステップS236)によって、モデルPV1の算出に同期して、ヒータ3の温度を示すモデルPV2を算出してもよい。本実施の形態では、シミュレータ500は、目標値列の「ワークSV(元)」に対応する時系列のモデルPV2を、例えばディスプレイ207にモニタ表示してもよい。
<G.シミュレータ500を適用可能な加熱システムの構成>
図12は、目標値整形を適用可能な加熱システムの構成の種類を表形式で説明する図である。図12を参照して、加熱システムの構成の種類111として、例えば、カスケード制御211、ワーク温度FB(フィードバック)制御212、ワーク温度FF(フィードフォワード)制御213およびヒータ温度FB(フィードバック)制御214を含む。各種類111に関連付けて、当該種類の加熱システムの構成を採用する実機におけるワーク60の温度センサ61とヒータ3の温度センサ62の有無と、当該加熱システムのためのシミュレータ500の条件を示す。シミュレータ500の条件は、ワーク伝達関数のモデリング1141とヒータ伝達関数のモデリング1151の要否と、RS対象1161と、最適化対象1171とを含む。RS対象1161は、シミュレータ500において整形の対象となる目標温度SVを示す。この目標温度SVは、より具体的には、ヒータ3の目標温度(図12では、ヒータSVと示す)またはワーク60の目標温度(図12では、ワークSVと示す)を示す。最適化対象1171は、目標値評価(ステップS234)において評価の対象となる制御量であって、より具体的には、目標温度SVと算出された制御量PVとの差として、モデルPV1(図12では、ワーク温度誤差と示す)またはモデルPV2(図12では、ヒータ温度誤差と示す)を示す。
本実施の形態にかかるシミュレータ500は、ヒータ伝達関数またはワーク伝達関数220を利用することにより、図12に示す全ての種類のシステム構成について、稼働時に温度センサを備えない加熱システムの部分(ワークまたはヒータ)の温度を最適化するような目標値の設計が可能である。
<H.手動による目標値の調整>
図15は、本実施の形態にかかる目標値調整のためのGUIの一例を示す図である。図15を参照して、描画データ生成部33は、図15のGUIを描画するための描画データを生成し、ディスプレイドライバ34は、描画データに基づきディスプレイ207を駆動し、ディスプレイ207に図15のGUIを表示させる。
図15のGUIは、時間的変化を示す変更前の目標値列(「ワークSV(元)」)とシミュレータ500により算出された第2の時間的特性(「モデルPV1」)とを、共通の時間軸で可視化するためのオブジェクト(グラフ280)と、目標値最適化部32によって導出される変更後の目標値列(「RSワークSV」)を調整するためのユーザ操作を受付ける調整オブジェクト(スピンボタン270またはスライドバー271)とを含む。
図15を参照して、グラフ280は、横軸に時間(秒)がとられ、横軸と直交する縦軸に温度(単位℃)および操作量(単位%)が取られる。グラフは、シミュレーションの対象であるワーク60の制御量PV1に関して取得される時間的特性として、例えば、「モデルMV」、「ワークSV(元)」、「モデルPV1」、「RSワークSV」、および「モデルPV2」のそれぞれについて、時間の経過に対応した値(温度、操作量)の変化を示す例えば折れ線グラフを含み、これらは、共通の時間軸で示される。
上記の可視化するためのオブジェクトであるグラフ280では、少なくとも、目標値列(「ワークSV(元)」)と、第2の時間的特性(「モデルPV1」)と、変更後の目標値(「RSワークSV」)が、共通の時間軸で可視化されることで、ユーザに対して、「ワークSV(元)」に対する「モデルPV1」の偏差の大きさ、すなわち追従性を視覚的に把握するための情報を提供できる。また、「RSワークSV」の時間の経過に伴う値の変化が視覚的に提示されることで、ユーザに対して、追従性が低下している時間帯に該当する「RSワークSV」の値を特定するための情報を提示することができる。
スピンボタン270は、変更後の目標値列(「RSワークSV」)を増減するためのユーザ操作を受付ける第1のオブジェクトに対応する。スピンボタン270は、時間軸に関連付けて当該時間軸が延びる方向と並行に配置された複数のボタンを含む。各ボタンは、時間軸における当該ボタンの最寄りの目盛りが示す時間に対応する目標値(目標値列「RSワークSV」における値)を増減するユーザ操作を受付ける。GUIは、さらに、各ボタンが操作されると、当該ボタンの最寄りの目盛りが示す時間に対応する目標値を描画するオブジェクトを含んでも良い。
また、調整オブジェクトは、スピンボタン270に代えて、またはスピンボタン270とともに、数値を入力するためのユーザ操作を受付ける数値入力のダイアログなどの第2のオブジェクトを含んでもよい。
また、スピンボタン270の各ボタンは、目標値列(「RSワークSV」)の値の予め定められた上限値から下限値の範囲において当該目標値を増減させるユーザ操作を受付けることができるように、GUIは、ボタンに関連して上限値と下限値を表示するとともに、現在値を描画するダイアログボックスのオブジェクトを含んでもよい。これにより、ユーザに対して目標値を調整可能な範囲を視覚的に提示することができる。
また、スピンボタン270の各ボタンは、目標値列(「RSワークSV」)の値を予め定められた量で増減させるユーザ操作を受付けるように構成されてもよい。
他の局面において、ユーザは、グラフ280における目標値列(「RSワークSV」)の数値調整のために、スライドバー271のスライダー273を操作してもよい。スライドバー271は、スライダー273と、スライダー273がスライド移動可能な領域であるスライダーバー272とを含む。ユーザは、グラフ280の目標値列(「RSワークSV」)のある時間に対応する数値を指定して、スライダー273を、スライダーバー272上を移動させると、移動量に応じて当該数値を調整(変更)できる。GUIは、スライダー273に関連して、目標値列(「RSワークSV」)の現在値、または調整後の値を描画するダイアログボックスのオブジェクトを含んでもよい。また、ユーザは、スピンボタン270の操作とスライダー273の操作とを組み合わせて、グラフの値を調整することもできる。
シミュレータ500は、調整オブジェクト(スピンボタン270またはスライダー273)を介して、変更後の目標値列(「RSワークSV」)の値を調整するためのユーザ操作を受付けたとき、調整後の当該目標値列を用いて、目標値最適化部32により処理を再実施する。
より具体的には、シミュレータ500は、調整オブジェクトの出力に基づき、GUIによってグラフの数値調整のためのスピンボタン270のユーザ操作の受付が完了した(例えば、エンターキーが操作された)ことを検知すると、シミュレーションを再度実行する。シミュレーションの再度の実行では、シミュレータ500は、スピンボタン270(またはスライダー273)に対するユーザ操作を受付け、目標値最適化部32は受付けられた操作内容に基づき、当該時間に対応する「RSワークSV」における値を調整し、調整後の「RSワークSV」の時系列の目標値列SVを、データ取得部30に出力する。
データ取得部30はGUIを介して調整後の「RSワークSV」の値である時系列の目標値列SVを受付ける。目標値最適化部32は、図11で述べた処理手順に従い、調整後の時系列の目標値列SVを用いて処理を実行し、描画データ生成部33は、再度実行されたシミュレーションの結果を描画する描画データを生成し、ディスプレイドライバ34は、描画データに基づきディスプレイ207を駆動する。ディスプレイ207は、調整後の列SVを用いたシミュレーション実行結果のグラフ280を含むGUI(図15)を表示する。
これにより、シミュレータ500は、ユーザに対し、ユーザによる調整後の目標値列SVを用いたシミュレーション(目標値最適化部32)によって取得された目標値列の「RSワークSV」を含むグラフ280を有したGUIを提示することができる。ユーザは、モデルPV1が「ワークSV(元)」に精度よく追従させるように、再度「RSワークSV」を調整した場合は、シミュレータ500は、ユーザによる調整後の目標値列SVを用いたシミュレーション(目標値最適化部32)を実行する。このようなシミュレーションの繰り返しにより、算出される目標値列「RSワークSV」を、ユーザの調整によって、より最適化することができる。
(h1.評価値の提示)
実施の形態では、モデルPV1の「ワークSV(元)」に対する追従性は、ステップS234(図11)において、予め定められた評価関数を用いて評価されており、GUIは、当該評価関数によって算出された評価値を可視化するためのオブジェクトを含むように構成されてもよい。
図16は、本実施の形態にかかる評価関数が出力する評価値291の表示の一例を示す図である。シミュレータ500は、評価値291を、目標値列「RSワークSV」の調整においてユーザを支援するための情報として提示することができる。より具体的には、シミュレータ500は、評価関数の評価値291をHDD204に格納する。シミュレーション結果のグラフ280が表示される場合、シミュレータ500は、描画データ生成部33を介して、評価値291を表すオブジェクトを表示する。図16では、評価関数の評価値291が可視化されて提示されることで、ユーザに対して、グラフ280が示すモデルPV1が目標値列「ワークSV(元)」に、どの程度追従しているかを示す追従性を定量的に提供できる。ユーザは、評価値291から、「RSワークSV」の調整を行うか否かを判断するための基準を得ることができる。
(h2.シミュレーション時間の調整)
他の局面において、シミュレーションは予め定められたインターバル毎に開始されて、ユーザは、シミュレータ500に与える目標値列「RSワークSV」を、インターバル毎に調整することができる。
図17、図18、図19および図20は、本実施の形態にかかる目標値調整のためのGUIの他の例を示す図である。図17を参照して、描画データ生成部33によって生成された描画データに基づき、ディスプレイ207に、シミュレーション結果を表すグラフ280と、期間292と、調整用データ290とを表示するオブジェクトを有したGUIが表示される。期間292は、ユーザ操作により設定可能な値であって、目標値調整の対象となる期間の開始と終了(例えば、開始は0秒、終了は5400秒)の時間を示す。調整用データ290は、ユーザ操作により設定可能なデータである。具体的には、調整用データ290は、期間292における予め定められたインターバル(例えば、600秒)に従う複数のシミュレーションの開始時間293と、各開始時間293のそれぞれに対応付けて「RSワークSV」の目標値294を含む。
シミュレータ500は、図17のGUIを介して受付けたユーザ操作内容に基づく調整用データ290を目標値最適化部32に出力する。目標値最適化部32は、調整用データ290が示す各開始時間tjに対応の調整後「RSワークSV」294と、HDD204に格納されている時間tjに対応した実MVおよび実PV1とをデータ取得部30に出力する。シミュレータ500は、データ取得部30によって取得されたデータを用いて、目標値最適化部32によるシミュレーションを再度実行する。
より具体的には、目標値最適化部32は、時間tj毎に、当該時間tjに対応の調整後「RSワークSV」294、実MVおよび実PV1を用いて、時間tj毎の調整後の「RSワークSV」を算出する。描画データ生成部33は、インターバル毎のシミュレーションの結果に基づく描画データを生成し、ディスプレイ207は描画データに基づくGUIを表示する。表示されるGUIでは、シミュレーションの結果は、インターバルに対応した時間tj毎の値を直線で繋いだ折れ線グラフとして表示される。
図17の調整用データ290は、インターバルとして600秒(開始時間293は0秒、600秒、1200秒…、5400秒)が示されるが、インターバルは600秒に限定されない。
図18では、期間292は0秒〜9600秒を示し、開始時間293によって示されるインターバルは600秒(開始時間293は0秒、600秒、1200秒…、9600秒)のケースにおいて、開始時間293の例えば4200秒に対応の「RSワークSV」294を、ユーザ操作によって166.0から212.1に調整(変更)されている。
この場合、調整後の「RSワークSV」294を用いたシミュレーションは開始時間293が示すインターバルで実行されて、その実行結果が、図19のグラフ280によって表示される。図19のグラフ280は、図18のグラフ280の場合に比べて、モデルPV1の「ワークSV(元)」に対する追従性が改善されていることが示される。ユーザは、図19のグラフ280から、図19の調整後の「RSワークSV」294を実機の加熱システムを制御するための目標値の候補として決定することができる。
図18と図19では、ユーザは1個の開始時間293(例えば4200秒)に対応する「RSワークSV」294を調整したが、図20に示すように、複数個の開始時間293(例えば7800秒、8400秒、9000秒および9600秒)のそれぞれに対応する「RSワークSV」294を調整することもできる。調整によって、7800秒、8400秒、9000秒および9600秒に対応する「RSワークSV」294の値は、全て300.0に変更されている。
図17〜図20に示される調整後「RSワークSV」294で示される目標値を用いたシミュレーションは、シミュレータ500は、インターバルで指定される時間tj毎に図11の処理を実施する。したがって、ユーザは、シミュレーションを実施する時間を、調整用データ290を介して設定するインターバルの長さで調整(変更)することができる。したがって、調整用データ290は、目標値最適化部32がステップS234(図11)においてモデルPV1の「ワークSV(元)」に対する追従性を評価する期間を、グラフ280の時間軸が示す経過時間(すなわち開始時間293)において指定するためのユーザ操作を受付けるオブジェクトとしても機能する。
<I.シミュレータ500の実現例>
シミュレータ500を実現するシミュレーションプログラム218は、不揮発的にプログラムを格納するHDD204に格納されて、CPU201は、HDD204に格納されたシミュレーションプログラム218を実行することで、シミュレータ500を実現する。シミュレーションプログラム218は、HDD204に限定されず、RAM203またはCD−ROM300など他の各種の記録媒体に格納されてもよい。これら記憶媒体は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。CPU201は、シミュレーションプログラム218を実行する際は、これら記録媒体に記憶された対象となるプログラムをRAM203に展開する。そして、CPU201は、RAM203に展開された当該プログラムを解釈および実行して、各構成要素を制御する。
実施の形態では、シミュレータ500は、シミュレーションプログラム218が実行されることにより提供される構成を例示したが、これらの提供される構成の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、サポート装置200の主要部を、汎用的なアーキテクチャに従うハードウェアを用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
この実施の形態では、サポート装置200を、シミュレーションを実施する主体であるシミュレータ500としているが、シミュレーションを実施する主体はサポート装置200に限定されない。例えば、シミュレータ500は、PLC100または温度調節器7に実装されてもよいし、さらに別の主体である、例えば、ネットワーク上のクラウドサーバに実装して、GUIは、クラウドサーバと通信するサポート装置200に実装されるブラウザを介してユーザに提供されてもよい。
<J.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
操作量(MV)に従って発熱量を変化させる加熱要素(3)によって加熱される対象(60)の時間的特性をコンピュータ(20)がシミュレーションする方法であって、
前記操作量(MV)を入力とし、前記対象の観測量(PV1)を出力とする前記対象を示す対象モデル(220)を構成するステップと、
時系列の目標値列(ワークRS(元))を用いて前記対象モデルの入力(MV)として第1の時間的特性を算出するとともに、前記第1の時間的特性の入力に対する前記対象モデルの出力(PV1)を第2の時間的特性として算出するステップ(S232、S233)と、
前記目標値列に対する前記第2の時間的特性の追従性に基づき、当該目標値列を変更するステップ(S231、S235)と、
変更後の目標値列を用いて、前記算出するステップを再実施するステップと、
変更前の目標値列と前記再実施するステップにおいて算出された前記第2の時間的特性とを、共通の時間軸で可視化するためのオブジェクト(280)と、変更後の目標値列を調整するためのユーザ操作を受付ける調整オブジェクト(270、271)とを含むGUIを出力するステップを含む、シミュレーション方法。
[構成2]
前記可視化するためのオブジェクトは、変更前の目標値列と、前記再実施するステップにおいて算出された前記第2の時間的特性と、変更後の目標値列を、前記共通の時間軸で可視化するためのオブジェクトを含む、構成1に記載のシミュレーション方法。
[構成3]
前記可視化するためのオブジェクトは、前記共通の時間軸に経過時間を割当て、当該時間軸に直交する軸に前記目標値、前記操作量および前記観測量を割当てた座標において、前記目標値列のグラフと、前記第1の時間的特性を示すグラフと、前記第2の時間的特性を示すグラフとを含む、構成1または2に記載のシミュレーション方法。
[構成4]
前記追従性を、予め定められた評価関数を用いて評価するステップ(S234)を、さらに備え、
前記GUIは、さらに、前記評価関数によって算出された評価値(291)を可視化するためのオブジェクトを含む、構成1から3のいずれか1に記載のシミュレーション方法。
[構成5]
前記GUIは、さらに、シミュレーションにおいて前記追従性を評価する期間を、前記時間軸が示す経過時間において指定するためのユーザ操作を受付けるオブジェクト(292)を含む、構成4に記載のシミュレーション方法。
[構成6]
前記調整オブジェクトを介して、変更後の目標値列を調整するためのユーザ操作を受付けたとき、調整後の当該目標値列を用いて、前記算出するステップを再実施するステップを、さらに備える、構成1から5のいずれか1に記載にシミュレーション方法。
[構成7]
前記調整オブジェクトは、
前記変更後の目標値を増減するためのユーザ操作を受付ける第1のオブジェクト(270、271)、または、数値を入力するためのユーザ操作を受付ける第2のオブジェクトを含む、構成1から6のいずれか1に記載のシミュレーション方法。
[構成8]
前記第1のオブジェクトは、前記共通の時間軸に関連付けて当該時間軸が延びる方向と並行に配置された複数のボタンを含み、
各ボタンは、前記時間軸における当該ボタンの最寄りの目盛りが示す時間に対応する前記目標値列における目標値を増減するユーザ操作を受付ける、構成7に記載のシミュレーション方法。
[構成9]
前記各ボタンは、前記目標値の上限値から下限値の範囲において当該目標値を増減させるユーザ操作を受付ける、構成8に記載のシミュレーション方法。
[構成10]
前記各ボタンは、前記目標値を予め定められた量で増減させるユーザ操作を受付ける、構成8または9に記載のシミュレーション方法。
[構成11]
前記GUIは、さらに、前記各ボタンが操作されると、当該ボタンの前記最寄りの目盛りが示す時間に対応する前記目標値を描画するオブジェクトを含む、構成8から10のいずれか1に記載のシミュレーション方法。
[構成12]
コンピュータ(200)により実行されると、構成1から11のいずれか1に記載のシミュレーション方法を実現するためのシミュレーションプログラム(218)。
[構成13]
構成1から11のいずれか1に記載のシミュレーション方法を実行するためのシミュレータ(500)。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。