ブログトップ

電子工作やってみたよ

PID制御 オートチューニングとシュミレーション

昔 電気炉の温度制御をやっていて そのPID定数の設定に四苦八苦していました。
その後PID制御もアナログ回路からマイコンの演算でやり PID制御定数も制御機自身でオートチューニングで求めることが出来るようになりました。
いまインターネットで ”PID制御 オートチューニング” で検索するとたくさん出てきますね。
メーカーのものや大学のレポートなどみな難しい数式などでていねいに(?)説明してあり私には理解することが難しいです。

今回 回路シュミレータに置き換えてオートチューニング から PID制御まで遊んでみます。
定性的だったり現実とかけ離れた数値でやっても役に立たないので 最初は実際の電気炉をオートチューニング動作させて種データを取ります。 方法は目標温度を設定しておいてON-OFF制御を行い発信周期と温度の振れ幅を求めます。
実物電気炉は 100V 1kW 1000℃まで 熱電対はK(CA)というものを使用しました。 制御回路が何も無いので人力(じんりき)で実験をしました。  目標温度以下ではコンセントを入れ目標を超えたらコンセントを抜くという方法を何回か繰り返してデータを取りました。 
目標温度 350℃ 周期は28秒  ハンチング幅は7.5℃でした。

c0335218_21514939.jpgc0335218_21512352.jpg























c0335218_21511715.jpg



























使用した回路シュミレータはマイクロネットのサーキットビュアVer4.0を使いました。  ちょっと制約のあるものが ただでダウンロードできます。  回路シュミレータはいくつも発売されていますが これが最高だと思います。 とにかく使い方が簡単で必要な部品は必要最小限に揃っています。 ライブラリーなどの下準備に時間をとられること無くちょっと疑問に思ったことはすぐ回路図を描いて試すことができます。
電気炉の応答特性は3次遅れときめて 実際の応答に近づくように定数を変えては試すことをくりかえします。 
1000℃を10Vとしたのでハンチング幅7.5℃は0.075Vとなります。
なぜ3次遅れにしたかというと 2次遅れでは位相遅れは180度しかならず発信が持続せず現実とは合いません。 4次以上では変数が多くなって手間が大変です。 そこで横着してかつ現実的な必要最小限ということで3次遅れに当てはめてやってみました。 得られた定数は 50秒 50秒 0.5秒 でした。  これで実物の実験で得られた値にほぼ近い形になりました。  コツとしては 大きい値は2つ一緒に変えて周期を設定し 一つだけ小さい値でハンチング幅を調整するのがやりやすいように思います。

c0335218_21513957.jpg







c0335218_21513093.jpg

オートチューニング動作から得られた値からPID定数をきめます。 以下のことはあくまで私流のやり方です。 自分流のやり方を作るのがよいと思います。  
(ハンチング幅/制御機のフルスパン)*3*100 = 最適Gain
現実の値を代入してみます。
(7.5 / 1000) * 3 * 100 = 2.25
PID制御回路部の入力は 熱電対で1000℃=10V  です。  出力はヒーターパワー1000とします。  入力偏差1℃のとき出力2.2%を出すのを制御回路のGainとして上の数式を作りましたので
1/1000 かける ある値 = 2.25/100
0.001 X = 0.025 となり X=22.5  これがP定数のGainとなります。
次 積分定数はハンチング周期の半分が具合良かったので 28秒*0.5 = 14秒とします
次 微分定数は積分定数の4分の1として3.5秒としました。

以上の値入れて回路を構成したのが上記の回路図です。 オシロ画面では一番上(緑)が 目標値を0V(0℃) 1V(100度)の間で繰り返したものです。   
その次(紫)が電気炉の熱電対の出力です。  動作させてみて25%減衰でうまく動作しているのが分ります。

今回の反省点
ブログ上で回路図が小さくなって数値定数がまったく見えない またブログ上での数式の表示 いい方法ありませんか。
ヒータによる加熱はプラス方向には行くけれどマイナス方向には行かないはずなのでその条件を加味する。

この回路シュミレータ 物理や機械 政治などあらゆるものに使えるのでないですか?。
こころの問題などこんなのでシュミレートできたら面白いとおもいます。 どなたかトライしている人いますか。
ブログ作り始めて一週間 見にくくてすいませんでした。
私のやり方 おかしなところが有りましたら御意見 よろしくお願いします。




