PID制御におけるオーバーシュートの解決方法

このQ&Aのポイント
  • オムロンの温調器「E5CN」を使用して小型炉の試験対象物の加熱を行っていますが、設定温度まで昇温する際にオーバーシュートが発生しています。
  • 温調器がヒーターの出力を落とした後も炉の余熱が強く残っているため、試験対象物の温度が上昇し続けてしまいます。
  • オーバーシュートを抑えるためには設定温度の手前から出力を抑える必要があり、P・I・Dの値を適切に調整することが求められます。
回答を見る
  • ベストアンサー

PID制御時のオーバーシュート

オムロンの温調器「E5CN」を使用して、小型炉にて試験対象物(金属)の加熱を行っています。熱電対は、試験対象物に直接接触させ、耐熱布にて周囲を巻いています。 この状態でオートチューニングにて導き出したPID値(P:5、I:120、D:20)で昇温加熱すると、ほぼ確実にオーバーシュートしてしまいます。例えば設定温度が300℃だとすると、350℃くらいまでオーバーシュートします。 温度の上がり具合を見ている感じですと、温調器がヒーターへの出力を落としたあとも炉の余熱が強く残っているため、どんどん試験対象物の温度は上昇していってしまいます。 もっと早い時点でヒーターを弱めることができればオーバーシュートしにくいのではないかと思うのですが。。。 余熱での温度上昇も考え、設定温度の手前から出力を抑えていくには、P・I・Dそれぞれの値をどちらに振れば良いかご指導よろしくお願いいたします。

  • 科学
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • lumiheart
  • ベストアンサー率48% (1105/2302)
回答No.3

http://www.fa.omron.co.jp/guide/technicalguide/53/103/index.html Home>テクニカルガイド>技術解説>コントロール>電子温度調節器 概要 「P動作(比例動作)」 ここの動作グラフに示されている通り 比例帯を小さくするとハンチングします 大きくすると動作が遅くなります この比例帯と比例ゲインとは違います (同じものと誤解してる人は多い) http://www.fa.omron.co.jp/guide/glossary/meaning/3359.html http://fa-dic.mitsubishielectric.co.jp/faq/show/15721 http://www.miyazaki-gijutsu.com/series4/densi0932a.html この辺りを解説した資料は少ない 一般的に温度調節器に設定するのは比例帯です 圧力制御や流量制御に使うプロセス調節計には比例ゲインを設定します http://www.m-system.co.jp/mstoday/plan/mame/b_control/9904/index.html http://www.m-system.co.jp/mstoday/plan/mame/b_control/9809/index.html http://www.compoclub.com/products/knowledge/jidou_seigyo/jidou_seigyo2.html >オートチューニングにて導き出したPID値(P:5 直感的には10~20くらいじゃあなかろうか? >熱電対は、試験対象物に直接接触させ、耐熱布にて周囲を巻いています。 これはやってはいけない事です <制御性を悪くする原因 熱電対はヒーター直近に付けるべきでしょう 基本原則 制御するのはヒーター温度であってワーク表面温度ではない 熱慣性の問題でどうころんでもワーク表面温度は安定しない ワーク表面温度を厳密に制御したいのであれば カスケード制御する必要があります(温調器を2台使う) http://www.rkcinst.co.jp/techno/16/techno_16.htm 「3.カスケード制御による外乱応答の改善」 但し、カスケード対応の調節計はとてつもなく高価です 

fujikoro
質問者

お礼

回答ありがとうございました。炉内の雰囲気温度にてコントロールした方が良いかもしれませんね。勉強になりました。

その他の回答 (2)

  • tance
  • ベストアンサー率57% (402/704)
回答No.2

No.1の方の回答のとおりですが、ひとつだけ補足します。 オーバーシュートしないように調整すると、確かに遅くなることもありますが、本当はその方が速いということもあります。 オーバーシュートした場合としない場合で、目標値への到達時間を比べると、ゆっくり近づいても、一発で安定する方が、行き過ぎて戻ってくるより速いことがあるからです。特にハンティング(リンギング)を起こした場合は顕著になります。 きちんと応答特性を計測し、最も適したPIDを用いれば、いわゆるクリティカルダンピングの状態を作れて、最も速いセットリング時間を達成することができます。

fujikoro
質問者

お礼

作業の都合上、オーバーシュートは厳禁なので困っています。。。すこし時間がかかっても良いので、スムーズに設定温度に入るよう色々試してみます。ありがとうございました。

noname#249717
noname#249717
回答No.1

どのくらいの時間幅でオーバーシュートしているのか分からないのですが、 通常のヒータ昇温系ならハンチング(オーバー、アンダーの繰り返し振動)してないでしょうから、 300℃まで1分で高速昇温とかでなければ基本的にPI制御の範疇と考えていいと思います。 (まずはDは除外) その上で、まずは比例Pの値を小さくしてみるといいと思います。 最初は大きくずらして(今回の場合1ずつとか)あたりをつけてあとは微調整。 P値を小さくすることの副作用としては、 比例Pを小さくしすぎると、オフセットが生じます(目標値に達しないまま安定状態になってしまう)。 そのときに積分値Iが活躍します。 オフセットを埋めるためにIを大きくします。 このようにしてオーバーシュートをなくしつつ、目標値に近づけるという作業で いけると思います。 最後にこの方法でチューニングすると到達速度が遅くなるので アップさせたいときは、微分Dを小さくします。 が、温調器のサンプリング速度やヒータの応答が速くない場合が多いので オートチューニングの結果をいじらないことをおすすめします。 以上でこの制御系の限界だと思います。 ちなみにですが、PIDの各文字の意味を知っていると 調整の仕方がわかりやすいですよ。 P=Propotional 比例(目標値までの上昇傾き) I=Integral 積分 →入力電力積み上げ(目標値あわせ) D=Differntial 微分 →応答性(単独では意味がない、比例Pとの組合せで初めて意味を成す)

fujikoro
質問者

お礼

具体的なアドバイス、ありがとうございました。作業経験が未熟なもので、オートチューニングさえすれば上手くいくと簡単に考えていました。。。アドバイスを基にもう少しトライしてみます。ありがとうございました。

