当前位置:文档之家› 第六章例题

第六章例题

连续系统离散化函数c2d,调用格式为:
sysd=ced(sysc,Ts,method) %method为模型转换方法,零阶保持器为'zoh'


例6-1 已知某系统运动方程及初始条件,求时间区间t的微分方程的解。
(1)建立描述系统微分方程的m-函数文件rigit.m
function dy=rigit(t,y)
dy=zeros(3,1);
dy(1)=y(2)*y(3);
dy(2)=-y(1)*y(3);
dy(3)=-2*y(1)*y(2);
(2)编写调用函数rigit()的M文件,并执行
[T,y]=odc45('rigit',[0,20],[0,0.5,-0.5]); %调用odc45产生离散点时间向量和解向量
plot(T,y(:,1),'r',T,y(:,2),'b*',T,y(:,3),'k_.')
legend('y1','y2','y3')

例6-2已知二阶微分方程,求时间区间t的微分方程的解
(1)将微分方程表示为一阶微分方程组
(2)建立描述系统微分方程的m-函数文件vdp.m
function dy=vdp(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=(1-y(1)^2)*y(2)-y(1)
(3)主程序:
[T,Y]=ode45('vdp',[0 20],[0,1]);
plot(T,Y(:,1),'r-',Y,Y(:,2),'b:')
legend('y1','y2')


例6-3
(1)建立一阶微分方程组
(2)建立描述系统微分方程的m-函数文件ehpcs.m
采用了带参数的ODE函数的调用
function dx=ehpcs(t,x,flag,ps)
kv=3.4e-8;Ap=0.006;ct=7e-12;bv=7e-12;m=25;
dx=zeros(3,1);
up=200*(2*sin(6*pi*t)-10*x(1));
dx(1)=x(2);
dx(2)=Ap/m*x(3);
dx(3)=-Ap/bv*x(2)-ct/bv*x(3)+up*kv/bv*sqrt(ps-sign(up)*x(3));

主程序:
tspan=[0,0.7];x0=[0,0,0];
ps=2e6;[T1,X1]=ode45('ehpcs',tspan,x0,odeset,ps);
ps=5e6;[T2,X2]=ode45('ehpcs',tspan,x0,odeset,ps);
plot(T1,X1(:,1),'r',T2,X2(:,1),'b-.')
legend('Ps=2MPa','Ps=5MPa')
xlabel('t(s)'),ylabel('x(m)')


负载速度和压力曲线:
plotyy(T1,X1(:,2),T1,X1(:,3))
text(0.4,2.5,'\leftarrow负载速度')
text(0.3,-1.8,'负载压力'\rightarrow')
xlabel('t(s)')



例6-4求单位阶跃响应
sys=tf([1,-1],[1,1,5]);
subplot(1,2,1),step(sys,20)
subplot(1,2,2),step(sys)

例6-5 多系统
A=[-0.5572 -0.7814;0.7814 0];
B=[1 0]';C=[1.6287 3.5609];D=0;
sys1=ss(A,B,C,D);
num=[3000];den=[1 40 440 300 584];
sys2=tf(num,den);
setp(sys1,'r',sys2,'b-.')
legend('状态空间模型','传递函数模型')

impulse(sys)用来计算单位脉冲响应

例6-6
A=[-0.5572 -0.7814;0.7814 0];
B=[1 0]';C=[1.6287 3.5609];D=0;
sys1=ss(A,B,C,D);
X0=[1 2]';
initial(sys1,X0)


例6-7 方波信号作用下的响应
sys=ft([3,100],[1,10,40,100]);
[u,t]=gensig('square',5,10);
lsim(sys,'r',u,t)
hold on
plot(t,u,'-.')
hold off
test(1,3,0.8,'输入\rightarrow')
text(5.4,0.8,'\leftarrow 输出')


例6-8

P124 离散时间系统重新采样函数d2d()
sys=d2d(model,Ts)

dstep(num,den) 离散系统单位阶跃响应
dimpulse(num,den) 离散系统单位脉冲响应
dsim(num,den) 离散系统任意函数的激励响应



G1=tf([1 1],[1 1 10]);
G0=c2d(G1,0.02,'zoh');
Gc=tf([1 -0.5],[0.1 0],0.02);
Wz=G0*Gc/(1+G0*Gc);
[num,den]=tfdata(Wz,'v');
subplot(2,1,1),dstep(num,den) %用step求系统单位阶跃响应
xlabel('time(samples)')
text(8

0,0.65,'dstep()')

subplot(2,1,2),step(Wz)
xlabel('time(samples)')
text(1.6,0.65,'step()')





例6-

例6-

例6-

例6-








相关主题
文本预览
相关文档 最新文档