温度調整(1) (自宅でできる液晶観察11)

PID制御というのは結構難しい話である。



ので、まず、それより簡単なあたりから話を始めることにしよう。
ある目標温度に温度を設定する一番単純な手法はON-OFF制御である。今の場合は(原理的には)ホットステージの温度が目標より低い場合にはヒーターをONにして、目標を超えたらOFFにする。
ON-OFF制御の説明はこれで十分ではあるけれども、どのような動作をするかは実際にシミュレーションをして試してみないことには実感をともなって理解できないと思う。という訳で、エクセルファイルを用意した。
と記すと「おいおいエクセルかよ」とブーイングが来そうである。確かに、エクセルなんか使うよりはScilabあたりを使うのが筋なのは分かっている。でも、普通の高校生さんが使っているPCにエクセルが入っていることはあってもScilabは入っていないように思う。もちろんScilabはフリーソフトだから、それのインストールから話を始めてもいいのだけれど、とりあえず、手元に使える道具があるなら、まずはそれを使ってできることをやるのは悪くはないと思う。また、エクセルのグラフは、パラメータを変えると連動して変化するので、パラメータの役割を感覚的に眺めるのには都合がよい。
エクセルファイルのスクリーンショットを図に示す。
c0164709_18245110.gif

左側がパラメータ欄、D列が時系列、E列が温度。F列がヒーターパワーで、1がヒーターON、0がヒーターOFFである。そして、G列が室温との温度差、H列が目標値との温度差である。
一方、パラメータは、室温、初期温度、目標温度、ステップ係数、熱容量、放熱係数、ヒーターパワーである。ステップ係数は、時系列1コマあたりの間隔を調整するための係数である。
放熱係数は、ホットステージと室温の温度差がΔTの時の単位時間の放熱量である。実際の放熱量はΔTに比例ではなく、もっと複雑な関数になっているはずだけれど、ここではΔTに比例するとして、その比例係数として与えている。
ヒーターパワーを入れると、ヒーターパワー係数が計算される。ヒーターパワー係数は、ヒーターが連続ONの時に、ちょうど目的温度で釣り合う場合が1である。従って、パワー係数が1未満の場合には、ヒーターをつけっぱなしでも目的温度には到達できない。ヒーターパワー係数のセルは数値ではなく
=B15/((B3-B1)*B11)
という計算式になっている。
熱容量係数は、ホットステージの熱容量のヒーターパワーに対する割合で、1の場合に、熱容量がヒーターパワーと等しくなる。というわけで、熱容量係数のセルには
=B9/B15
という式が入っている。

このワークシートでは-101から0まではヒータ出力が0で1からヒーター出力が出る設定になっている。このため、-101から0までは温度が一定だが、これは、単に初期温度と室温が等しいためで、たとえば、初期温度を100℃にすると
c0164709_18254845.gif

と、ステージの温度が単調に下がるようになる。
さて、計算の論理だけれど、温度のセル、たとえば、上から2番目のE3には
=E2+$B$5*(F2*$B$15-G2*$B$11)/$B$9
という計算式が入っている。最初のE2は一つ上のセルの温度である。そして、+以降の式が、一つ上との温度差を与える部分である。$B$5はステップ係数である。単純にB5としていないのは、ここをB5とした、
=E2+B5*
という式だと、E3のセルの内容をE4にコピーするとセルの式が
=E3+B6*
となってしまい、ステップ係数がかからなくなるためである。$マークは絶対参照といって、セルをコピーしたり、行を挿入してもその場所を保持したい場合に用いる。今の場合B$5と記して、B列の方は絶対参照をしなくてもよいのだけれど、発作的に列を挿入した場合でも問題が生じないように、列の方にも絶対参照記号をつけている。さて、計算式に戻ろう
=E2+$B$5*(F2*$B$15-G2*$B$11)/$B$9
+$B$5*は、一つ前の状態でヒーター出力をどうするかを定めるF2にヒーターパワーを掛けた項と一つ前の温度差に放熱係数を掛けた項になっている。前者がホットステージに加わる熱量で、後者が減少する熱量である。この括弧の中で熱量の収支が求められ、それを熱容量で割ったものが温度変化分となる。
ヒーター出力は時系列が-1までは0だが、0以降は式で与えられる。ちなみに、時系列0のF103の内容は
=IF(H102>=0,1,0)
である。ここで、IFという演算子が入っているが、これは、括弧内の最初の部分の式が正しかったら、コンマの次の値を、正しくなかったら最後の値を出力する命令である。今の場合、H102は一つ前の目標と現在温度の差であり、これがプラスだと現在温度は目標以下、マイナスだと現在温度は目標以上となる。初期温度が20℃で室温が20℃ならH102は80なので、H102は0以上であり、F103の値は1となる。一方、G103は0なので、それらより計算されるE104は1℃の上昇となる。続いて、F104は1だが、G104も0ではない値となり、放熱が生じるので、E105の値はE104より1℃より小さくなり、21.99375度となっている。
この後、F列は1のままで順調に温度が上がるけれど、
c0164709_1827893.gif

E214で温度が目標を超えるために、F214は0となり、それを用いたE215では放熱のみが寄与するので、温度が低下する。すると、温度が100℃未満に低下するために、再び昇温する。
シートを見れば分かるように、ON、OFFは繰り返し起こるために、温度は上下動を繰り返す。グラフに描くと
c0164709_18274788.gif

それを見やすくするために、グラフのスケールを替えてみた。
c0164709_1828121.gif


さて、ヒーターパワーや熱容量が変わるとどうなるのか、それは次回に。
[PR]
by zam20f2 | 2010-05-02 18:28 | 科学系 | Comments(0)
<< 写真撮影 (自宅でできる液晶観... 寄り道の言い訳 (自宅でできる... >>