Posted on 2014/08/09, 4:18 PM By admin22
「フィードバック制御入門」なる本がO’Reillyから先月発売されました。最初「O’Reillyがフィードバック制御?」とちょっと違和感を感じましたが、頭に「エンジニアのための」とついていることが、肝です。ソフトウエアエンジニアのために書かれた制御入門なのですが、これから重要になってくるということなのでしょう。まさにこのブログを始めたのも、このあたりを感じていたからなので、このタイムリーな出版に本当に驚きました。昔組み込みの仕事で使っていたMatlabが、最近使いだしたRによってもう一度使ってみたくなっていたのも、自然なことだったのかもしれません。
今回は、そのMatlabの代わりに使えるScilabを使ってみました。書籍は随分前に買ったことがありますが、アプリを使うのは初めてです。
参考:MATLABの代わりに使えるソフトウェアまとめ
http://matome.naver.jp/odai/2136163231573327601
ここにその他も代わりに使えるソフトの情報があります。
まず最初は、一次おくれ伝達関数に対して、ステップ応答、インパルス応答、サイン波の応答をプロットしてみました。
1 2 3 4 5 6 7 8 9 10 11 | s = poly( 0 , 's' ); S1 = syslin( 'c' , 1 / (s + 1 )) t = 0 : 0.01 : 10 ; y = csim( 'step' , t, S1); plot(t, y, 'r' ) y = csim( 'step' , t, S1 * S1); plot(t, y, 'g' ) y = csim( 'step' , t, S1 * S1 * S1); plot(t, y, 'b' ) y = csim( 'step' , t, S1 / .S1); plot(t, y, 'c' ) |
1 2 3 4 5 6 7 8 | y = csim( 'impulse' ,t,S1); plot(t, y, 'r' ) y = csim( 'impulse' ,t,S1 * S1); plot(t, y, 'g' ) y = csim( 'impulse' ,t,S1 * S1 * S1); plot(t, y, 'b' ) y = csim( 'impulse' ,t,S1 * S1 * S1 + S1 * S1 * S1); plot(t ,y, 'c' ) |
1 2 3 4 5 6 | u = sin(t); y = csim(u, t, S1); plot(t, u, 'r' ) plot(t, y, 'g' ) y = csim(u,t,S1 * S1); plot(t, y, 'b' ) |
S1*S1は直列接続、S1+S1は並列接続、S1/.S1はフィードバック接続をあらわします。
参考:http://alk.fam.cx/block_010.html
Categories: 未分類 タグ: Scilab