[1]自由系の時間応答
a) 次の1次自由系の時間応答を重ねて描け。
b) 次の2次自由系の時間応答を重ねて描け。
//resp1.sce
//—–
function dx=f(t,x),dx=a*x,endfunction
x0=1; t0=0;t=0:0.1:10;
a=-1/0.5;
x1=ode(x0,t0,t,f);
a=-1/1;
x2=ode(x0,t0,t,f);
a=-1/2;
x3=ode(x0,t0,t,f);
scf(1);
plot(t,x1,t,x2,t,x3)
mtlb_grid
//—–
function dx=f(t,x),dx=A*x,endfunction
x0=[1;0];t0=0;t=0:0.1:10;
A=[0 1;-1 -0.02]; C=[1 0];
x1=ode(x0,t0,t,f); y1=C*x1;
A=[0 1;-1 -sqrt(2)]; C=[1 0];
x2=ode(x0,t0,t,f); y2=C*x2;
A=[0 1;-1 -2]; C=[1 0];
x3=ode(x0,t0,t,f); y3=C*x3;
scf(2);
plot(t,y1,t,y2,t,y3)
mtlb_grid
//—–
//eof
[2]インパルス応答
a) 次の1次系のインパルス応答を重ねて描け。
b) 次の2次系のインパルス応答を重ねて描け。
//resp2.sce
//—–
function dx=f(t,x),dx=a*x,endfunction
t0=0; t=0:0.01:5;
a=-1/0.5; b=1/0.5;
x1=ode(b,t0,t,f);
a=-1; b=1;
x2=ode(b,t0,t,f);
a=-1/2; b=1/2;
x3=ode(b,t0,t,f);
scf(1);
plot(t,x1,t,x2,t,x3)
mtlb_grid
//—–
function dx=f(t,x),dx=A*x,endfunction
t0=0;t=0:0.1:10;
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0];
x1=ode(B,t0,t,f); y1=C*x1;
A=[0 1;-1 -sqrt(2)]; B=[0;1]; C=[1 0];
x2=ode(B,t0,t,f); y2=C*x2;
A=[0 1;-1 -2]; B=[0;1]; C=[1 0];
x3=ode(B,t0,t,f); y3=C*x3;
scf(2);
plot(t,y1,t,y2,t,y3,t,1)
mtlb_grid
//—–
//eof
[3]正弦波入力に対する時間応答
a) 次の1次自由系のに対する時間応答を,零入力応答と零状態応答と重ねて描け。
b) 次の2次自由系のに対する時間応答を,零入力応答と零状態応答と重ねて描け。
//resp3.sce
//—–
function dx=f1(t,x),dx=a*x,endfunction
function dx=f2(t,x),dx=a*x+b*u(t),endfunction
function ut=u(t),ut=sin(10*t),endfunction
a=-1; b=1;
x0=1; t0=0; t=0:0.01:5;
x1=ode(x0,t0,t,f1);
x0=0; t0=0; t=0:0.01:5;
x2=ode(x0,t0,t,f2);
x0=1; t0=0; t=0:0.01:5;
x3=ode(x0,t0,t,f2);
scf(1);
plot(t,x1,t,x2,t,x3)
mtlb_grid
//—–
function dx=f1(t,x),dx=A*x,endfunction
function dx=f2(t,x),dx=A*x+B*u(t),endfunction
function ut=u(t),ut=sin(10*t),endfunction
A=[0 1;-1 -sqrt(2)]; B=[0;1]; C=[1 0];
x0=[1;0]; t0=0; t=0:0.1:10;
x1=ode(x0,t0,t,f1); y1=C*x1;
x0=[0;0]; t0=0; t=0:0.1:10;
x2=ode(x0,t0,t,f2); y2=C*x2;
x0=[1;0]; t0=0; t=0:0.1:10;
x3=ode(x0,t0,t,f2); y3=C*x3;
scf(2);
plot(t,y1,t,y2,t,y3,t,1)
mtlb_grid
//—–
//eof
[4]ステップ応答
a) 次の1次系のステップ応答を重ねて描け。
b) 次の2次系のステップ応答を重ねて描け。
//resp4.sce
//—–
function dx=f(t,x),dx=a*x+b*u(t),endfunction
function ut=u(t),ut=1,endfunction
x0=0; t0=0; t=0:0.01:5;
a=-1/0.5; b=1/0.5;
x1=ode(x0,t0,t,f);
a=-1; b=1;
x2=ode(x0,t0,t,f);
a=-1/2; b=1/2;
x3=ode(x0,t0,t,f);
scf(1);
plot(t,x1,t,x2,t,x3,t,1-1/%e)
mtlb_grid
//—–
function dx=f(t,x),dx=A*x+B*u(t),endfunction
function ut=u(t),ut=1,endfunction
x0=[0;0];t0=0;t=0:0.1:10;
A=[0 1;-1 -0.02]; B=[0;1]; C=[1 0];
x1=ode(x0,t0,t,f); y1=C*x1;
A=[0 1;-1 -sqrt(2)]; B=[0;1]; C=[1 0];
x2=ode(x0,t0,t,f); y2=C*x2;
A=[0 1;-1 -2]; B=[0;1]; C=[1 0];
x3=ode(x0,t0,t,f); y3=C*x3;
scf(2);
plot(t,y1,t,y2,t,y3,t,1)
mtlb_grid
//—–
//eof
[5]周波数応答
a) 次の1次系の周波数応答を重ねて描け。
b) 次の2次系の周波数応答を重ねて描け。
//resp5.sce
//—–
function g=f(a,b,w), g=b./(%i*w-a), endfunction
w=logspace(-1,1);
a=-1/2; b=1/2; g=f(a,b,w); ga1=20*log10(abs(g));
ph1=180/%pi*atan(imag(g),real(g));
a=-1/1; b=1/1; g=f(a,b,w); ga2=20*log10(abs(g));
ph2=180/%pi*atan(imag(g),real(g));
a=-1/0.5; b=1/0.5; g=f(a,b,w); ga3=20*log10(abs(g));
ph3=180/%pi*atan(imag(g),real(g));
scf(1);
subplot(211),plot2d(w,ga1,logflag=’ln’),
plot2d(w,ga2,logflag=’ln’),
plot2d(w,ga3,logflag=’ln’),mtlb_grid
subplot(212),plot2d(w,ph1,logflag=’ln’),
plot2d(w,ph2,logflag=’ln’),
plot2d(w,ph3,logflag=’ln’),mtlb_grid
//—–
function g=f(A,B,C,w),
g=[]; N=length(w)
for i=1:N, g=[g C*((%i*w(i)*eye(A)-A)\B)]; end
endfunction
B=[0;1]; C=[1 0]; w=logspace(-1,1,200);
A=[0 1;-1 -2*0.01]; g=f(A,B,C,w); ga1=20*log10(abs(g));
ph1=180/%pi*atan(imag(g),real(g));
A=[0 1;-1 -2/sqrt(2)]; g=f(A,B,C,w); ga2=20*log10(abs(g));
ph2=180/%pi*atan(imag(g),real(g));
A=[0 1;-1 -2*1]; g=f(A,B,C,w); ga3=20*log10(abs(g));
ph3=180/%pi*atan(imag(g),real(g));
scf(2);
subplot(211),plot2d(w,ga1,logflag=’ln’),
plot2d(w,ga2,logflag=’ln’),
plot2d(w,ga3,logflag=’ln’),mtlb_grid
subplot(212),plot2d(w,ph1,logflag=’ln’),
plot2d(w,ph2,logflag=’ln’)
plot2d(w,ph3,logflag=’ln’),mtlb_grid
//—–
//eof