• ベストアンサー

PID制御

基本的な話だと思います。 PID制御が比例帯、積分時間要素、微分時間要素で出来ているのはわかるのですが、PID制御の基本式からなぜ積分時間要素が偏差をなくすということがいえるのかがわかりません。比例、微分は怪しいですが理解できました。どなたか教えてください。お願いします。

  • 科学
  • 回答数4
  • ありがとう数2

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

  • ベストアンサー
回答No.1

数式を使わず、定性的に説明するのは結構難しい事項ですが、挑戦してみましょう。調節弁で流量制御をしているとします。 まず、比例制御だけでは理論的に定常偏差が無くならないということが前提となります。既に長時間経って平衡した状態を考えると、流体が流れているということは調節計から調節弁に何らかの出力信号が出ているのは明らかです。比例制御において出力信号が出ているということは入力信号が零ではない、つまり、制御量<目標値ということで、この差が定常偏差です。 この定常偏差を零にするためには、別のところから現状の出力信号に加えて更に何分かを加えた出力信号を出してやる必要があります。これらを出すのが積分要素の役目です。積分要素は過去の偏差を蓄えていて、偏差が有る限り少しずつ増加してゆきますが、制御量が目標値と一致したところで加算をやめて、その時の積算値をこの後も維持します。これが調節計の出力となります。この状態に上手く収まればすべてOKですが、積分時間が短すぎると行き過ぎるし、積分時間が長すぎると積算量が足らず、何時までも定常偏差が解消しません。よって最適な時定数に前もって調整しておくことが重要です。 こんな説明でご理解頂けたでしょうか。

daiki725
質問者

補足

回答ありがとうございます!式的説明をお願いしたいのですが無理でしょうか? 自分なりに昨日また考えたのですが、積分は偏差を積分し、積分時間で割っているので高さがでるのでそれを足したり、引いたりすることで調整しているということでしょうか?

その他の回答 (3)

回答No.4

[訂正]dtがぬけていました。 Y(t)=(100/PB)[Y(t-dt)+{SP-PV(t)}dt/Ti]  積分要素出力

回答No.3

PI制御の計算式(実際の計器内部の演算の模擬式)は次のようになります。微分動作は省略します。この式を見ると積分の中身がよく理解できるはずです。 (設定値:SP 制御量:PV(t) PB:比例帯 Ti:積分時間)  *init t=0:X(t)=0:Y(t)=0:Z(t)=0 *loop t=t+dt   X(t)=(100/PB){SP-PV(t)}        比例制御出力   Y(t)=(100/PB)[Y(t-dt)+{SP-PV(t)}/Ti]  積分要素出力   Z(t)=X(t)+Y(t)             計器出力 repeat *loop SP>PV(t)の時は、X(t)もY(t)も出力がでています。これによって、PV(t)はSPにだんだんと近づくとします。(これは制御がうまく出来る場合のことです。) 偏差が小さくなるにつれて、X(T)の出力も小さくなってゆきます。 Y(t)は少しづつ大きくなってゆきますが、偏差が小さくなるにつれて積み増す量が小さくなるので、直線的な増加ではなく、段々と勾配がゆるくなります。 ついに、SP=PV(t)となったとき、X(t)=0、Z(t)=Y(t)=Y(t-dt)となります。

daiki725
質問者

お礼

とても詳しい回答ありがとうございました。 とてもよく理解できました♪ お世話になりました!!

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.2

#1さん文章で書かれていることを数式で表現すると、 調節弁の駆動力(操作量)をu、流量をF,流量の基準値をF0とすると、 P制御だと u=Kp(F0-F) で駆動力(操作量)が0でない限り、必ず偏差(F0-F)が必要 PI制御だと u=Kp(Fo-F)+Ki∫(F0-F)dt で、定常状態でu、F0,Fが一定として、この式を微分すると du/dt=Kpd(F0-F)/dt+Ki(F0-F) du/dt=0, d(F0-F)/dt=0 なので、(F0-F)=0すなわち定常偏差0 というような説明になるかと思います。 (積分は、入力が0の場合、一定の出力を保持し続けます。)

daiki725
質問者

お礼

とても詳しい回答ありがとうございました。 とてもよく理解できました♪ お世話になりました!!

