(57)【特許請求の範囲】
【請求項１】
制御対象の操作量を制御対象の実温度と目標温度との偏差に基づく比例，積分及び微分動作で更新し、偏差の減少に応じて比例及び微分動作を停止させて積分動作で操作量を更新し、実温度が目標温度に収束したときの操作量を初期温度毎に学習し、学習後に積分及び微分動作を停止させ比例動作で操作量を更新し、温度制御の起動時に、そのときの初期温度での学習結果に応じた起動出力値にまで操作量をステップ的に変化させる、温度制御装置。
【請求項２】
温度制御の起動時に、偏差の絶対値が閾値よりも小さくなってから前記操作量の更新を開始する、請求項１記載の温度制御装置。
【請求項３】
偏差に対する操作量の制御ゲインを偏差の絶対値に応じて変更する、請求項１又は２記載の温度制御装置。
【請求項４】
温度制御の起動時に、目標温度に収束したときの操作量よりも低い起動出力値にまで操作量をステップ的に変化させる、請求項１〜３のいずれか１つに記載の温度制御装置。
【請求項５】
温度制御の起動時に、目標温度に収束したときの操作量よりも高い第１起動出力値にまで操作量をステップ的に変化させた後、偏差の絶対値が閾値よりも小さくなると、目標温度に収束したときの操作量よりも低い第２起動出力値にまで操作量をステップ的に変化させる、請求項１〜３のいずれか１つに記載の温度制御装置。
【請求項６】
制御対象の実温度が目標温度に収束したときの操作量又は当該操作量に基づき設定した起動出力値を初期温度毎に更新記憶し、温度制御の起動時に、記憶値を参照してそのときの初期温度での起動出力値を求める、請求項１〜５のいずれか１つに記載の温度制御装置。
【請求項７】
温度制御の起動時に、そのときの初期温度に対応する学習を行っていない場合、そのときの初期温度とは異なる初期温度に対応する学習結果に応じた前記起動出力値にまで操作量をステップ的に変化させる、請求項１〜６のいずれか１つに記載の温度制御装置。
【請求項８】
制御対象の操作量を制御対象の実温度と目標温度との偏差に基づく比例，積分及び微分動作で更新し、偏差の減少に応じて比例及び微分動作を停止させて積分動作で操作量を更新し、実温度が目標温度に収束したときの操作量を初期温度毎に学習し、学習後に積分及び微分動作を停止させ比例動作で操作量を更新し、温度制御の起動時に、そのときの初期温度での学習結果に応じた起動出力値にまで操作量をステップ的に変化させる、温度制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象の温度と目標温度との偏差に基づいて操作量を更新するフィードバック制御を行う温度制御装置及び温度制御方法に関する。
【背景技術】
【０００２】
従来、フィードバック制御を行う温度制御装置及び温度制御方法として、例えば特許文献１に開示されるものがある。このものは、設定温度と実際の温度との偏差に基づく比例・積分・微分動作によって制御対象の温度を制御するものであり、電源投入時には環境温度を設定温度とし、その後、一次遅れの関数で前記設定温度を環境温度から本来の目標温度にまで変化させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０２５４２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来の温度制御装置のように、温度偏差に基づいてフィードバック制御を行う場合、フィードバック制御におけるゲインの設定によって温度変化の立ち上がり時間を短くしようとすると、制御安定性が低下してオーバーシュートが発生し、逆に、制御安定性を得られるようにすると、温度変化の立ち上がり時間が長くなってしまう。
【０００５】
前記特許文献１に開示される装置・方法では、設定温度を一次遅れの関数で環境温度から本来の目標温度にまで変化させることで、オーバーシュートの発生を抑制できるものの、温度変化の立ち上がり時間を充分に短くすることは難しい。
【０００６】
本発明は上記問題点に着目してなされたものであり、オーバーシュートの発生を抑制しつつ、温度変化の立ち上がり時間を充分に短くできる温度制御装置及び温度制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
このため、請求項１に係る発明は、制御対象の操作量を制御対象の実温度と目標温度との偏差に基づく比例，積分及び微分動作で更新し、偏差の減少に応じて比例及び微分動作を停止させて積分動作で操作量を更新し、実温度が目標温度に収束したときの操作量を初期温度毎に学習し、学習後に積分及び微分動作を停止させ比例動作で操作量を更新し、温度制御の起動時に、そのときの初期温度での学習結果に応じた起動出力値にまで操作量をステップ的に変化させるようにした。かかる構成では、温度制御の起動時に、制御対象の初期温度に基づいて設定される起動出力値にまで操作量をステップ的に変化させ、その後、フィードバック制御によって操作量を更新させて目標温度に収束させる。ここで、初期温度が同じであっても、装置や環境などのばらつきによって目標温度になる操作量にばらつきが生じるので、実際に目標温度に収束させるのに要した操作量を初期温度毎に学習し、この学習結果に応じて起動出力値を設定する。また、実温度が目標温度に収束すると、それまでの比例動作，積分動作及び微分動作（ＰＩＤ動作）によって操作量を更新させる状態から、積分制御（Ｉ動作）のみで操作量を更新させる状態に切り替えることで、目標温度にするために定常的に要求される操作量を求め、該操作量を制御対象の初期温度毎に学習する。更に、目標温度になる定常的な操作量を求めた後は、目標温度付近に安定的に収束させておくために、積分動作及び微分動作を停止させ、比例動作のみで操作量を更新させる。
【０００８】
請求項１の構成において、請求項２のように、温度制御の起動時に、偏差の絶対値が閾値よりも小さくなってから操作量の更新を開始することができる。この場合、温度制御の起動時に、操作量を、初期温度に基づいて設定される起動出力値にまでステップ的に変化させると、その後、温度偏差の絶対値が閾値よりも小さくなるまでは前記起動出力値に保持させ、温度偏差の絶対値が閾値よりも小さくなると、フィードバック制御によって操作量を変化させる。
【０００９】
また、請求項１又は２の構成において、請求項３のように、偏差に対する操作量の制御ゲインを偏差の絶対値に応じて変更することができる。この場合、偏差の絶対値に応じて制御ゲインを変更することで、フィードバック制御における安定性の確保を図ることができる。尚、制御ゲインの変更には、例えば、ＰＩＤ動作における一部又は全ての動作を停止させる処理が含まれる。
【００１０】
また、請求項１〜３のいずれか１つに記載の構成において、請求項４のように、温度制御の起動時に、目標温度に収束したときの操作量よりも低い起動出力値にまで操作量をステップ的に変化させることができる。この場合、温度制御の起動時に、起動出力値までステップ的に変化させるが、該起動出力値のままでは、実際の温度を目標温度にまで変化させることができないので、フィードバック制御によって操作量の不足分を補う。
【００１１】
また、請求項１〜３のいずれか１つに記載の構成において、請求項５のように、温度制御の起動時に、目標温度に収束したときの操作量よりも高い第１起動出力値にまで操作量をステップ的に変化させた後、偏差の絶対値が閾値よりも小さくなると、目標温度に収束したときの操作量よりも低い第２起動出力値にまで操作量をステップ的に変化させることもできる。
【００１２】
この場合、そのときの初期温度において目標温度になると予測される操作量よりも高い第１起動出力値にまで、温度制御の起動時に操作量をステップ的に変化させることで、温度制御の立ち上がり応答を速めるが、そのまま第１起動出力値を出力し続けると、過剰な操作量によってオーバーシュートが発生するので、偏差の絶対値が閾値よりも小さくなったときに、そのときの初期温度において目標温度になると予測される操作量よりも小さい第２起動出力値にまで操作量をステップ的に変化させる。
【００１３】
また、請求項１〜５のいずれか１つに記載の構成において、請求項６のように、制御対象の実温度が目標温度に収束したときの操作量又は当該操作量に基づき設定した起動出力値を初期温度毎に更新記憶し、温度制御の起動時に、記憶値を参照してそのときの初期温度での起動出力値を求めることができる。この場合、初期温度が同じであっても、装置や環境などのばらつきによって目標温度になる操作量にばらつきが生じるので、実際に目標温度に収束させるのに要した操作量を目標温度になると予測される操作量として検出し、前記検出した操作量又は前記検出した操作量に基づき設定した起動出力値を初期温度毎に記憶させ、該記憶値を参照してそのときの初期温度における起動出力値を設定する。
【００１４】
請求項１〜６のいずれか１つに記載の構成において、請求項７のように、温度制御の起動時に、そのときの初期温度に対応する学習を行っていない場合、そのときの初期温度とは異なる初期温度に対応する学習結果に応じた前記起動出力値にまで操作量をステップ的に変化させることができる。この場合、記憶値に基づいて起動出力値を設定しようとしたときに、そのときの初期温度に対応する学習がなされていない場合には、そのときの初期温度とは異なる初期温度に対応する学習結果に応じた起動出力値にまでステップ的に変化させる。
【００１８】
また、請求項８の発明に係る温度制御方法は、制御対象の操作量を制御対象の実温度と目標温度との偏差に基づく比例，積分及び微分動作で更新し、偏差の減少に応じて比例及び微分動作を停止させて積分動作で操作量を更新し、実温度が目標温度に収束したときの操作量を初期温度毎に学習し、学習後に積分及び微分動作を停止させ比例動作で操作量を更新し、温度制御の起動時に、そのときの初期温度での学習結果に応じた起動出力値にまで操作量をステップ的に変化させる。
【発明の効果】
【００１９】
かかる温度制御装置及び温度制御方法によれば、初期温度によって目標温度にするための操作量が異なることに対応して、温度制御の起動時に操作量をステップ的に変化させることができ、これによって、温度制御の立ち上がり応答を速めつつ、オーバーシュートの発生を抑制できる。
【図面の簡単な説明】
【００２０】
【図１】本発明に係る温度制御装置の一実施形態を示すブロック図
【図２】温度制御の第１実施形態を示すフローチャート
【図３】前記第１実施形態の処理機能を示す機能ブロック図
【図４】前記第１実施形態での温度及び操作信号の変化を示すタイムチャート
【図５】温度制御の第２実施形態を示すフローチャート
【図６】温度制御の第２実施形態を示すフローチャート
【図７】前記第２実施形態における最終出力値の推定処理の様子を示すタイムチャート
【図８】前記第２実施形態での温度及び操作信号の変化を示すタイムチャート
【図９】温度制御の第３実施形態を示すフローチャート
【図１０】前記第３実施形態での温度及び操作信号の変化を示すタイムチャート
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて説明する。図１は、本願発明に係る温度制御装置のハードウェア構成を示すブロック図である。図１に示す温度制御装置１００は、温度検出素子（温度検出手段、温度センサ）２００から出力信号を読み込んで、温度出力素子３００（制御対象）の操作量を出力する装置である。
【００２２】
前記温度出力素子３００は、例えば、発熱抵抗素子やペルチェ素子などで構成され、半導体レーザや非線形光学素子を含む光共振器などの加熱又は冷却を行う電気素子であり、この温度出力素子３００の発熱量又は吸熱量を、温度出力素子３００に与える電力（電圧及び／又は電流）を制御することで調整して、半導体レーザなどの温度Ｔ（制御量）を目標温度Ｔｅに制御する。尚、前記目標温度Ｔｅは、例えば、半導体レーザの波長に応じて決定される。
【００２３】
一方、温度検出素子２００は、前記温度出力素子３００又は温度出力素子３００で加熱・冷却される半導体レーザ（制御対象）の温度情報を電気信号に変換するための素子であり、例えばサーミスタや熱電対などで構成される。また、温度制御装置１００は、ＭＰＵ（マイクロプロセッサ）１０１、ＲＡＭ１０２、不揮発性メモリ１０３、Ｄ／Ａ変換器１０４、Ａ／Ｄ変換器１０５、ドライバ回路１０６、検出増幅回路１０７などを含んで構成される。
【００２４】
前記温度検出素子２００から出力される、制御対象の温度を示すアナログ信号は、前記検出増幅回路１０７で増幅された後、Ａ／Ｄ変換器１０５でデジタル信号に変換され、前記ＭＰＵ１０１に読み込まれる。また、ＭＰＵ１０１から出力される前記温度出力素子３００のデジタル操作信号Ｗは、Ｄ／Ａ変換器１０４でアナログ操作信号Ｗに変換され、更に、Ｄ／Ａ変換器１０４から出力されるアナログ操作信号Ｗが前記ドライバ回路１０６に出力される。
【００２５】
そして、前記ドライバ回路１０６は、前記アナログ操作信号Ｗに応じて前記温度出力素子３００に対して駆動電力（操作量）を与える。尚、本実施形態では、前記操作信号Ｗが高くなるほど、温度出力素子３００に与えられる電力（Ｗ）が大きくなり、発熱抵抗素子などによる加熱制御における発熱量、ペルチェ素子などによる冷却制御における吸熱量が増えるものとする。
【００２６】
前記ＭＰＵ１０１におけるソフトウェア構成として、目標温度Ｔｅと実際の温度Ｔとの偏差ｅ（ｅ＝Ｔｅ−Ｔ）に基づく比例・積分・微分動作（ＰＩＤ動作）で操作信号Ｗを更新するＰＩＤ制御プログラムや、前記偏差ｅと閾値との比較によって判断される制御段階毎に、前記ＰＩＤ動作における制御定数（制御ゲイン）を変更する多段階制御アルゴリズムなどが備えられている。即ち、前記ＭＰＵ１０１は、後述するように、フィードバック制御手段、起動出力値設定手段、起動手段、ゲイン変更手段としての機能をソフトウェアとして備え、学習記憶手段は、不揮発性メモリ１０３と前記ＭＰＵ１０１のソフトウェアとによって構成される。
【００２７】
前記ＰＩＤ動作では、操作信号Ｗが、Ｗ＝比例動作出力＋積分動作出力＋微分動作出力として算出され、詳細には、偏差をｅとすると、操作信号Ｗは、数１に示すようにして算出される。
【数１】
0005579409.tif 000002
【００２８】
上記数１において、ＫＰは比例ゲイン（比例定数）、ＴI は積分時間、ＴD は微分時間であり、ＫＰ／ＴI を積分ゲインＫＩ（積分定数）、ＫＰ＊ＴD を微分ゲインＫＤ（微分定数）と称するものとする。前記不揮発性メモリ１０３は、ＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリであり、後述するように、積分動作出力の初期値とする起動出力値Ｗｓの設定に用いるテーブルなどが記憶される。
【００２９】
尚、温度制御装置１００が、ＭＰＵ（マイクロプロセッサ）１０１、ＲＡＭ１０２、不揮発性メモリ１０３で構成され、Ｄ／Ａ変換器１０４，Ａ／Ｄ変換器１０５，ドライバ回路１０６及び検出増幅回路１０７が、温度制御装置１００に対して外部接続される構成とすることができる。また、ＭＰＵ（マイクロプロセッサ）１０１、ＲＡＭ１０２、不揮発性メモリ１０３、Ｄ／Ａ変換器１０４、Ａ／Ｄ変換器１０５が、同一チップに搭載される所謂ワンチップマイコンを用いれば、装置の小型化・標準化・コストダウンを同時に図れる。
【００３０】
以下では、前記温度制御装置１００による温度制御を詳細に説明する。図２のフローチャートは、前記温度制御の第１実施形態を示す。図２のフローチャートに示すプログラムは、温度制御装置１００の電源スイッチのオン、又は、オペレータによる温度制御の開始指令（開始を指令するスイッチの操作）などに基づいて起動される。
【００３１】
まず、ステップＳ５０１では、積分動作出力を零にリセットするなどのイニシャライズ処理を実行する。換言すれば、図２のフローチャートに示すプログラムの起動時が、温度制御の起動時に相当する。ステップＳ５０２では、そのときの前記温度検出素子２００の出力から制御対象の温度Ｔを検出し、この検出した温度Ｔを、制御対象の初期温度Ｔｓ（℃）として記憶する。前記初期温度Ｔｓは、温度制御を起動する直前の制御対象（半導体レーザなど）の温度であり、常温（室温）に相当する。
【００３２】
ステップＳ５０３では、前記不揮発性メモリ１０３に記憶されているテーブルを参照し、前記ステップＳ５０２で記憶した初期温度Ｔｓに対応して記憶されている最終出力値Ｗｅを検索する。前記テーブルは、制御対象の温度を目標温度Ｔｅ（設定値）にするために最終的に要求される操作信号Ｗ（又は操作量）である最終出力値Ｗｅを、初期温度Ｔｓ毎に記憶するものである。尚、制御対象の目標温度Ｔｅが複数種に切り替えられる場合には、前記テーブルを、複数の目標温度Ｔｅ毎に備えるか、又は、目標温度Ｔｅと初期温度Ｔｓとに応じて最終出力値Ｗｅを記憶するマトリックステーブルを備えるようにする。
【００３３】
前記テーブルにおける初期温度Ｔｓ毎の最終出力値Ｗｅは、予め実験やシミュレーションなどによって求めたものであっても良いし、後述するように、実際に温度制御を行わせた結果に基づいて更新記憶（学習）される値であってもよい。また、初期温度Ｔｓ毎に最終出力値Ｗｅを記憶させる代わりに、後述するようにして最終出力値Ｗｅに基づき設定される起動出力値Ｗｓを、初期温度Ｔｓ毎に記憶させることができる。
【００３４】
ステップＳ５０４では、前記ステップＳ５０３で求めた最終出力値Ｗｅに所定比率Ｒｓ（Ｒｓ＜１００％であり、例えばＲｓ＝９０％）を乗算して、起動出力値Ｗｓ（Ｗｓ＝Ｗｅ×Ｒｓ）を設定し、積分動作出力の初期値を前記起動出力値Ｗｓとすることで、ＰＩＤ動作で更新される操作信号Ｗを、初期値（零）から前記起動出力値Ｗｓまでステップ的に変化させると共に、前記ＰＩＤ動作における各制御定数（制御ゲイン）ＫＰ，ＫＩ，ＫＤとして、起動直後（第１段階）に適用される値として予め記憶されているＫＰ１，ＫＩ１，ＫＤ１を設定する（ＫＰ＝ＫＰ１，ＫＩ＝ＫＩ１，ＫＤ＝ＫＤ１）。
【００３５】
前記ＰＩＤ動作によって実際の温度Ｔが目標温度Ｔｅ付近に収束すると、偏差ｅは零に漸近することで、比例動作出力（比例成分）及び微分動作出力（微分成分）が零に漸近し、積分動作出力（積分成分）が残ることになり、実際の温度Ｔを目標温度Ｔｅにするために要求される操作信号Ｗ、即ち、最終出力値Ｗｅは、比例動作出力（比例成分）及び微分動作出力（微分成分）が零に漸近した状態（定常状態）での積分動作出力（積分成分）となる。
【００３６】
従って、前記定常状態での積分動作出力に相当する操作信号Ｗを最終出力値Ｗｅとして、この最終出力値Ｗｅにまで、温度制御の起動時に操作信号Ｗをステップ的に変化させれば（換言すれば、目標温度Ｔｅにまで温度変化させることができる電力にまでステップ的に増大変化させれば）、制御対象の温度（制御量）を、速やかに目標温度にまで到達させることが可能である。
【００３７】
但し、最終出力値Ｗｅは、実際の温度Ｔが目標温度Ｔｅになるものと予測される操作信号Ｗではあるが、環境条件の違いなどによって、最終出力値Ｗｅの出力状態で目標温度よりも高くなることがある。そのため、予測される範囲の環境条件の違いがあっても、目標温度Ｔｅを超えることにならないように、最終出力値Ｗｅよりも低い起動出力値Ｗｓにまで操作信号Ｗをステップ変化させ、その後は、操作信号Ｗ（操作量）の不足分を積分動作で補って、最終的に実際の温度Ｔを目標温度Ｔｅに一致させる。
【００３８】
即ち、温度制御に起動時に起動出力値Ｗｓにまで操作信号Ｗをステップ変化させれば、フィードバック制御（ＰＩＤ動作）によって徐々に操作信号Ｗを増大変化させる場合に比べて、温度変化の応答を速められる。しかし、起動出力値Ｗｓ＝最終出力値Ｗｅとすると、環境条件によっては、実際の温度Ｔが目標温度Ｔｅを超えてしまうことがあり得るので、定常的に与え続けても実際の温度Ｔが目標温度Ｔｅを超えることがない、最終出力値Ｗｅよりも低い起動出力値Ｗｓを設定し、起動出力値Ｗｓでは目標温度Ｔｅに届かない分だけ、フィードバック制御（ＰＩＤ動作）で操作信号Ｗを増大変化させる。
【００３９】
尚、本実施形態では、起動出力値Ｗｓを積分動作出力の初期値として与えるが、起動出力値ＷｓとＰＩＤ動作出力との加算値を最終的な操作信号Ｗとして出力させても良い。また、前記ＫＰ１，ＫＩ１，ＫＤ１を全て零に設定して、ＰＩＤ動作による操作信号Ｗの更新を第１段階で停止させても良いし、ＫＰ１，ＫＩ１，ＫＤ１＞０として、ＰＩＤ動作による操作信号Ｗの更新を起動直後から開始させるようにしてもよい。
【００４０】
ここで、第１段階においては、起動出力値Ｗｓが最終出力値Ｗｅに近いほど、換言すれば、所定比率Ｒｓが高いほど、ＫＰ１，ＫＩ１，ＫＤ１を小さくする（零を含む）ことで、操作信号Ｗの変化に対する実際の温度変化の遅れによって、温度Ｔが過剰に高く制御されてしまうことを回避することができる。
【００４１】
また、前記所定比率Ｒｓは一定値に限らず、例えば、初期温度Ｔｓが高いほど（目標温度に対する偏差が小さいほど）前記所定比率Ｒｓを小さい値に設定し、初期温度Ｔｓが高いときと低いときとで、フィードバック制御で補う操作量が大きく異なることがないようにすることができる。更に、最終出力値Ｗｅに所定比率Ｒｓを乗算した値を起動出力値Ｗｓとする代わりに、最終出力値Ｗｅから所定値（例えば５℃相当値）を減算した値を起動出力値Ｗｓとすることができる。
【００４２】
ステップＳ５０５では、前記偏差ｅの絶対値が閾値Ｔｈよりも小さくなったか否かを判断し、前記偏差ｅの絶対値が閾値Ｔｈよりも小さくなるまでは、ステップＳ５０４で設定したＰＩＤ動作（第１段階の制御）を継続させる。即ち、ＫＰ１，ＫＩ１，ＫＤ１を全て零に設定してＰＩＤ動作を停止させる場合には、操作信号Ｗが起動出力値Ｗｓに維持され、ＫＰ１，ＫＩ１，ＫＤ１＞０としてＰＩＤ動作による操作信号Ｗの更新を行わせる場合には、起動出力値ＷｓにＰＩＤ動作による更新分が加算されることで、操作信号Ｗが漸増することになる。
【００４３】
ステップＳ５０５で、前記偏差ｅの絶対値が閾値Ｔｈよりも小さくなったと判断された場合、即ち、起動出力値Ｗｓにまで操作信号Ｗをステップ的に変化させたことで期待される温度付近にまで変化し、実際の温度Ｔが目標温度Ｔｅに充分に近づいた第２段階になると、ステップＳ５０６へ進む。尚、制御対象が半導体レーザ等である場合には、前記偏差ｅの絶対値が閾値Ｔｈよりも小さくなったと判断された時点で、動作を開始させることができる。
【００４４】
ステップＳ５０６では、実際の温度が目標温度に対してオーバーシュートすることなく、目標温度付近にまで変化させるのに適した値として予め記憶されているＫＰ２，ＫＩ２，ＫＤ２を、ＰＩＤ動作の各制御定数（制御ゲイン）ＫＰ，ＫＩ，ＫＤとして設定する。
そして、前記制御定数（制御ゲイン）ＫＰ２，ＫＩ２，ＫＤ２によるＰＩＤ動作で操作信号Ｗを更新させて、実際の温度Ｔを目標温度Ｔｅに収束させ、目標温度Ｔｅに維持させる。
【００４５】
ステップＳ５０７では、電源スイッチがオフされたか（又はオペレータによって温度制御終了指令が発せられたか）、即ち、温度出力素子３００の駆動停止要求時であるかを判断する。そして、電源スイッチがオフされると、ステップＳ５０８の終了処理へ進んで、温度制御を終了させる。
【００４６】
尚、第１段階からＰＩＤ動作で操作信号Ｗを変化させる場合、第２段階での制御定数ＫＰ２，ＫＩ２，ＫＤ２を、第１段階での制御定数ＫＰ１，ＫＩ１，ＫＤ１と同じ値に設定することができ、また、第１段階では、ＫＰ１，ＫＩ１，ＫＤ１＞０としてＰＩＤ動作で操作信号Ｗを変化させ、第２段階では、ＫＤ２＝０、かつ、ＫＰ２，ＫＩ２＞０（ＫＰ１，ＫＩ１＞ＫＰ２，ＫＩ２＞０）として、ＰＩ動作で操作信号Ｗを変化させることができる。
【００４７】
図３は、実施形態における基本的な制御機能を示すブロック図である。図３において、温度出力素子３００（制御対象）の温度Ｔが温度検出素子２００で検出され、該検出温度Ｔは検出増幅回路１０７を介して減算器６０１に出力され、該減算器６０１では、目標温度Ｔｅと検出温度Ｔとの偏差ｅを算出する。減算器６０１で算出された偏差ｅは、比例動作部６０２、積分動作部６０３、微分動作部６０４にそれぞれ出力され、前記偏差ｅに基づき、比例動作出力（比例成分）、積分動作出力（積分成分）、微分動作出力（微分成分）をそれぞれ出力する。
【００４８】
前記比例動作出力（比例成分）、積分動作出力（積分成分）、微分動作出力（微分成分）は加算器６０５に出力され、該加算器６０５は、比例動作出力と積分動作出力と微分動作出力との総和を操作信号Ｗとして、ドライバ回路１０６に出力する。前記ドライバ回路１０６では、前記操作信号Ｗに応じて前記温度出力素子３００（制御対象）の駆動電力（操作量）を制御する。
【００４９】
前記加算器６０２とドライバ回路１０６との間には、スイッチング回路６０６が設けられており、該スイッチング回路６０６は、前記加算器６０２からの操作信号Ｗと、そのときの初期温度Ｔｓに基づいて不揮発性メモリ１０３から読み出された最終出力値Ｗｅに対し、乗算器６０７で前記所定比率Ｒｓを乗算した結果である起動出力値Ｗｓ（Ｗｓ＝Ｗｅ＊Ｒｓ）とのいずれか一方を選択して、前記ドライバ回路１０６に出力する回路である。
【００５０】
ここで、前記スイッチング回路６０３は、温度制御の起動時には、前記起動出力値Ｗｓを前記ドライバ回路１０６に出力し、比較器６０８で、前記偏差ｅの絶対値と閾値Ｔｈとを比較して、「偏差ｅの絶対値」≧閾値Ｔｈであると判断される間は、前記起動出力値Ｗｓを継続して出力させる。そして、「偏差ｅの絶対値」＜閾値Ｔｈになると、前記起動出力値Ｗｓを積分動作出力の初期値とし、前記ＰＩＤ動作で更新された操作信号Ｗを前記ドライバ回路１０６に出力させる。
【００５１】
即ち、図３のブロック図は、「偏差ｅの絶対値」≧閾値Ｔｈである間は、フィードバック制御（ＰＩＤ動作）を停止させ、操作信号Ｗを前記起動出力値Ｗｓに維持させる場合に対応しているが、前述のように、起動時に、操作信号Ｗ（積分動作出力）を起動出力値Ｗｓにまでステップ的に変化させ、直ちに、フィードバック制御（ＰＩＤ動作）を開始させるようにし、「偏差ｅの絶対値」＜閾値Ｔｈになった時点でフィードバック制御の制御定数（制御ゲイン）を切り替えるようにすることができる。
【００５２】
また、後述の第２実施形態に示すように、ＰＩＤ動作によって実際の温度Ｔが目標温度Ｔｅに収束した状態での操作信号Ｗ（積分動作出力）を、最終出力値Ｗｅとして初期温度Ｔｓ毎に前記不揮発性メモリ１０３に更新記憶させるか、又は、前記最終出力値Ｗｅに所定比率Ｒｓを乗算して求めた起動出力値Ｗｓを初期温度Ｔｓ毎に前記不揮発性メモリ１０３に更新記憶させる、最終出力値Ｗｅ又は起動出力値Ｗｓの学習処理を行わせることができる。
【００５３】
図４のタイムチャートは、前記第１実施形態における操作信号Ｗ及び制御対象の温度Ｔの変化を示す。図４のタイムチャートにおいて、時刻ｔ１が温度制御の起動時であり、このときに温度検出素子２００で検出された温度を初期温度Ｔｓとする。前記初期温度Ｔｓが検出されると、不揮発性メモリ１０３に記憶されているテーブルを参照し、そのときの初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）を検索する。
【００５４】
図４に示す例では、目標温度が５０℃であるため、初期温度５０℃に対応する最終出力値Ｗｅとして、Ｗｅ＝０が記憶されている一方、実際の初期温度Ｔｓは２５℃であり、この初期温度Ｔｓ＝２５℃に対応する最終出力値Ｗｅとして、Ｗｅ＝６３が記憶されているので、起動出力値Ｗｓは、Ｗｓ＝Ｗｅ＊Ｒｓ＝６３＊０．９＝５６．７に設定される。前記時刻ｔ１（温度制御の起動時）において、操作信号Ｗを初期値である零から前記起動出力値Ｗｓ＝５６．７にまでステップ的に変化させ（積分動作出力の初期値に起動出力値Ｗｓを設定し）、該起動出力値Ｗｓからフィードバック制御による操作信号の更新を直ちに開始させる。
【００５５】
そして、時刻ｔ２で、「偏差ｅの絶対値」＜閾値Ｔｈであると判断されると、ＰＩＤ制御における制御定数（制御ゲイン）ＫＰ，ＫＩ，ＫＤを切り替えてフィードバック制御を継続させ、実際の温度Ｔを目標温度Ｔｈに収束させる。尚、「偏差ｅの絶対値」≧閾値Ｔｈである間である第１段階において、制御定数（制御ゲイン）ＫＰ，ＫＩ，ＫＤを全て零として、ＰＩＤ動作（フィードバック制御）を停止させれば、前記第１段階で操作信号が起動出力値Ｗｓに維持させ、「偏差ｅの絶対値」＜閾値Ｔｈとなった第２段階からＰＩＤ動作（フィードバック制御）が開始されることになるが、図４のタイムチャートは、起動時からＰＩＤ動作（フィードバック制御）を開始させる場合の例を示す。
【００５６】
上記のように、第１実施形態では、操作信号Ｗを初期値（＝０）からＰＩＤ動作で徐々に変化させるのではなく、初期値から起動出力値Ｗｓにまでステップ変化させてからＰＩＤ動作で変化させる。操作信号Ｗを初期値からＰＩＤ動作で徐々に変化させる場合、比例動作及び積分動作の制御定数（制御ゲイン）を高くすることで、温度の立ち上がり応答を速くできるが、制御安定性が悪化することで、オーバーシュートやハンチングが発生してしまう。また、制御ゲインの設定によって、立ち上がり応答と制御安定性とを両立させようとすると、制御ゲインの適合に多くの時間を要してしまう。
【００５７】
これに対し、上記第１実施形態において、起動出力値Ｗｓへのステップ変化は、実際の温度Ｔが目標温度Ｔｅ（設定値）になる最終出力値Ｗｅの近傍にまでステップ変化させることになり、温度変化の立ち上がり応答を速めることができる。そして、実際の温度が目標に充分に近づいてからのＰＩＤ動作では、制御安定性を優先させればよいので、オーバーシュートやハンチングが発生することを回避でき、かつ、制御定数（制御ゲイン）の適合も容易である。
【００５８】
尚、上記第１実施形態におけるフィードバック制御は、ＰＩＤ動作によって行われるが、ＰＩ動作やＩ動作のみでフィードバック制御を行わせることができる。但し、微分動作Ｄを加えることで、安定性を確保しつつ比例動作Ｐ及び積分動作Ｉの制御ゲインを上げることができ、応答速度を上げることができる。
【００５９】
ところで、上記第１実施形態では、偏差ｅの絶対値と閾値Ｔｈとの比較に基づいて第１段階と第２段階とに判別して、制御パターンを切り替えるようにしたが、実際に目標温度Ｔｅに向けて制御した結果としての操作信号Ｗを、前記最終出力値Ｗｅとして学習させる場合には、後述する第２実施形態に示すように、より多段階に制御パターンを切り替えることが好ましい。
【００６０】
図５及び図６は、第２実施形態における温度制御の流れを示すフローチャートである。図５及び図６のフローチャートに示すプログラムは、温度制御装置１００の電源スイッチのオン、又は、オペレータによる温度制御開始指令などに基づいて起動され、まず、ステップＳ７０１では、積分動作出力を零にリセットするなどのイニシャライズ処理を実行する。
【００６１】
ステップＳ７０２では、そのときの前記温度検出素子２００の出力から制御対象の温度Ｔを検出し、この検出した温度Ｔを、制御対象の初期温度Ｔｓ（℃）として記憶する。ステップＳ７０３では、前記不揮発性メモリ１０３に記憶されているテーブルを参照し、前記ステップＳ７０２で求めた初期温度Ｔｓに対応して記憶されている最終出力値Ｗｅ（又は起動出力値Ｗｓ）を検索する。
【００６２】
ステップＳ７０４では、今回の初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）が記憶されていたか否かを判断する。そして、今回の初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）が記憶されていた場合には、ステップＳ７０５へ進み、検索した最終出力値Ｗｅに所定比率Ｒｓを乗算した結果を、今回の起動出力値Ｗｓに設定する。
【００６３】
また、初期温度Ｔｓ毎に起動出力値Ｗｓを記憶させる場合には、ステップＳ７０４で今回の初期温度Ｔｓに対応する起動出力値Ｗｓが記憶されていたと判断されると、ステップＳ７０５へ進み、ステップＳ７０３で検索した起動出力値Ｗｓをそのまま最終的な起動出力値Ｗｓに設定する。
【００６４】
一方、ステップＳ７０４で、今回の初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）が記憶されていないと判断された場合には、ステップＳ７０６へ進む。ステップＳ７０６では、今回の初期温度Ｔｓとは異なる初期温度Ｔｓに対応して記憶されている最終出力値Ｗｅ（又は起動出力値Ｗｓ）に基づいて、今回の初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）を設定する。
【００６５】
具体的には、最終出力値Ｗｅ（又は起動出力値Ｗｓ）が記憶されている初期温度Ｔｓの中で、今回の初期温度Ｔｓに最も近い初期温度Ｔｓを選択し、該選択した初期温度Ｔｓに対応して記憶されている最終出力値Ｗｅ（又は起動出力値Ｗｓ）を、今回の初期温度Ｔｓにも適用させる。
【００６６】
また、最終出力値Ｗｅ（又は起動出力値Ｗｓ）が記憶されている初期温度Ｔｓの中で、今回の初期温度Ｔｓに近い２つ以上の初期温度Ｔｓを選択し、該選択した初期温度Ｔｓに対応して記憶されている最終出力値Ｗｅ（又は起動出力値Ｗｓ）から、今回の初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）を、補間演算などに基づいて推定させることができる。
【００６７】
数２は、今回の初期温度Ｔｓに近い２つの初期温度Ｔｓ’，ＴＳ”にそれぞれ対応する最終出力値Ｗｅ（Ｔｓ’），Ｗｅ（Ｔｓ”）から、今回の初期温度Ｔｓに対応する最終出力値Ｗｅ（Ｔｓ）を演算する式の一例を示す。
【数２】
0005579409.tif 000003
【００６８】
上記のようにして推定演算される最終出力値Ｗｅ（Ｔｓ）に、所定比率Ｒｓを乗算して、今回の初期温度Ｔｓに対応する起動出力値Ｗｓを設定する。尚、初期温度Ｔｓ毎に起動出力値Ｗｓを更新記憶させる場合には、数２における最終出力値Ｗｅ（Ｔｓ’），Ｗｅ（Ｔｓ”）を、起動出力値Ｗｓ（Ｔｓ’），Ｗｓ（Ｔｓ”）に置き換えて、今回の初期温度Ｔｓに対応する起動出力値Ｗｓ（Ｔｓ）を演算させることができる。
【００６９】
尚、そのときの初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）の推定においては、最終出力値Ｗｅ（又は起動出力値Ｗｓ）が記憶されている３つ以上の初期温度ＴｓでのＷｅ（Ｗｓ）データから、初期温度Ｔｓと最終出力値Ｗｅ（又は起動出力値Ｗｓ）との相関を示す多項式を求め、該多項式に基づいて、そのときの初期温度Ｔｓに対応する最終出力値Ｗｅ（又は起動出力値Ｗｓ）を推定させることができる。
【００７０】
また、テーブルに記憶されている最終出力値Ｗｅの数が規定数に満たない場合には、今回の初期温度Ｔｓに対応する最終出力値Ｗｅの推定、及び、起動出力値Ｗｓへのステップ変化をキャンセルし、操作信号Ｗを初期値＝０からＰＩＤ動作で徐々に変化させることができる。また、推定に用いる最終出力値Ｗｅを、今回の初期温度Ｔｓを中心とする所定温度範囲内の初期温度Ｔｓに対応して記憶されている最終出力値Ｗｅに限定し、推定に用いることができる最終出力値Ｗｅがない場合には、起動出力値Ｗｓへのステップ変化をキャンセルすることができる。
【００７１】
更に、推定に用いる最終出力値Ｗｅが対応している初期温度Ｔｓと、今回の初期温度Ｔｓとの差が大きいほど、最終出力値Ｗｅの推定誤差が大きくなるものと予測されるので、前記初期温度Ｔｓの差が大きいほど、推定結果をより小さく補正して、起動時のステップ変化に用いるようにすることができる。
【００７２】
図７のタイムチャートは、今回の初期温度Ｔｓに対応する最終出力値Ｗｅが記憶されていない場合における、最終出力値Ｗｅ（Ｔｓ）の推定演算の様子を示すものである。図７に示す例では、初期温度Ｔｓが２３℃であるが、初期温度Ｔｓ毎に最終出力値Ｗｅを記憶するテーブルの初期温度Ｔｓ＝２３℃に対応する最終出力値Ｗｅの欄には、最終出力値Ｗｅが記憶されていない。
【００７３】
但し、２３℃以外の初期温度Ｔｓでは、対応する最終出力値Ｗｅが記憶されている温度条件が存在し、２３℃より高い温度域の中では、対応する最終出力値Ｗｅが記憶されている初期温度Ｔｓのうち２３℃に最も近いのが初期温度Ｔｓ＝２５℃であり、また、２３℃より低い温度域の中では、対応する最終出力値Ｗｅが記憶されている初期温度Ｔｓのうち２３℃に最も近いのが初期温度Ｔｓ＝２０℃である。
【００７４】
そして、初期温度Ｔｓ＝２５℃に対応して記憶されている最終出力値Ｗｅは６３であり、初期温度Ｔｓ＝２０℃に対応して記憶されている最終出力値Ｗｅは８０である。ここで、今回の初期温度Ｔｓ＝２３℃は、温度範囲２０℃〜２５℃を、３：２に分ける境界値であり、最終出力値Ｗｅの範囲８０〜６３を３：２に分ける境界値は６９．８であるので、初期温度Ｔｓ＝２３℃に対応する最終出力値Ｗｅを、６９．８に設定する。即ち、上記推定演算は、今回の初期温度Ｔｓ＝２３℃を挟む２つの温度条件それぞれの最終出力値Ｗｅから、直線補間で今回の初期温度Ｔｓ＝２３℃に対応する最終出力値Ｗｅを推定することになる。
【００７５】
上記のように、今回の初期温度Ｔｓ＝２３℃に対応する最終出力値Ｗｅが６９．８であると推定すると、該推定値に基づいて設定した起動出力値Ｗｓにまで操作信号Ｗをステップ変化させて、フィードバック制御（ＰＩＤ動作）を開始させる。そして、実際に目標温度Ｔｅになったときの操作信号Ｗが例えば７１であったとすると、後述するように、初期温度Ｔｓ＝２３℃に対応する最終出力値Ｗｅとして「７１」を記憶させ、次回、初期温度Ｔｓが２３℃であった場合には、初期温度Ｔｓ＝２３℃に対応する最終出力値Ｗｅとして「７１」が読み出されるようになる。
【００７６】
ステップＳ７０７では、温度制御の起動直後の第１段階における処理として、まず、積分動作出力の初期値として前記起動出力値Ｗｓを設定することで、操作信号Ｗをステップ的に増大変化させ、また、前記ＰＩＤ動作における各制御定数（制御ゲイン）ＫＰ，ＫＩ，ＫＤとして、起動直後（第１段階）に適用される値として予め記憶されているＫＰ１，ＫＩ１，ＫＤ１を設定する（ＫＰ＝ＫＰ１，ＫＩ＝ＫＩ１，ＫＤ＝ＫＤ１）。ここで、前記ＫＰ１，ＫＩ１，ＫＤ１を全て零に設定し、ＰＩＤ動作（フィードバック制御）を停止させることができる他、ＫＰ１，ＫＩ１，ＫＤ１＞０として、温度制御の起動時からＰＩＤ動作（フィードバック制御）を開始させることができる。
【００７７】
ステップＳ７０８では、偏差ｅの絶対値が閾値Ｔｈ未満であるか否かを判別し、「偏差ｅの絶対値」≧閾値Ｔｈである間は、ＫＰ＝ＫＰ１，ＫＩ＝ＫＩ１，ＫＤ＝ＫＤ１でのＰＩＤ動作を継続させる。そして、「偏差ｅの絶対値」＜閾値Ｔｈとなると、ステップＳ７０９へ進み、第２段階の設定として、前記ＰＩＤ動作における各制御定数（制御ゲイン）ＫＰ，ＫＩ，ＫＤを、第２段階に適用される値として予め記憶されているＫＰ２，ＫＩ２，ＫＤ２（ＫＰ２，ＫＩ２，ＫＤ２＞０）に設定する（ＫＰ＝ＫＰ２，ＫＩ＝ＫＩ２，ＫＤ＝ＫＤ２）。
【００７８】
尚、第１段階からＰＩＤ動作で操作信号Ｗを変化させる場合、第２段階での制御定数ＫＰ２，ＫＩ２，ＫＤ２を、第１段階での制御定数ＫＰ１，ＫＩ１，ＫＤ１と同じ値に設定することができ、また、第１段階では、ＫＰ１，ＫＩ１，ＫＤ１＞０としてＰＩＤ動作で操作信号Ｗを変化させ、第２段階では、ＫＤ２＝０、かつ、ＫＰ２，ＫＩ２＞０（ＫＰ１，ＫＩ１＞ＫＰ２，ＫＩ２＞０）として、ＰＩ動作で操作信号Ｗを変化させることができる。
【００７９】
ステップＳ７１０では、「偏差ｅの絶対値」＜閾値ε１（ε１＜Ｔｈ）になったか否かを判断し、「偏差ｅの絶対値」≧閾値ε１である場合、即ち、閾値ε１≦「偏差ｅの絶対値」＜閾値Ｔｈである間（第２段階）は、ＫＰ＝ＫＰ２，ＫＩ＝ＫＩ２，ＫＤ＝ＫＤ２としたＰＩＤ動作を継続させる。
【００８０】
一方、第２段階のフィードバック制御によって実際の温度Ｔが更に目標温度Ｔｅに近づき、「偏差ｅの絶対値」＜閾値ε１になると、ステップＳ７１１へ進む。ステップＳ７１１では、第３段階の設定として、微分動作Ｄの制御定数（制御ゲイン）ＫＤを零にして微分動作Ｄを停止させ、また、比例動作Ｐの制御定数（制御ゲイン）ＫＰを、第３段階用の制御定数ＫＰ３（０＜ＫＰ３＜ＫＰ２）を初期値として徐々に零にまで減少させるか又は直ちに零にし、更に、積分動作Ｉの制御定数ＫＩを、第３段階用の制御定数ＫＩ３（０＜ＫＩ３＜ＫＩ２）に設定する。即ち、「偏差ｅの絶対値」＜閾値ε１になってからの第３段階は、積分動作Ｉで実際の温度Ｔを目標温度Ｔｅに近づけるようにし、目標温度Ｔｅにするために必要な定常的な操作信号Ｗを、積分動作Ｉによって確定させる。
【００８１】
ステップＳ７１２では、比例動作Ｐの制御定数（制御ゲイン）ＫＰを、第３段階用として予め記憶されている制御定数ＫＰ３（０＜ＫＰ３＜ＫＰ２）を初期値として徐々に零にまで減少させる処理の経過を判断するために、その時点での制御定数ＫＰが零よりも大きいか否かを判断する。そして、制御定数ＫＰが零よりも大きい（ＫＰ＞０）場合には、ステップＳ７１３へ進んで、制御定数ＫＰから所定値αだけ減算した結果を新たに制御定数ＫＰとする、制御定数ＫＰの漸減処理を実行する。
【００８２】
尚、ステップＳ７１３における制御定数ＫＰの漸減処理においては、制御定数ＫＰを零以上に制限し、零よりも小さい値（マイナスの値）に設定されることがないようにしてある。また、第３段階に入った時点で、制御定数ＫＰを零にする場合には、ステップＳ７１２，ステップＳ７１３の処理は省略される。
【００８３】
ステップＳ７１４では、「偏差ｅの絶対値」＜閾値ε２（０＜ε２＜ε１）になっていて、かつ、比例動作Ｐの制御定数ＫＰが零にまで減算されているか否かを判断する。そして、「偏差ｅの絶対値」≧閾値ε２である場合、即ち、閾値ε２≦「偏差ｅの絶対値」＜閾値ε１である間、及び／又は、制御定数ＫＰが零にまで減算されていない場合には、ステップＳ７１１へ戻り、ＫＩ＝ＫＩ３，ＫＤ＝０とし、また、制御定数ＫＰとしてＫＰ３からの減算処理値を用いるＰＩＤ動作を継続させる。
【００８４】
一方、「偏差ｅの絶対値」＜閾値ε２で、かつ、ＫＰ＝０であると判断された場合、ステップＳ７１５へ進む。ステップＳ７１５では、第４段階の制御パターンとして、比例動作Ｐ及び微分動作Ｄの制御定数ＫＰ，ＫＤを零にし、積分動作Ｉにおける制御定数ＫＩを、第４段階用として予め記憶されている制御定数ＫＩ４（ＫＩ４≦ＫＩ３）に設定し、積分動作Ｉのみで操作信号Ｗを更新させるようにする。
【００８５】
次のステップＳ７１６では、「偏差ｅの絶対値」＜閾値ε２である状態を設定時間ｔｅだけ維持しているか否かを判断し、「偏差ｅの絶対値」＜閾値ε２である状態の継続時間が前記設定時間ｔｅ未満であれば、ステップＳ７１４へ戻る。そして、「偏差ｅの絶対値」≧閾値ε２になっている場合には、ステップＳ７１１へ戻って、再び第３段階における制御定数の設定に戻してフィードバック制御を行わせる。
【００８６】
ステップＳ７１６で、「偏差ｅの絶対値」＜閾値ε２である状態の継続時間が前記設定時間ｔｅに達したと判断されると、ステップＳ７１７へ進み、そのときの操作信号Ｗを最終出力値Ｗｅとして、ステップＳ７０２で求めた初期温度Ｔｓに対応させて前記不揮発性メモリ１０３に記憶させる。
【００８７】
第４段階では、前述のように、積分動作Ｉで目標温度Ｔｅに収束させるから、ステップＳ７１７で最終出力値Ｗｅとして記憶されるのは、実際の温度Ｔを目標温度Ｔｅにするのに要した積分動作出力であって、目標温度Ｔｅに対して定常的に要求される操作信号Ｗである。換言すれば、目標温度Ｔｅに対して定常的に要求される操作信号Ｗを精度良く求めるために、比例動作Ｐ及び微分動作Ｄを停止させ、積分動作Ｉでフィードバック制御を行わせる。
【００８８】
尚、前記ステップＳ７１７で記憶させる最終出力値Ｗｅは、前記設定時間ｔｅが経過した時点での操作信号Ｗとすることができる他、前記設定時間ｔｅ内における操作信号Ｗの平均値とすることができる。また、ステップＳ７１７での記憶処理においては、常に新たに求められた最終出力値Ｗｅにテーブルデータを書き換えるようにすることができる他、今回の初期温度Ｔｓに対応する最終出力値Ｗｅが書き込まれていない場合に今回求めた最終出力値Ｗｅをそのまま記憶させ、既に書き込みがなされている場合には、更新を行わずに元のデータのままとしたり、記憶済みの最終出力値Ｗｅと新たに求めた最終出力値Ｗｅとの加重平均値や単純平均値に書き換えたりすることができる。
【００８９】
また、初期温度Ｔｓに対応する最終出力値Ｗｅとして、予め実験やシミュレーションの結果を初期値として記憶させ、これを実際の制御結果に基づいて更新させることができる。更に、実際の制御の結果として求めた最終出力値Ｗｅが、予め実験やシミュレーションで求めておいた値やそれまでに学習された値に対して、予測されるばらつき幅を超えた大きな偏差を示す場合に、新たに求めた最終出力値Ｗｅに基づくテーブルデータの書き換えを禁止したり、異常の発生をランプの点灯などでオペレータに警告したりすることができる。また、初期温度Ｔｓに対応させて記憶させるデータとして、操作信号Ｗに代えて、該操作信号Ｗで温度出力素子３００に与えられる電力（電圧・電流）とすることができる。
【００９０】
ステップＳ７１７で最終出力値Ｗｅの更新記憶を行わせると、次のステップＳ７１８では、最終出力値Ｗｅの更新記憶完了後の第５段階として、積分動作Ｉ及び微分動作Ｄの制御定数ＫＩ，ＫＤを零にして、積分動作Ｉ及び微分動作Ｄによる操作信号Ｗの更新を停止させる一方、比例動作Ｐにおける制御定数ＫＰとして、第５段階用として予め記憶されている制御定数ＫＰ５を設定する。
【００９１】
即ち、第４段階では、当初から比例動作Ｐを停止させるか、又は、比例動作Ｐの制御定数ＫＰを徐々に減らして、積分動作Ｉで実際の温度を目標温度に収束させるようにしたが、第５段階では、積分動作Ｉを停止させて、比例動作Ｐで外乱などによる温度変化を収束させるようにする。尚、積分動作Ｉの停止は、停止直前の積分動作出力、即ち、目標温度Ｔｅになったときの積分動作出力を維持することを示し、外乱などで実際の温度Ｔが目標温度Ｔｅからずれた場合には、比例動作出力で前記積分動作出力を増減補正して、目標温度Ｔｅを維持する。
【００９２】
ステップＳ７１９では、電源スイッチがオフされたか（又はオペレータによって温度制御終了指令が発せられたか）、即ち、温度出力素子３００の駆動停止要求時であるかを判断する。そして、電源スイッチのオン状態が継続している場合（又は温度制御終了指令が発せられていない場合）には、ステップＳ７２０へ進み、「偏差ｅの絶対値」＜閾値ε１であるか否かを判断する。
【００９３】
「偏差ｅの絶対値」＜閾値ε１であれば、ステップＳ７１９へ戻ることで、制御定数ＫＰ５による比例動作Ｐで、偏差ｅの縮小を図る。また、「偏差ｅの絶対値」≧閾値ε１になると、ステップＳ７０９へ戻って、第２段階のＰＩＤ動作によるフィードバック制御を再開させ、閾値ε１以上になった偏差ｅの速やかな収束を図る。
【００９４】
即ち、第４段階は、最終出力値Ｗｅの学習精度を確保するために、「偏差ｅの絶対値」＜閾値ε２＜閾値ε１であることを条件としたが、学習完了後の第５段階では、より大きな偏差の発生を許容し、「偏差ｅの絶対値」＜閾値ε１である間は、比例動作Ｐのみで操作信号Ｗを更新させる第５段階の制御状態を維持させる。換言すれば、前記閾値ε１は、制御対象の温度の許容ばらつき幅に相当する。
【００９５】
一方、「偏差ｅの絶対値」≧閾値ε１になった場合には、制御定数ＫＰ５による比例動作Ｐのみでは、偏差ｅを高い安定性で速やかに解消させることは困難であるため、ＰＩＤ動作によって操作信号を更新させる第２段階の制御パターンに戻し、「偏差ｅの絶対値」＜閾値ε１の状態に速やかに復帰させるようにする。ステップＳ７１９で、電源スイッチがオフされたこと（又はオペレータによって温度制御の終了指令が発せられたこと）が判定されると、ステップＳ７２１へ進み、終了処理へ進んで温度制御を終了させる。
【００９６】
図８のタイムチャートは、第２実施形態による温度制御を実行した場合の操作信号Ｗ及び温度Ｔの変化の一例を示す。図８のタイムチャートにおいて、時刻ｔ１で温度制御が起動され、初期温度Ｔｓが２５℃に検出されたことに基づき、初期温度Ｔｓ＝２５℃に対応して記憶されている最終出力値Ｗｅ＝６３がテーブルから読み出される。そして、初期温度Ｔｓ＝２５℃に対応する最終出力値Ｗｅ＝６３から起動出力値Ｗｓ（Ｗｓ＝Ｗｅ×0.9＝６３×0.9）が設定され、積分動作出力の初期値が前記起動出力値Ｗｓに設定されることで、操作信号Ｗが時刻ｔ１の時点でステップ的に増大変化する。
【００９７】
偏差ｅ≧閾値Ｔｈである第１段階では、前記起動出力値Ｗｓに基づき実温度Ｔが目標温度Ｔｅに近づくのを待ち、時刻ｔ２で「偏差ｅの絶対値」＜閾値Ｔｈになったことが判定されると、第２段階に移行し、ＰＩＤ動作で操作信号Ｗを変化させて、実温度Ｔを目標温度Ｔｅにより近づけるようにする。この第２段階の制御の結果、時刻ｔ３の時点で「偏差ｅの絶対値」＜閾値ε１（閾値ε１＜閾値Ｔｈ）になったことが判定されると、第３段階への移行を判定し、フィードバック制御の不安定要因になる微分動作Ｄを停止させると共に、操作信号Ｗの定常値を確定させるために、比例動作Ｐにおける制御定数ＫＰを徐々に減少させて零にまで変化させ、最終的に積分動作Ｉのみで操作信号Ｗを更新させる。
【００９８】
積分動作Ｉのみで操作信号Ｗを更新させる第３段階の制御によって、「偏差ｅの絶対値」＜閾値ε２（閾値ε２＜閾値ε１）になったことが時刻ｔ４の時点で判定されると、最終出力値Ｗｅを学習する第４段階に移行し、「偏差ｅの絶対値」＜閾値ε２である状態が時間ｔｅだけ安定していることを確かめ、時間ｔｅが経過した時点である時刻ｔ５において、その時点の操作信号Ｗ又は時間ｔｅ内の操作信号Ｗの平均値を、初期温度Ｔｓ＝２５℃に対応する最終出力値Ｗｅとして更新記憶させる。最終出力値Ｗｅの更新記憶を終えた時刻ｔ５以降は、比例動作Ｐのみで実際の温度Ｔを目標温度Ｔｅ付近に維持させる第５段階に移行し、外乱などによって「偏差ｅの絶対値」≧閾値ε１になった場合には、第２段階のＰＩＤ動作に戻すようにする。
【００９９】
上記第２実施形態によると、装置毎のばらつきや使用環境の違いによる最終出力値Ｗｅのばらつきが学習され、実際の温度制御に反映されるので、温度制御の起動時に、起動出力値Ｗｓによって高精度かつ応答良く目標温度Ｔｅ付近まで温度変化させることができる。また、積分動作Ｉのみで操作信号Ｗが更新され、かつ、目標温度Ｔｅ付近に安定的に収束している状態での操作信号Ｗを最終出力値Ｗｅとして学習するので、最終出力値Ｗｅを高い精度で学習することができる。
【０１００】
尚、上記第２実施形態では、第１段階〜第５段階に区別して制御パターンを切り替えたが、係る制御パターンの切り替えに限定されるものではなく、より多い段階に区別して制御パターンを切り替え、又は、より少ない段階に区別して制御パターンを切り替えることもできる。具体的には、例えば、第２段階を省略したり、第３段階での制御で「偏差ｅの絶対値」＜閾値ε２になり、かつ、比例動作Ｐの制御定数ＫＰが零になって時点の操作信号Ｗを最終出力値Ｗｅとして学習させることで、第４段階を省略したりして、段階数を減らすことができる。また、例えば、第１段階でのＰＩＤ動作を停止させる一方で、閾値Ｔｈと閾値ε１との中間値で第２段階を２つの段階に更に分け、偏差ｅの絶対値が前記中間値以上である場合に比べて前記中間値未満である状態での制御定数を小さくすることができる。
【０１０１】
更に、そのときの初期温度Ｔｓに対応する最終出力値Ｗｅが記憶されていると判断された場合や、そのときの初期温度Ｔｓに対応する最終出力値Ｗｅの更新回数が所定数に達していると判断された場合など、最終出力値Ｗｅを学習する必要がないと判断される場合に、例えば第３段階・第４段階を省略したり、第１実施形態の２段階の制御を行わせたりすることができる。
【０１０２】
ところで、上記第１，第２実施形態では、起動出力値Ｗｓとして最終出力値Ｗｅよりも小さい値を設定し、温度制御の起動時に、積分動作出力の初期値を前記起動出力値Ｗｓ（＜最終出力値Ｗｅ）とすることで、操作信号Ｗを起動出力値Ｗｓまでステップ変化させたが、温度制御の起動時に最終出力値Ｗｅよりも高い値にまでステップ的に増大変化させることが可能であり、これによって更に温度変化の立ち上がり応答を、より速めることができる。但し、温度制御の起動時に最終出力値Ｗｅよりも高い値にまでステップ的に増大変化させる場合には、目標温度Ｔｅを超えてオーバーシュートすることがないように、偏差ｅの絶対値が閾値にまで縮小した時点で最終出力値Ｗｅよりも低い値にまでステップ的に戻すことが必要である。
【０１０３】
図９のフローチャートは、温度制御の起動時に最終出力値Ｗｅよりも高い値にまでステップ的に増大変化させる構成とした第３実施形態を示す。図９のフローチャートに示すプログラムは、温度制御装置１００の電源スイッチのオン、又は、オペレータによる温度制御開始指令などに基づいて起動され、まず、ステップＳ８０１では、積分動作出力を零にリセットするなどのイニシャライズ処理を実行する。換言すれば、図９のフローチャートに示すプログラムの起動時が、温度制御の起動時に相当する。
【０１０４】
ステップＳ８０２では、そのときの前記温度検出素子２００の出力から制御対象の温度Ｔを検出し、この検出した温度Ｔを、制御対象の初期温度Ｔｓ（℃）として記憶する。
前記初期温度Ｔｓは、温度制御を起動する直前の制御対象（半導体レーザなど）の温度であり、常温（室温）に相当する。ステップＳ８０３では、前記不揮発性メモリ１０３に記憶されているテーブルを参照し、前記ステップＳ８０２で記憶した初期温度Ｔｓに対応して記憶されている最終出力値Ｗｅを検索する。
【０１０５】
前記テーブルにおける初期温度Ｔｓ毎の最終出力値Ｗｅは、予め実験やシミュレーションなどによって求めたものであっても良いし、前述の第２実施形態のように、実際に温度制御を行わせた結果に基づいて更新記憶（学習）される値であってもよい。また、初期温度Ｔｓ毎に最終出力値Ｗｅを記憶させる代わりに、最終出力値Ｗｅに基づき設定される起動出力値Ｗｓを、初期温度Ｔｓ毎に記憶させることができる。
【０１０６】
ステップＳ８０４では、前記ステップＳ８０３で求めた最終出力値Ｗｅに所定比率Ｒｓ１（Ｒｓ１＞１００％であり、例えばＲｓ１＝１２０％）を乗算して、最終出力値Ｗｅよりも高い第１起動出力値Ｗｓ１（Ｗｓ１＝Ｗｅ×Ｒｓ１）を設定し、積分動作出力の初期値を前記起動出力値Ｗｓ１とすることで、ＰＩＤ動作で更新される操作信号Ｗを、初期値（零）から最終出力値Ｗｅよりも高い起動出力値Ｗｓ１までステップ的に変化させる。但し、制御定数ＫＰ，ＫＩ，ＫＤを全て零に設定し、ＰＩＤ動作を停止させ、操作信号Ｗが起動出力値Ｗｓ１に保持されるようにする。
【０１０７】
ステップＳ８０５では、前記起動出力値Ｗｓ１の操作信号Ｗを与えたことで、偏差ｅの絶対値が閾値Ｔｈよりも小さくなったか否かを判断し、前記偏差ｅの絶対値が閾値Ｔｈよりも小さくなるまでは、操作信号Ｗ＝Ｗｓ１の状態を保持させる。そして、ステップＳ８０５で、前記偏差ｅの絶対値が閾値Ｔｈよりも小さくなったと判断された場合、即ち、起動出力値Ｗｓにまで操作信号Ｗをステップ的に変化させたことで期待される温度付近にまで変化し、実際の温度Ｔが目標温度Ｔｅに充分に近づいた第２段階になると、ステップＳ８０６へ進む。
【０１０８】
ステップＳ８０６では、前記ステップＳ８０３で求めた最終出力値Ｗｅに所定比率Ｒｓ２（Ｒｓ２＜１００％であり、例えばＲｓ２＝８０％）を乗算して、前記最終出力値Ｗｅよりも低い第２起動出力値Ｗｓ２（Ｗｓ２＝Ｗｅ×Ｒｓ２）を設定し、それまで第１起動出力値Ｗｓ１に保持されていた積分動作出力を、第２起動出力値Ｗｓ２に切り替えることで、第１起動出力値Ｗｓ１から第２起動出力値Ｗｓ２にまでステップ的に減少させる。
【０１０９】
また、ステップＳ８０６では、実際の温度が目標温度に対してオーバーシュートすることなく、目標温度付近にまで変化させるのに適した値として予め記憶されているＫＰ２，ＫＩ２，ＫＤ２（＞０）を、ＰＩＤ動作の各制御定数（制御ゲイン）ＫＰ，ＫＩ，ＫＤとして設定する。そして、前記制御定数（制御ゲイン）ＫＰ２，ＫＩ２，ＫＤ２によるＰＩＤ動作で、操作信号Ｗを、第２起動出力値Ｗｓ２から変化させて、実際の温度Ｔを目標温度Ｔｅに収束させ、目標温度Ｔｅに維持させる。
【０１１０】
ステップＳ８０７では、電源スイッチがオフされたか（又はオペレータによって温度制御終了指令が発せられたか）、即ち、温度出力素子３００の駆動停止要求時であるかを判断する。そして、電源スイッチがオフされると、ステップＳ８０８の終了処理へ進んで、温度制御を終了させる。上記第３実施形態において、偏差ｅの絶対値が閾値Ｔｈになった時点から、前記第２実施形態における第２段階〜第５段階の制御パターンを実施させ、最終出力値Ｗｅを学習させることができる。
【０１１１】
図１０のタイムチャートは、起動時に最終出力値Ｗｅよりも高い値にまで操作信号Ｗをステップ変化させる第３実施形態における、温度Ｔ及び操作信号Ｗの変化の一例を示す。図１０のタイムチャートにおいて、時刻ｔ１で温度制御が起動されると、そのときの制御対象の温度である初期温度Ｔｓに対応する最終出力値Ｗｅがテーブルから読み出され、この最終出力値Ｗｅに所定比率Ｒｓ１（Ｒｓ１＞１００％、例えば、Ｒｓ１＝１２０％）を乗算した結果を、第１起動出力値Ｗｓ１（Ｗｓ１＝Ｗｅ×１２０％）とする。
【０１１２】
そして、積分動作出力の初期値を前記第１起動出力値Ｗｓ１に設定することで、操作信号Ｗ（ＰＩＤ動作出力）を、ステップ的に第１起動出力値Ｗｓ１にまで増大変化させる。その後、偏差ｅの絶対値が閾値Ｔｈ以下になるまで、ＰＩＤ動作による操作信号Ｗの更新を停止させておく（制御定数ＫＰ，ＫＩ，ＫＤ＝０とする）ことで、操作信号Ｗ＝Ｗｓ１を維持させる。
【０１１３】
そして、偏差ｅの絶対値が閾値Ｔｈに達すると、前記最終出力値Ｗｅに所定比率Ｒｓ２（Ｒｓ２＜１００％、例えば、Ｒｓ２＝８０％）を乗算した結果を、第２起動出力値Ｗｓ２（Ｗｓ２＝Ｗｅ×８０％）とし、前記積分動作出力の値を前記第１起動出力値Ｗｓ１から第２起動出力値Ｗｓに切り換えることで、操作信号Ｗ（ＰＩＤ動作出力）を第１起動出力値Ｗｓ１から第２起動出力値Ｗｓにまでステップ的に減少変化させる。偏差ｅの絶対値が閾値Ｔｈになった時点で、積分動作出力の値を第２起動出力値Ｗｓに設定すると、ＰＩＤ動作における制御定数ＫＰ，ＫＩ，ＫＤ＞０として、その後、ＰＩＤ動作による操作信号Ｗの更新によって、実温度Ｔを目標温度Ｔｅに近づけるようにする。
【０１１４】
上記第３実施形態によれば、起動時に最終出力値Ｗｅよりも高い値にまで操作信号Ｗをステップ変化させるから、起動時に最終出力値Ｗｅよりも低い値にまで操作信号Ｗをステップ変化させる第１，第２実施形態よりも更に温度変化の応答性を改善することができ、また、偏差ｅに応じて、最終出力値Ｗｅよりも高い操作信号Ｗを最終出力値Ｗｅよりも低い値にまでステップ的に減少させるから、温度Ｔが目標温度Ｔｅを超えてオーバーシュートすることを回避できる。
【０１１５】
尚、前記第１〜第３実施形態は、温度出力素子３００を発熱させることで、初期温度Ｔｓから昇温させる温度制御（初期温度Ｔｓ＜目標温度Ｔｅ）を示すが、温度出力素子３００を吸熱動作させることで、初期温度Ｔｓから温度低下させる温度制御（初期温度Ｔｓ＞目標温度Ｔｅ）においても、第１〜第３実施形態のように、温度制御の起動時に前記起動出力値Ｗｓまでステップ変化させる制御を適用でき、同様な作用効果が得られる。
【０１１６】
また、上記実施形態では、偏差ｅの大きさに応じてＰＩＤ動作の制御定数ＫＰ，ＫＩ，ＫＤを可変とし、また、第１起動出力値Ｗｓ１から第２起動出力値Ｗｓへの切り替えタイミングを決定するが、例えば、温度Ｔの変化速度に応じて制御定数ＫＰ，ＫＩ，ＫＤを可変とし、第１起動出力値Ｗｓ１から第２起動出力値Ｗｓへの切り替えタイミングを決定することができる。
【０１１７】
更に、最終出力値Ｗｅに対する起動出力値Ｗｓの割合を決定する所定割合Ｒｓや、各段階でのＰＩＤ動作の制御定数（制御ゲイン）を、実際の温度制御で得られた温度変化における過渡特性（時定数、むだ時間、行過ぎ量、行過ぎ回数など）に応じて変更し、次回以降の温度制御で用いるようにすることができる。
【符号の説明】
【０１１８】
１００    温度制御装置
１０１    ＭＰＵ
１０２    ＲＡＭ
１０３    不揮発性メモリ
１０４    Ｄ／Ａ変換器
１０５    Ａ／Ｄ変換器
１０６    ドライバ回路
１０７    検出増幅回路
２００    温度検出素子
３００    温度出力素子
【図１】
0005579409.tif 000004
【図２】
0005579409.tif 000005
【図３】
0005579409.tif 000006
【図４】
0005579409.tif 000007
【図５】
0005579409.tif 000008
【図６】
0005579409.tif 000009
【図７】
0005579409.tif 000010
【図８】
0005579409.tif 000011
【図９】
0005579409.tif 000012
【図１０】
0005579409.tif 000013