hirax.net::Keywords::「積分」のブログ



2008-07-26[n年前へ]

Simulinkで”日焼け対策”を最適化 Vol.1 [はじめに 編] 

 先日、Mathematicaで肌の色や日光の色スペクトルを表現するためのライブラリを作り、いくつか計算をしてみました。また、昨日は、「日焼けに影響を与える日照時間」の変化・「気温の変化」「化粧品の商品切り替え時期」「日焼け対策を行う時期」について考えてみました

 そんなことを考え出すと、究極の”日焼け対策”・至高の”日焼け対策”はどういう風にすれば良いだろうか、という技術的な興味が湧いてきます。もちろん、外に一切出ない・顔には紫外線反射膜をコーティングする、といったような対策もあるわけですが、そんな対策をしても「そんな毎日でいいのか?」という疑問を感じるに違いありません。やはり、色々な観点を含めた上で、それらの観点を少しづつ満たすような”日焼け対策の最適化”を考えなければならないように思われます。

 そこで、Simulinkを使って、(動的なシステムのモデル化・制御システム構築・プロトタイピングを簡単に行うことができる)MATLAB社のSimulinkで”日焼け対策”を最適化に挑戦してみたくなりました。そこで、今日はまず[はじめに]ということで、平均日照時間と平均気温をSimulinkでグラフ表示してみました。

とりあえず、下の微分方程式のように平均気温(TEMP)の変化は平均日照時間(SUN)に比例するとおくと、

d TEMP /dt = SUN
平均気温は平均日照時間を積分したもの、ということになります。そんな関係をSimulinkでモデル化し(数値はまだ合わせていません)、グラフ表示してみたのが下の図です。気温が日照時間に対する「位相遅れ」を持っていることがわかります。

 ・・・と、ここまでは当たり前の結果ですが、こんな感じで「日焼け対策の最適制御」について色々考えていこうと思います。

Simulinkで日焼け対策






2009-09-29[n年前へ]

PIDチューニング機能を追加したSimulink Control Design 

 MathWorks、PIDチューニング機能を追加したSimulink Control Designの新版を発売

 米MathWorks社(マスワークス、マサチューッセッツ州ネイティック)はこのほど、PID(比例・積分・微分)コントローラのチューニング処理を自動化する機能を追加した「Simulink Control Design 3.0」を発売した。Simulinkの新しいPID Controllerブロックも同時にリリースする。
 新バージョンのチューニングアルゴリズムは、必要な位相余裕とシステム帯域幅にもとづきPIDコントローラのゲインを自動的に計算する。また、新しい PID Controllerブロックを使用することにより、PIDコントローラを迅速に作成でき、PID構造の選択、積分器アンチワインドアップロジックの組み込み、連続時間領域から離散時間領域への変換などが可能になる。

2009-12-16[n年前へ]

エクセルでシミュレーション Vol.10 二次元非定常熱伝導問題シミュレーション+P(ID)制御エクセルシートを作ってみよう 

 「エクセルでシミュレーション Vol.9 二次元非定常熱伝導問題の温度変化グラフも作ってみよう」で、二次元非定常熱伝導問題を解くシートを使いながら(実用的範囲では三次元問題と大差がない)、ヒーターで回転するベルトを高温にした場合の、その回転ベルトの温度分布がどのように変化していくかを計算し、グラフ化し、さらにベルト中の一部分の温度を時系列的にモニターする機能を付けた、シートで遊んでみました。

 そこで、今回は、センシングしたベルトの温度を用いて、ヒーターの温度を簡単なPID制御を使ってフィードバック制御するエクセル・シートを作ってみることにしましょう。