関連するQ&A

  • PID制御

    PID制御に関して学習しようと思っていると下記のような説明がでてきました。 >>積分時間TI は、ステップ偏差を与えたとき、P制御による操作信号>>変化に相当する操作信号変化をI制御のみで発生させるために必要>>な時間ということになります。したがって、積分時間TI を小さく>>すればするほど積分制御の影響が強くなります。 この意味が良く分かりません。なぜ積分時間を短くすればするほど、制御の影響が強くなるのでしょうか?? 比例制御と微分制御は理解できたのですが、積分制御に関しては上手く理解できていません。どなたかご教示願います。

  • PID制御について

    比例制御・積分制御・微分制御がどういうシステムに使われているかを教えてください。 またそれらを複合したPI制御、PD制御、PID制御について教えてください。

  • PID制御について。

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

  • PID制御について

    下記の「モータ制御の仕方」を見ています。 http://www.picfun.com/motorframe.html このPID制御によりヒータの制御をしたいと 考えています。 しかし定性的に理解できない点があり、皆様のお知恵をお借りしたく質問させていただきました。 PI制御において 結果的に操作量Vのとき現在値が目標値に達し、その状態を維持できると仮定します。 現在値が目標値になったときは 1.偏差が0になるので比例項は0になります。 2.そうすると操作量Vを維持するものは積分項のみとなります。 3.最適に制御された場合ということは目標値に達したとき積分項の値がVです。 4.もし3.での積分項の値がVより大きければ必ずオーバーシュートが発生して   -偏差が発生し積分項を減らしVに近づきます。 という考えでよいのでしょうか? よろしくお願いします。

  • PID制御におけるセンサ

    実際にPID制御をあるプラントに対して施したときに、I、Dの制御に必要な、状態量の積分量、微分量は、普通コントローラの中でもとの量から積分したり微分したりして数値計算で求めてるものなのでしょうか?それともそれを測定するセンサによって得られるものなのでしょうか? 要するに、たとえば位置を制御するためにPID制御を採用したとき、、って考えるとやっぱり計算でだしてるんですかね。(位置の積分量を計るセンサって意味わかんないし、速度センサって意外となさそう。。) 実際の現場で使用されているPIDコントローラがどうなっているのかが知りたいです。どなたか詳しい方、回答していただけると幸いです。

  • PIDコントローラについて知りたいのですが

    PIDコントローラを授業で学んだのですが、回路図がないためにどのような回路で構成されているか知りたく、ネット、制御工学の参考書を調べてみたのですがわかりませんでした。 比例動作、微分動作、積分動作を組み合わせるということは、微分回路と積分回路をつなげてあと抵抗をつなげるのだと思うのですが、どのようにつなげるか、またそれで考え方が正しいのかがわかりません。 もしよろしければ教えてください。

  • PID制御のプログラミング3

    油圧モータを電流比例弁を介して目標回転数に合わせこむ ソフトを検討しております 制御はPID制御を使います PID制御の書籍を何冊か見ましたがブロック線図の説明止まりで 具体的な計算式やプログラミングまで落とし込んだ書籍が見当たりません。 PID制御は各方面で使われており、ハッキリ言ってしまえば 定石のプログラミングも存在していると思います どなたかご教示お願いいたします 特に積分 微分のPGM計算式への展開の仕方がわかりません ----------------------------------------- コントローラはH8マイコン PGM言語はCです モータの回転数を回転センサ→fv変換→電圧入力しています コントローラ電流→ 制御弁油圧出力 → 油圧モータ回転 制御周期は1秒を予定しています

  • 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*/

  • PID制御のプログラミング2

    先ほど、PID制御のプログラミングについて質問したのですが、もう少しわからないところがあるので教えてください。 1.ステップ応答から各パラメータを求める方法   http://www.picfun.com/motor05.htmlのページの一番下のほうに書かれており、   Kiの値=0.6~0.7/KL、Kdの値=0.3~0.45T/Kとなっています。   このLとTの単位は[sec]と考えていいのでしょうか。   KpはLとTで打ち消されて、単位を考える必要ないですが、KiとKdは単位により結果が違います。 2.サンプリングデータにより制御する場合のサンプリング時間について上記アドレスにPID制御のアルゴリズムの説明があるのですが、   サンプリング時間が考慮されていません。   サンプリング時間により前回の偏差との差や、積分の場合足しこむ回数が違ってくると思うのですが、どのように補正すればよいですか。   このときも単位を1[sec]秒として補正すればよいでしょうか。

  • 遅れ時間の多い系でのPID設定を教えてください。

    実験で反応フラスコの温度調節をPID温度調節計でしています。 遅れ時間が多く(加熱とまっても1分ほど上昇し続け、加熱に転じても 30秒ほど下がり続けます。) PID制御をしてもオーバー・アンダーのサイクリングを繰り返します。 このような時のPID設定はどうしたらよいでしょうか? オートチューニングにしてもあまり改善できませんでした。 現在の設定は下記のとおりです。積分は長めとか方向性だけでも良いので教えてください。 設定値120度積分300秒微分100秒比例帯幅5度 で+-8度 くらい振れています。