资源描述:
《控制系统设计与仿真实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、TIANJINUNIVERSITY《控制系统设计与仿真》实验报告姓名:班级:年级:学号:第一次上机实验任务1、熟悉matlab软件的运行环境,包括命令窗体,workspace等,熟悉绘图命令。2、采用四阶龙格库塔法求如下二阶系统的在幅值为1脉宽为1刺激下响应的数值解。,程序:1)functionr=u(t)r=(t>=0)&(t<=1)2)dt=0.01;T=5;s=0.5;w=10;A=[01;-w^2-2*s*w]B=[0;w^2]X=[0;0];Y=X;fori=dt:dt:TK1=A*X+B*u(i);K2=A*(X+K1*dt/2)+B
2、*u(i);K3=A*(X+K2*dt/2)+B*u(i);K4=A*(X+K2*dt)+B*u(i);K=(K1+2*K2+2*K3+K4)/6;X=X+K*dt;Y=[YX];endplot([0:dt:T],Y(1,:),'r.')结果:3、采用四阶龙格库塔法求高阶系统阶单位跃响应曲线的数值解。,,程序:dt=0.01;N=50/dt;U=1;s=0.5;w=10;T=5;A=[010;001;-w^2/T-(w^2*T+2*s*w)/T-(2*s*w*T+1)/T];B=[0;0;w^2/T];X=[0;0;0];Y=X;fori=1:N
3、K1=A*X+B*U;K2=A*(X+K1*dt/2)+B*U;K3=A*(X+K2*dt/2)+B*U;K4=A*(X+K2*dt)+B*U;K=(K1+2*K2+2*K3+K4)/6;X=X+K*dt;Y=[YX];endy=Y(1,:);t=0:dt:50;plot(t,y)结果:4、自学OED45指令用法,并求解题2中二阶系统的单位阶跃响应。程序:1)functionr=u1(x);r=(x>=0)&(x<=1)2)functiondx=myderv(t,x);s=0.5;w=10;dx=[x(2);-w^2*x(1)-2*s*w*x(2
4、)+w^2*u1(t)]3)x0=[0;0];[ty]=ode45(@myderv,[0,5],x0);plot(t,y(:,1))结果:第二次上机任务1、试用simulink方法解微分方程,并封装模块,输出为。得到各状态变量的时间序列,以及相平面上的吸引子。参数入口为的值以及的初值。(其中,以及初值分别为)提示:模块输入是输出量的微分。simulink:封装模块:程序:[txy]=sim('task2_1')figure(1)plot(t,y)figure(2)plot3(y(:,1),y(:,2),y(:,3))结果:x1、x2、x3时间序列
5、:x1、x2、x3在相平面构成的吸引子:2、用simulink搭建PI控制器的控制回路,被控对象传递函数:,分别分析(1)、比例系数由小到大以及积分时间由小到大对阶跃响应曲线的影响。(2)、控制器输出有饱和以及反馈有时滞情况下,阶跃响应曲线的变化。(3)、主控制回路传递函数为:,副回路为:,主回路采用PI控制器,副回路采用P控制器,分析控制系统对主回路以及副回路的阶跃扰动的抑制。注:PI控制器表达式为,串级控制如图所示。(1)simulink:程序:Ti=1;figure(1)forKp=0.5:0.5:5;[txy]=sim('PID')hol
6、donplot(t,y)endKp=1;figure(2)forTi=0.5:0.5:8;[txy]=sim('PID')holdonplot(t,y)end结果:Kp增大结论:随着Kp增大,比例作用增强,系统快速性提高Ti增大结论:随着Ti增大,积分作用减弱,系统超调量减小,同时快速性减弱(2)simulink:结果:输出有饱和反馈有时滞原响应曲线结论:当输出有饱和时,稳态误差增大;当反馈有时滞时,阶跃响应振荡加剧。(3)simulink:结果:副回路加入干扰主回路加入干扰t=100时加入干扰结论:系统对副回路扰动具有更强的抑制作用。3、编写S
7、函数模块,实现两路正弦信号的叠加,正弦信号相位差为60度。S函数:function[sys,x0,str,ts]=syst(t,x,u,flag)switchflag,case0[sys,x0,str,ts]=mdlInitializeSizes();case3sys=mdlOutputs(u);case{1,2,4,9},sys=[];otherwiseerror(['ErrFLag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitializeSizes()sizes=simsizes;s
8、izes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.