2014-08-09から1日間の記事一覧

Scilabでdivision by zeroエラーを回避する

ieee()関数を使う https://bugs.launchpad.net/ubuntu/+source/scilab/+bug/128479 Use ieee(0) to make division by zero an error. Use ieee(1) to be warned when dividing by zero. Use ieee(2) to silently allow division by zero. ieee(1)に設定した。

力学系へのPI制御の利用

こんな状態だとする x' 方向の運動方程式 Laplace変換(初期値 x'(t)=0 phi(t)=0) 伝達関数 ステップ(0.5)入力(Φ=0.5→θを60度固定) t=0:0.01:10 u=0 for i=1:length(t) step(i)=0.5 end clf G=9.8/(%s^2+1) plot2d(t,csim(step',t,syslin("c",G)),1)周期1の…

2次遅れ系にP制御、PI制御、PD制御入力を適用したシステムへのステップ応答

制御対象(2次遅れ系)の定義 t = 0:0.01:3 G=10/((s+5)*(s+2)) #2次遅れ系 plot2d(t,csim("step",t,syslin("c",G*C/(1+G*C)))) #Cは未定義 GC:1巡伝達関数 制御なしのステップ入力だと0.1に収束するところを制御入力を入れて1に近づける P制御 clf C=1 plo…

PapilioのUCFのメモ

・RSTボタンはPULLDOWN指定 ・RX->トップレベルのTXD、TX->トップレベルのRXDにつなぐ (追記)UARTの接続は勘違い UART_Tx -> TX, UART_Rx -> RXで動いた。

Scilabでボード線図を書くワンライナー

微分要素(積分要素の逆数にしないといけないのはバグか) bode(syslin('c',1/(1/%s)),0.01,100,0.01)積分要素 bode(syslin('c',1/%s),0.01,100,0.01)1次遅れ系 bode(syslin('c',1/(1+%s),0.01,100,0.01)1次遅れ系の微分要素 bode(syslin('c',%s/(1+%s)),0…

Scilabで2次遅れ要素のステップ応答を書くワンライナー

基本 t=0:0.1:10; plot2d(t', csim('step',t,syslin('c',1/(%s^2+2*%s+1)))) # => plot2d(t, csim('step',t,syslin('c',伝達関数))) 極を-1±3jに指定 plot2d(t,csim('step',t,syslin('c',10/poly([(-1+3*%i),conj(-1+3*%i)],"s"))))