トラックバックURL : https://telmic.exblog.jp/tb/22754839
トラックバックする(会員専用) [ヘルプ]
Tracked from Saudi at 2018-08-16 07:38
タイトル : K SA
PID制御 オートチューニングとシュミレーション : 電子工作やってみたよ... more
Tracked from KSA at 2018-08-16 14:28
タイトル : K SA
PID制御 オートチューニングとシュミレーション : 電子工作やってみたよ... more
Tracked from Saudia at 2018-08-16 18:17
タイトル : Saudi
PID制御 オートチューニングとシュミレーション : 電子工作やってみたよ... more
Tracked from Saudia at 2018-08-16 23:00
タイトル : Saudi
PID制御 オートチューニングとシュミレーション : 電子工作やってみたよ... more
Commented by jq1ocr at 2014-10-10 01:39
数式ですが, inline-LaTeX のサービスがいろいろあるので,それを使うといいと思います.例えば

<img src="http://www.codecogs.com/eq.latex?P_{d}=\frac{G_{t} P_{t}}{4 \pi d^2}"/ >

とか記事内に貼ってみてください.ただ TeX を使ったことがないと結構面倒くさいと思うので,MathType とかで書いたものを画像で貼るのが次善の策かと思います.
Commented by 高井 at 2014-10-10 21:50 x
JQ1OCRさん ありがとうございます
どちらも 初めて知りました。 勉強してみます。たぶん画像で貼り付けになるのでしょうか。 難しい所は指数の表示と分数ですね。
回路図と写真の方は どちらも同じjpgですが オシロ画面は大きいのに回路図は縮小されているようです。 いろいろ試してみます。
しかし コメント書き込まれたのは夜中の01:39ですか?
私には とても起きていられない時間です。ありがとうございました。
Commented by jq1ocr at 2014-10-10 22:05
回路図が小さくなってしまうということに関しては余白部分をトリミングして 300px 程度に入るくらいで書くことを標準とするのがよいと思います.あとは開き直って最初からクリックして開いてもらうつもりで書くかですかね.

数式に関しては,TeX は使ったことがないと結構面倒くさいかも知れません.まあ文章中で使うくらいのタグなら html と大して変わりませんが.ちなみに指数は inline TeX を使わなくても html タグだけで簡単にできます.例えば m(ミリ)の 10^-3 なら,
10<sup><small>-3</small></sup>
と書いてみてください.コメント欄ではタグが使えないので,そのまま見えていると思いますが,記事を投稿するところでは使えると思います.お試しください.

ところで PID 制御といえば,エスプレッソメーカーを改造して PID 制御することで美味しいコーヒーが入れられるというのを見たことがあります.自分もエスプレッソメーカを持っているのですが,美味しいのをいれたいので,もうちょっと勉強してから是非 PID 制御もやってみたいと思っています.

あと書き込み時間に関しては日によって宵っ張りなだけです.逆に早朝は苦手です.苦笑
Commented by すがわら at 2014-10-11 07:48 x
実際にソフト化してみると、温度変化ピークの見切りが難しいですね。制御そのものは簡単なんですけど。
Commented by 高井 at 2014-10-12 09:35 x
JQ1OCRさん ありがとうございます。
写真や図面のところ Wクリックすると大きく表示されるのですね。
恥ずかしながら いままで知らなかったです。
オリジナルの分解能まで拡大されるようですので詳しく知りたい人は
クリックで済むから とりあえずこれで良しということで ありがとうございました。 数式表示の方は勉強して挑戦してみます。
エスプレッソメーカーですか。いろいろ本物志向なのですね。
ぜひ おいしいコーヒーに挑戦してみてください。

すがわらさん ありがとうございます。
オートチューニング 今回見ているのは、周期とハンチング幅だけですが プラス側時間とマイナス側時間、温度上昇の傾き、下降の傾き(この辺は電気炉周りの断熱のやり方で違ってくるでしょう)
などいろいろなパラメータを読み取りそれを加味したPID制御のやり方にすればさらに良い制御が出来るでしょうね。
本物では時間かかって不可能でもシュミレータを使えすぐ試せそうですね。

土蔵の中から昔いじったH68TRが出てきました。しかし動かない。
トライしてまたブログに載せます。

名前
URL
削除用パスワード

※このブログはコメント承認制を適用しています。ブログの持ち主が承認するまでコメントは表示されません。

by telmic-gunma | 2014-10-09 10:19 | PID制御 オートチューニング | Trackback(4) | Comments(5)