バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
今回から実際にシミュレーション。
しかし、わざとメンドクサイ手法を取ってみる。
登場人物
博識フクロウのフクさん
![](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
何を使ってシミュレーションする?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者04.png)
よし!
仕様書も書き上げて、
委託先に送付も終わって一段落だな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そういえば、シミュレーションとかして無かったね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」09アップ.png)
あ゛。そういえば。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まぁ、
ブロック線図は完成しているし、
そんなに難しくはないとは思うけど。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
じゃあ、
Simulinkに転記して動かしてみようか?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
いや。
この際だからExcelでやってみよう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
Excel?
Excelは表計算ソフトであって、
シミュレーションツールじゃないよ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
それを言ったら、
MATLABだって数値計算ツールだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、
でもそう言うってことはできるってことなんだよね?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
うん。
メンドクサイけどね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
メンドクサイけどやるの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
メンドクサイさを味わってSimulink等の有難みを噛み締めてもらおうかと思って。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
スパルタだなぁ。
Excelでシミュレーション
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まず各ブロックの信号線に番号を振っていこうか。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
こんな感じかな。
![PID制御器ブロック線図](https://www.simulationroom999.com/blog/wp-content/uploads/2020/06/02_PID制御番号付き-1024x472.png)
![一次遅れ系ブロック線図](https://www.simulationroom999.com/blog/wp-content/uploads/2020/06/03_一次遅れ系番号付き.png)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
Excelの列として「目標値」「実車速」と各信号線の番号を書く。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
書いた。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
よし。目標値はこちらで入れておこう。
太郎くんは各信号線の番号に沿って計算式を入れて行って。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」09アップ.png)
えーーーー!
これ、むちゃむちゃ面倒なんだけど!!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
だからメンドクサイって言っただろ?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
むぅ。
今はたまたま暇だからやるけど。
~2時間後~
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
一応できた・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
お疲れ。
細かいミスはこっちで直しておいたよ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
で、どうシミュレーションになるの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
こんな感じ
![PID制御器と一次遅れ系をExcel上でシミュレーションしてみた結果](https://www.simulationroom999.com/blog/wp-content/uploads/2020/06/04_PIDシミュレーションExcel-1024x463.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
おーー。
目標値に追従している!
本当にシミュレーションしている!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
って感じの作業をせずに
「数分でシミュレーション可能にしてくれるSimulinkスゲー」
ってのが今回の話。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」11アップ.png)
すんごく大変だったよ!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
次回はSimulinkでやろうね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」11アップ.png)
二度とExcelでシミュレーションはしない!!
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- 離散化済みであれば、ExcelでもPID制御のシミュレーションは可能。
- ただし、かなり面倒くさい。
- MATLAB/Simulinkが無い時代は恐らくこういった面倒なことをやっていたのだろう。
バックナンバーはこちら
コメント