PID制御とは、調整量を(現在の)出力値と目標値との差に比例=Proportionalした量、その(過去からの)積分=Integralに応じた量、および(その瞬間に次にどのように変化するかという)微分=Differentialに応じた量にしたがって変える制御です。言いかえれば、現在(Proportional)・過去(Integral)・未来(Differential)の挙動に応じて、制御調整量を変えてやろうという制御です。比較的、古典的な制御手法ですが、現在でも、もっとも一般的な制御手法です。

 まずは、前回のエクセル・シートでヒーター部分を単純に(計算をさせ始めてから=回転ベルトに対するヒーターを動かし始めてから)100℃にし続けた場合の計算過程を示してみます。つまり、何の制御もしない場合です。その計算結果が、下の動画です。上の動画で上に示したグラフが、回転ベルトの温度分布を示したグラフです(回転ベルトを切り開いたように温度分布を示しています)。動画中の下の折れ線グラフは(上のコンター図で灰色丸部の温度の時間変化を示したグラフです)。ちなみに、縦軸は0℃から150℃までで、横軸が時間軸です。

 下の折れ線グラフを見れば、上のコンター図で灰色丸で示した部分の、温度が時間に応じて上昇し、やがて100℃近くになっていることがわかります。

 さて、次にPID制御を行ってみることにしましょう。…とはいえ、最初は簡単のために、「灰色丸で示した部分の温度と目標調整温度である100℃との差をヒーターに足す(ネガティブ・日―ドばっく)」という「P=比例成分=現在の違い」だけを利用したP(ID)制御を行ってみます。つまり、現在の出力と目標出力の差異のみをヒーター出力に(適当な比率で)足し合わせてみるのです。言いかえれば、ベルトの温度が0℃なら、ヒーターを200℃くらいにすることで、急激にベルトを温め温度を調整し、目標温度100度と現在のベルト温度の差が小さくなってきたら、ヒーターの温度を110℃くらいに変えてやる・・・というような制御をしてみます。そんなシミュレーション計算を行ってみた結果が、下の計算結果になります。ちなみに、ヒーターの制御温度はエクセルのシートでB32セルで計算されています。また、灰色丸のセンサ取り付け部分(を示した)の温度を示す下の折れ線グラフは、先ほどと同じく、縦軸は0℃から150℃までの温度を示し、横軸が時間軸となっています。

 この結果動画を見るとわかるように、「P=比例成分=現在の違い」だけを利用したP(ID)制御(=積分成分と微分成分を使わない)制御では、ベルトの温度は早く立ち上がりますが、ベルトの温度は振動して、なかなかすぐに安定してくれません。しかも、早く温度を立ち上げようとすると、温度振動は大きくなってしまい、温度振動を防ごうとすると、なかなか温度が早く立ち上がってくれない、という相反する関係になっています。いわば、(ある程度、減衰がある)強いバネと弱いバネの振動と同じような現象が起きてしまいます。

 さて、それでは、一体どうしたら良い制御ができるのでしょうか。・・・せっかく、簡易にエクセルのような(表計算=スプレッドシート・ソフトウェアを使った)熱伝導方程式を使ったシミュレーション計算を行うことができる環境があるわけですから、今回扱ったPID制御のような古典的な制御をもう少し復習してみようと思います。

 そして、せっかく熱伝導方程式を計算してみたりしているわけですから、そういった微分方程式(つまり現在から未来を示す式)を使うことで実現できる、最適化制御についても考えてみることにします。

2012-05-29[n年前へ]

ニュートンも解けなかった「しょんべん小僧のションベンの軌跡」 

 「ドイツで16歳の少年、ニュートンも解けなかった難問の答えを見つける」という記事を読みました。関連記事を読んでみると、次のような形に書き下すことができる、「速度に比例する抵抗を受けながら、空気中を飛翔する物体の軌跡」を解いた、ということのようです。

x''[t] = -a * x'[t] * sqrt( x'[t]^2 + y'[t]2 )
y'' [t]= -a * y'[t] * sqrt( x'[t]^2 + y'[t]2 ) - g

 ニュートンも解けなかったという「この問題」、これはまさに『風上に向かう「しょんべん小僧」』で扱った問題です。

 今からちょうど10年前、「しょうべん小僧」の解析をした時には(今回明らかになった解析解がありませんでしたから)数値解析をもとに記事を書いたわけですが、そんな「しょんべん小僧のションベンの軌跡」に関する解析解を、ドイツ在住16歳の少年が明らかにした、というわけです。

 そんなこんなで(16歳の少年が見つけた)「ニュートンも解けなかった難問の答」…つまりは、ニュートンも解けなかった「しょんべん小僧のションベンの軌跡」を(彼が見つけた解析解を用いて)図示してみたのが右の画像です。

 ドイツ在住の16歳の少年が見つけ出した解析解、…強風の中で「立ちション」せざるをえない状況に立たされた男性たちは、この解析解を読み解き・最適な立ちションスタイルを見つけ出すと、大惨事にならずに済むのかもしれません!?


 (なお、グラフ描画に用いた数式は下に貼り付けたものになります)

ニュートンも解けなかった「しょんべん小僧のションベンの軌跡」ニュートンも解けなかった「しょんべん小僧のションベンの軌跡」






2012-08-21[n年前へ]

「今の瞬間の微分」と「あらゆる時間の積分」と 

 「たった30年」くらい前、I/O誌で連載状態だった芸夢狂人さん。
 「20年近くも前のことですし、もうしゃべっちゃってもいいでしょう」「秀丸シリーズのシェアウエアによる売り上げは(ピークとなる1996年~98年当時には)最高で1億5000万円くらい」
 「十年前」2002年には何をしていたでしょう? …”夏の夜空を見上げれば、あの頃流れてた電波の行方が、かつて眺めた番組が見えてくるような気がします

2002年7月21日『あの頃流れた電波の行方
 「10年後」「20年後」…何をしているかなんて、皆目見当がつかない。どうやら、今を常に積分し続けたその先に、10年後や20年後があるらしい。
 今、時を遡ってあの時の自分に会えるなら、絶対後悔しないから もっとやれ、とハッパをかけるだろう。

 でも、人生の到達点はそれまでの積分なんだから、同じアドバイスが どの時点でも有効なはずだ。やりたいことはたくさんある。それなら、 絶対後悔しないから、貪欲に、遠慮せずにやればいい。

知っておきたかったこと」@Island Life

 今、この瞬間にやりたいこと・進みたい向きを指し示すことが、「今の瞬間の気持ちや行動の微分ベクトル」で、それらを重ね続けた「あらゆる時間の積分」が、どうやら未来や人生を作るらしい。



■Powered by yagm.net