2016-01-27から1日間の記事一覧

Visual Microでデバッグ

ドキュメントをちゃんと読んだほうが良さそう http://www.visualmicro.com/post/2012/05/05/Enable-Arduino-Debugging.aspx

SimulinkでContnuousとDiscreteの違い

http://jp.mathworks.com/matlabcentral/answers/36663-what-are-continuous-and-discrete-states-in-simulink

最適サーボシステム

clear all; format compact; A = [ 0 1 0 0 -4 -2 4 2 0 0 0 1 2 1 -2 -1 ]; B = [0 2 0 0]'; C = [ 0 0 1 0]; x0 = [0 0 0.25 0]'; Ae = [ A zeros(4,1) -C zeros(1,1)]; Be = [B;zeros(1,1)]; Q11 = 100; Q22 = 600; Qe = [C'*Q11*C zeros(4,1) zeros(1,4)…

同次元状態オブザーバを使って出力フィードバック形式のコントローラを組む

C=[0 0 1 0]よりx3のみ観測しているので、誤差は(初期を除いて)生じていない。 M1=0.5; M2=1; k = 2; mu=1; A = [0 1 0 0 -k/M1 -mu/M1 k/M1 mu/M1 0 0 0 1 k/M2 mu/M2 -k/M2 -mu/M2 ]; B = [0 1/M1 0 0]; C = [0 0 1 0]; p = [-2+2j -2-2j -2+j -2-j]; K …

多入力他出力(MIMO)システムの時間応答

clear all; close all; A=[ 0 1 0 0 -2 -2 1 2 0 0 0 1 2 2 -2 -8 ]; B = [ 0 0 2 -2 0 0 -2 4 ]; C = [ 1 0 0 0 0 0 1 0 ]; D = [ 0 0 0 0 ]; sys = ss(A,B,C,D); t= 0:0.01:20; x0 = [1 0 -1 0]'; y=initial(sys,x0,t); y1=y(:,1); y2=y(:,2); subplot(3,1…

matlabで遷移行列を利用して零入力応答を求める

clear all; close all; A=[ 0 1 -10 -2 ]; c=[1 0]; x0 = [1 0]'; ts = 0:0.1:5; for idx=1:length(ts) t=ts(idx); y(idx) = c*expm(A*t)*x0; end plot(ts,y);

ステップ応答、零入力応答、時間応答の関係

零入力応答=自由応答=初期条件応答 -> initial() ステップ応答=零状態応答 -> step() 時間応答=ステップ応答+零入力応答 -> lsim() clear all; close all; drawResponse(1); drawResponse(2); drawResponse(3); function drawResponse(number) aa=[-11 -2 0…

状態空間モデルの初期条件応答(任意の初期値における零入力応答=自由応答)

http://jp.mathworks.com/help/control/ref/initial.html a = [-0.5572, -0.7814; 0.7814, 0]; c = [1.9691 6.4493]; x0 = [1 ; 0]; sys = ss(a,[],c,[]); initial(sys,x0)