PID制御というのは結構難しい話である。
ので、まず、それより簡単なあたりから話を始めることにしよう。 ある目標温度に温度を設定する一番単純な手法はON-OFF制御である。今の場合は(原理的には)ホットステージの温度が目標より低い場合にはヒーターをONにして、目標を超えたらOFFにする。 ON-OFF制御の説明はこれで十分ではあるけれども、どのような動作をするかは実際にシミュレーションをして試してみないことには実感をともなって理解できないと思う。という訳で、エクセルファイルを用意した。 と記すと「おいおいエクセルかよ」とブーイングが来そうである。確かに、エクセルなんか使うよりはScilabあたりを使うのが筋なのは分かっている。でも、普通の高校生さんが使っているPCにエクセルが入っていることはあってもScilabは入っていないように思う。もちろんScilabはフリーソフトだから、それのインストールから話を始めてもいいのだけれど、とりあえず、手元に使える道具があるなら、まずはそれを使ってできることをやるのは悪くはないと思う。また、エクセルのグラフは、パラメータを変えると連動して変化するので、パラメータの役割を感覚的に眺めるのには都合がよい。 エクセルファイルのスクリーンショットを図に示す。 左側がパラメータ欄、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℃にすると と、ステージの温度が単調に下がるようになる。 さて、計算の論理だけれど、温度のセル、たとえば、上から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のままで順調に温度が上がるけれど、 E214で温度が目標を超えるために、F214は0となり、それを用いたE215では放熱のみが寄与するので、温度が低下する。すると、温度が100℃未満に低下するために、再び昇温する。 シートを見れば分かるように、ON、OFFは繰り返し起こるために、温度は上下動を繰り返す。グラフに描くと それを見やすくするために、グラフのスケールを替えてみた。 さて、ヒーターパワーや熱容量が変わるとどうなるのか、それは次回に。
by zam20f2
| 2010-05-02 18:28
| 科学系
|
Comments(0)
|
リンク
お気に入りブログ
カテゴリ
タグ
SCI(841)
道具(405) 組織写真(314) プロジェクトT(216) 顕微鏡(180) Ch(130) 散歩(119) 製図(99) N相(70) キラル(65) のほのほ(57) Sm相(48) 表面・界面(42) プロジェクトLC(40) B/W(30) Iso相(30) 新興織物撰集(21) SmA相(20) 結晶相(12) 転傾(11) 最新のコメント
記事ランキング
以前の記事
2024年 03月
2024年 02月 2024年 01月 2023年 12月 2023年 11月 2023年 10月 2023年 09月 2023年 08月 2023年 07月 2023年 06月 2023年 05月 2023年 04月 2023年 03月 2023年 02月 2023年 01月 2022年 12月 2022年 11月 2022年 10月 2022年 09月 2022年 08月 2022年 07月 2022年 06月 2022年 05月 2022年 04月 2022年 03月 2022年 02月 2022年 01月 2021年 12月 2021年 11月 2021年 10月 2021年 09月 2021年 08月 2021年 07月 2021年 06月 2021年 05月 2021年 04月 2021年 03月 2021年 02月 2021年 01月 2020年 12月 2020年 11月 2020年 10月 2020年 09月 2020年 08月 2020年 07月 2020年 06月 2020年 05月 2020年 04月 2020年 03月 2020年 02月 2020年 01月 2019年 12月 2019年 11月 2019年 10月 2019年 09月 2019年 08月 2019年 07月 2019年 06月 2019年 05月 2019年 04月 2019年 03月 2019年 02月 2019年 01月 2018年 12月 2018年 11月 2018年 10月 2018年 09月 2018年 08月 2018年 07月 2018年 06月 2018年 05月 2018年 04月 2018年 03月 2018年 02月 2018年 01月 2017年 12月 2017年 11月 2017年 10月 2017年 09月 2017年 08月 2017年 07月 2017年 06月 2017年 05月 2017年 04月 2017年 03月 2017年 02月 2017年 01月 2016年 12月 2016年 11月 2016年 10月 2016年 09月 2016年 08月 2016年 07月 2016年 06月 2016年 05月 2016年 04月 2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 06月 2015年 05月 2015年 04月 2015年 03月 2015年 02月 2015年 01月 2014年 12月 2014年 11月 2014年 10月 2014年 09月 2014年 08月 2014年 07月 2014年 06月 2014年 05月 2014年 04月 2014年 03月 2014年 02月 2014年 01月 2013年 12月 2013年 11月 2013年 10月 2013年 09月 2013年 08月 2013年 07月 2013年 06月 2013年 05月 2013年 04月 2013年 03月 2013年 02月 2013年 01月 2012年 12月 2012年 11月 2012年 10月 2012年 09月 2012年 08月 2012年 07月 2012年 06月 2012年 05月 2012年 04月 2012年 03月 2012年 02月 2012年 01月 2011年 12月 2011年 11月 2011年 10月 2011年 09月 2011年 08月 2011年 07月 2011年 06月 2011年 05月 2011年 04月 2011年 03月 2011年 02月 2011年 01月 2010年 12月 2010年 11月 2010年 10月 2010年 09月 2010年 08月 2010年 07月 2010年 06月 2010年 05月 2010年 04月 2010年 03月 2010年 02月 2010年 01月 2009年 12月 2009年 11月 2009年 10月 2009年 09月 2009年 08月 2009年 07月 2009年 06月 2009年 05月 2009年 04月 2009年 03月 2009年 02月 2009年 01月 2008年 12月 2008年 11月 2008年 10月 2008年 09月 2008年 08月 2008年 07月 |
ファン申請 |
||