関連するQ&A

  • ヒーター容量の選定

    乾燥炉(密閉型)の製作を検討しています。(炉内温度分布±10度) 炉内空気を30分で常温から約200度まで上昇させたいのですが、 ヒーターを選定するにあたり、大体の計算として炉内空気の温度上昇に使用する熱量を計算すればいいのでしょうか。(放熱はとりあえず無視) 空気のみの加熱で検討すると、ヒーター容量がとても小さい計算結果となりましたがこれでよいのか不安です。今回の計算には空気加熱分だけではなく炉の内壁を構成する材質の温度上昇に使用する熱量も合わせて計算した方がいいのでしょうか。今回、空気加熱用のプラグヒーターで空気の加熱を考えていますが、炉の内壁を直接加熱することは考えていません。炉の内壁加熱の熱量も検討するなら炉内空気を目標温度にするため、加熱開始時は急激にヒーター温度を上げて炉内壁を目標温度にした後、炉内空気を目標温度にもって行かなければならないと思うのですが、考え方として合っていますか。温度分布精度も 目標値±10度を保てるか疑問です。ご教授ください。

  • PID制御の設定

    PIDパラメータの設定について教えてください。 レンジが0~50℃の温度調節器があり、PIDパラメータとして  P→3  I→10  D→1 と設定されています。 レンジを0~100℃の温度調節器に変更した時、同じ制御(操作量) をさせたいのですが、パラメータの設定値をいくつにすればよいのでしょうか? おそらく  P→1.5(レンジが倍になり敏感になるため1/2にする)  I→5  (レンジが倍になり鈍感になるため1/2にする) ではないかと思いますが、よろしいのでしょうか? また、Dについてはどう考えてよいのかわかりません。 よろしくお願いします。

  • PID制御について。

    制御においてPID制御というのがあるのですが、それらの調整法を教えていただきたいです。 ちなみにPID制御のPは比例動作、Iは積分動作、Dは微分動作です。 ブロック線図で入力と出力の計算をして、実際にコンピュータをつかってDCモータに出力を与えていました。

  • 炉壁からの熱損失について

    伝熱工学の穴埋め問題です。 一応問題全部を載せますが、聞きたいことは最後の一文だけです。 バッチ式加熱炉用のIとIIの2種類の同一形状炉壁について考える。 両炉壁材の熱伝導率は同一であるが、密度及び比熱だけは異なっていて、密度及び比熱は、ともにIの方がIIよりも大きいものとする。 Iの温度伝導率(あるいは熱拡散率)の値はIIの値よりも[1]いことになるので、炉壁の昇温速度はIの方が[2]くなる。 また、炉の温度が所定の一定温度に昇温するまでの炉壁蓄熱量は、Iの方が[3]くなる。 炉の温度が所定の一定温度に昇温した後では、炉壁からの熱損失は[4]なる。 答えは [1]小さ、[2]遅、[3]大き、[4]IとIIとで同一 です。 最後の一文の 炉の温度が所定の一定温度に昇温した後では、炉壁からの熱損失は[4]なる。 というところが分かりません。 どうしてIとIIと同じになるのでしょうか?

  • PID制御についての説明

    PID制御についての説明 P:5% 指示値が設定値より±5%以下の場合に設定値まで上昇させる数値? I:300秒 1回の信号を受けて比例制御で設定値まで上昇させる最大時間? D:10 設定値に近づいた時に、負荷を動作させ制御させる時間? 上記の内容は例(間違っていると思う)ですが、素人でも判る説明はどの様に記述すればよいかを教えて下さい。

  • PID制御の設定値について

    始めまして、ご質問ごとがあり投稿させていただきました。 自分が勤めている工場の機械についてです。 水を冷却ファンで冷やしているのですが、 その制御をPI制御を用いて冷やしております。 昨日、その機械の温調機の設定値を見ると (使用しているのは、 横河電機社の汎用形ディジタル指示調節計(温調計)UT35Aです。) SP        27.0度 PV        30.0度 温度幅  800℃ ~ ー200℃ P動作(比例動作) 50% I 動作(積分動作) 100秒 出力       4~20mA 出力先      ファン用インバーター となっておりました。 この時に始動時は出力が30~40%で 2~3時間かけて出力が100%となりました。 なぜこの様な動作をするかが分からずにご連絡いたしました。 P動作(比例動作) が50%なので、設定値より500℃変化しないと 出力が100%にならないと思っておりますが、実際は違いました。 お手数ですが、ご回答お願いいたします。

  • 電気炉の昇温・加熱効率を上げる断熱素材について

    最高温度400℃の電気炉を使用しています。 コンベアがついており、外部からワークを載せて内部で加熱、払い出しをしています。 今回、加熱するワークが変更になり、より短時間で加熱できるようヒーターをワークに近づけました。 その分、何も無いスペースができてしまい、無駄な空間になってしまいました。 このスペースを何らかのもので埋めてしまえばより昇温・加熱効率が上がると考えています。 この場合に適した素材はどんなものがありますか? 比較的簡単に入手・取り付けできるものが好ましいです。 埋めたいスペースは、W500×L900×H70程度です。

  • PID制御のサンプリング単位と制御出力の時間間隔

    水の中にヒータを入れ、PID制御のプログラムを書いて、温度制御しています。 ヒータの通電制御はSSRなので、実際はON/OFFしかできません。そのため、1秒のうちの通電期間と非通電期間の比率を変えています。例えば、50%の出力なら、ON0.5秒、OFF0.5秒です。50Hzなら1秒を50分割するため2%単位で出力を変更できます。 通電の比率はPID制御で、1秒毎にサンプリングを行って出力を計算しています。 今まで、通電の比率を変える間隔が1秒なので、PIDによる出力量の計算も1秒単位で行っていました。PIDの計算は位置型で行っています。 ですが、速度型PID制御なら、サンプリング期間のみの出力から制御対象の変化分だけの出力を行える、と気づきました。サンプリング期間をもっと短くし、それを1秒間積算した値を1秒毎に出力すれば、もっと適切な出力になるのではないかと、、 質問ですが、PID制御のサンプリング単位と制御出力の時間間隔は、同じでなくても良いですか? 世の中の温度調節器などはどうしているのでしょう? どうぞ宜しくお願いします。

  • 温度到達時間について

    アルミニウム(10~20μm厚)を250℃に加熱したいのですが、その到達時間を極力短くしたいと考えております。 方法として、加熱炉に入れる方法と加熱物(ヒーター等で熱した金属)を押し当てる方法を考えています。 実際どちらの方が早く目標温度に到達できるのでしょうか? 加熱炉と加熱金属は同一温度とした場合で考えたいのですが、簡単な理屈等を教えていただけると幸いです。 よろしくお願いします。

  • PID制御について

    色々なHP等を見て分かりやすくPID制御プログラムを組み モータを駆動しているのですが友人も違った式でPID制御を実現して おり実現したプログラムのkp,ki,kdをこちらのkp,ki,kdに入れて見た所 どうも違った動きをしており不安になったので質問させていただきました。 よろしければご教授ください。 //// 各成分の計算 //// // Pパラメータ // iP = Kp * def; /* 定数 * 偏差値 */ // Iパラメータ // iI = Ki * def_inte; /* 定数 * 偏差累積値 */ // Dパラメータ // iD = Kd * (def - def_before); /* 定数 * 今回の偏差-前回の偏差 */ iRet = iP + iI + iD;    /*iRet = 出力duty*/