计算机仿真试题
五、(10分)已知系统的传递函数为。
要求使用MATLAB语言建立系统传递函数模型,并求:
该系统的单位阶跃响应;(2分)
输入函数为u(t)时的响应;(3分)
(u(t)正弦信号,周期2秒,仿真时间8秒,采样周期0.1);
(3) 输入函数为u(t)时的响应;(3分)
(u(t)方波输入信号,周期10秒,仿真时间20秒,采样周期0.05)
(4) 绘出系统的波德图(Bode)。(2分)
解:
num=[2 8 6];
den=[1 8 16 6];
sys=tf(num,den); %建立系统传递函数模型
t=0:0.1:8; %定义自变量取值数组
y1=step(sys,t); %系统的单位阶跃响应
u=sin(t*pi);
y2=lsim(sys,u,t); %系统的正弦函数响应
subplot(2,2,1);plot(t,y1); %绘制单位阶跃响应曲线
grid;
title('阶跃响应曲线'); %添加曲线标题
xlabel('响应时间'); %添加X坐标名称
ylabel('响应值'); %添加Y坐标名称
hold on;
subplot(2,2,2);plot(t,y2); %绘制正弦函数sin(t)响应曲线
grid ;
title('对sin(t)的响应曲线'); %添加曲线标题
xlabel('响应时间'); %添加X坐标名称
ylabel('响应值'); %添加Y坐标名称
t=0:0.05:20 %定义新的自变量取值数组
u=square(pi/5*t);
y3=lsim(sys,u,t); %系统的方波函数响应
subplot(2,2,3);plot(t,y3); %绘制方波响应曲线
grid ;
title('对方波信号的响应曲线'); %添加曲线标题
xlabel('响应时间'); %添加X坐标名称
ylabel('响应值'); %添加Y坐标名称
subplot(2,2,4);bode(sys); %绘制系统伯德图
grid ;
title('bode图');
运行所得图形:
六、(10分)设二阶动力学系统的传递函数如下,假设将无阻尼固有频
率固定为ωn=1 rad/s,将阻尼比的值分别设置成ζ=0,0.1,0.2,0.3,…,1,2,3,5。用MATLAB语言编程,分析在这些阻尼比ζ的取值下该系统的阶跃响应。
解: wn=1; %定义wn的值
kesi=[0:0.1:1,2,3,4,5]; %定义阻尼比的值
hold on
for i=kesi %循环取阻尼比不同的值来画出不同的阶跃响应曲线
num=wn.^2; %建立系统传递函数模型
den=[1,2*i*wn,wn.^2];
step(num,den); %系统的单位阶跃响应曲线
end %循环结束
title('二阶动力学系统的阶跃响应'); %曲线标题
xlabel('响应时间'); %添加X、Y坐标名称
ylabel('响应值');
axis([0 60 -0.5 2.5]); %坐标值范围设定
运行结果:
七、(20分)对图示的车辆(汽车、摩托车等)悬架系统进行数字仿真。
该系统是一个二自由度动力学系统。图中,簧下质量m1=40 Kg、
簧上质量m2=400 Kg、轮胎刚度k1=158 kN/m、悬架刚度k2=
23 kN/m、b是悬架减振器阻尼系数,x是簧下质量的振动位移、
y是簧上质量的振动位移,u是路面不平度函数。研究以u为输入,
x、y为输出时,系统的动态响应。完成下述任务:
⑴建立系统数学模型,取车身垂直振动速度和位移、车轮垂直振动速度和位移为四个状态变量,把系统数学模型转换为状态方程形式;(5分)
⑵绘制系统的函数方块图或状态变量图;(5分)
⑶取阻尼系数b的值分别为600、1000、2000、4000,对系统
作阶跃输入动态仿真并绘制出系统的Bode图。(7分)
对仿真结果进行分析,给出分析结论。(3分)
解:(1)由受力分析可得:
取车身垂直振动速度和位