日々の記録

ほどよく書いてきます。

マイコンPI制御、おっとっと

2014年04月27日 02時35分17秒 | AVR

失敗は成功の元といいましょうか、一発目での成功はなかなかありませんね。
マイコンPI制御のいろいろをデータログとって見ると気がついたことが。目標値と現在地の差分、ヒーター出力が直線にのってるんじゃないかと。それってただのP制御じゃ・・・・

 

係数をあまりにも適当に決めたのが原因だったようだ。ちょっと考えて、係数を決めてみたらある程度ヒステリがでるので、積分項が動いているのだろうということがわかった。

 

 

今は積分項の時定数が大きすぎて収束が遅い→また変更。

ヒーターの上に布をかけたり、はずしたり、また布をかけて夜の間放置してみたり。とりあえず温度は一定値になっているようです。ちっとオーバーシュートおおきい。

制御初期の状態を見てみると・・・

先の比較とは違うが、温度とヒーター出力のグラフをとってみると、直線ではないので、ちゃんとI制御が入っていることがわかる。
赤い線は大体この辺に落ち着くだろうという温度。30度を目標にしたのだが、ArduinoのADCがずれているのかオペアンプがずれているのか、まあ、多少誤差はあるだろう。

温度がノイジーな箇所があるが、P制御が0か1かばたついたとき、制御に対しては差分の3倍の制御量を入れているので、PWMが3/255(=1%)変動するの原因だろうかと思ってPの制御が0になる範囲をある程度広げてもいいのかなって。

横軸入力で縦軸出力だとこんな感じで。

 

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

温度制御(マイコンによるPI制御)

2014年04月20日 13時35分57秒 | AVR

りんごは人工授粉をしてやらないといけないが、葯から花粉を取り出すのに25℃一定で一日おいてやる必要がある。
4月下旬だと愛知はもう暖かいが、地元長野北部はまだ寒いのでヒーターが必要。今までは白熱電球なんかで暖めていたようだが、せっかくならと温度調節機能があったほうがいいだろうと。
回路図載せても、結局はマイコンのプログラムがキモなので意味がないかもしれないが・・・

P0は温度のモニター箇所、P1はヒーター出力の状態モニター。

温度センサーはLM35DZを使います。25℃で250mV出力なので、マイコンのADCでも十分に拾えそうだが、なんとなく10倍にしてみた。こっちのほうがP制御の分解能が高そうだから。

ところが、実験しようとおもったら、室温が25℃にきわどい所でしたので目標値を35℃にして実験してみた。データロガーはArduinoマイコンボードで作った。ひたすらデータをPCに送り続けるようにしてデータロギング。


まあ、悪くはないでしょう。今回の系ではオーバーシュートは1℃未満の様子。ヒーターの出力はチラチラ変動があるようです。
20分弱の所、ヒーターに息を吹きかけてみました。ちょっと温度が下がって、出力が増大しています。ヒーターの出力変動は室内の微妙な風などの影響かもしれません。

 

次に気になるのは長時間放置での様子。上記のデータ、寝ている間も記録を続けました。朝方にかけてやや気温が低下傾向ですが、その分ヒーター出力が増大し、ヒーター部分の温度はある程度安定しているようです。ちょっと温度下がっているけど、目的が花粉の開葯なので問題ないでしょう。

 

実家に帰れば気温15℃程度、保温目標値25℃程度でしょうから、こんな制御でよさそうです。

プログラムのコードは色付けるのが面倒くさいので画面キャプチャ。

 

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする