MATLAB实验报告材料.docx
《MATLAB实验报告材料.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告材料.docx(40页珍藏版)》请在冰豆网上搜索。
![MATLAB实验报告材料.docx](https://file1.bdocx.com/fileroot1/2022-10/26/c651e474-d49d-49a5-a377-4b5a1b6ccce1/c651e474-d49d-49a5-a377-4b5a1b6ccce11.gif)
MATLAB实验报告材料
《MATLAB/Simulink与控制系统仿真》实验报告
专业:
班级:
学号:
姓名:
指导教师:
实验1、MATLAB/Simulink仿真基础及控制系统模型的建立
一、实验目的
1、掌握MATLAB/Simulink仿真的基本知识;
2、熟练应用MATLAB软件建立控制系统模型。
二、实验设备
电脑一台;MATLAB仿真软件一个
三、实验内容
1、熟悉MATLAB/Smulink仿真软件。
2、一个单位负反馈二阶系统,其开环传递函数为。
用Simulink建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
图1系统结构图
图2示波器输出结果图
3、某控制系统的传递函数为,其中。
用Simulink建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
图3系统结构图图4示波器输出结果图
图5工作空间中仿真结果图形化输出
4、一闭环系统结构如图所示,其中系统前向通道的传递函数为,而且前向通道有一个[-0.2,0.5]的限幅环节,图中用N表示,反馈通道的增益为1.5,系统为负反馈,阶跃输入经1.5倍的增益作用到系统。
用Simulink建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
图6系统结构图
图7示波器输出结果
实验2MATLAB/Simulink在控制系统建模中的应用
一、实验目的
1、掌握MATLAB/Simulink在控制系统建模中的应用;
二、实验设备
电脑一台;MATLAB仿真软件一个
三、实验内容
1、给定RLC网络如图所示。
其中,为输入变量,为输出变量。
求解这个系统的传递函数模型,零极点增益模型以及状态空间模型(假设,,,)。
传递函数模型
程序代码如下:
clearall;%清除工作空间的变量
num=[0,1];%定义分子多项式
den=[122];%定义分母多项式
sy_tf=tf(num,den);%建立传递函数模型
[z,p,k]=tf2zp(num,den)%从传递函数模型获取系统的零极点增益
sy_zpk=zpk(z,p,k);%建立系统的零极点增益模型
[A,B,C,D]=zp2ss(z,p,k);%从零极点增益模型获取系统的状态空间模型
sys_ss=ss(A,B,C,D)%建立系统的状态空间模型
step(sy_tf)%求解系统的阶跃响应
gridon;%添加栅格
程序运行结果
z=Emptymatrix:
0-by-1
p=-1.0000+1.0000i
-1.0000-1.0000i
k=1
a=x1x2
x1-2-1.414
x21.4140
b=u1
x11
x20
c=x1x2
y100.7071
d=u1
y10
Continuous-timemodel.
图1系统的阶跃响应曲线
2、已知某双环调速的电流环系统的结构图如图所示。
试采用Simulink动态结构图求其线性模型。
图2simulink中的系统动态模型
将图2模型存为“Samples_4_14.mdl”文件
在MATLAB命令窗口运行以下命令,得到一个线性状态空间模型(A,B,C,D)。
[A,B,C,D]=linmod('Samples_4_14');%提取simulink模型的状态空间模型
输出结果如下
A=1.0e+003*
-0.07810001.7964
0-0.5000000
0.01410-0.500000
00.5000-0.500000
00.1600-0.16000.0250-0.0599
B=0
1
0
0
0
C=195.31250000
D=0
在MATLAB命令窗口运行以下命令
[num,den]=ss2tf(A,B,C,D);%将状态空间模型转换为传递函数模型
pritfsys(num,den,'s');%以传递函数模型形式显示出来
输出结果:
num/den=4.5475e-013s^4+5.8208e-011s^3+56137724.5509s^2+32454622005.9881s
+2192879865269.464
-----------------------------------------------------------------------------
s^5+1138.0052s^4+392683.3832s^3+43221369.7605s^2+3506268712.5749s
+157********9.4013
实验3MATLAB/Simulink在时域分析法中的应用
一、实验目的
1、掌握时域分析中MATLAB/Simulink函数的应用;
2、掌握MATLAB/Simulink在稳定性分析中的应用。
二、实验设备
电脑一台;MATLAB仿真软件一个
三、实验内容
1、某随动系统的结构如图所示。
利用MATLAB完成如下工作:
(1)对给定的随动系统建立数学模型;
(2)分析系统的稳定性,并且绘制阶跃响应曲线;(3)计算系统的稳态误差;(4)大致分析系统的总体性能,并给出理论上的解释。
图1系统的结构图
解:
利用MATLAB求解的基本步骤如下
1.求取系统传递函数
clc;
clearall;
num1=[20];den1=[120];
sys1=tf(num1,den1);%二阶系统的传递函数
num2=[0.10];den2=[01];
sys2=tf(num2,den2);%微分环节传递函数
sys_inner=feedback(sys1,sys2);%内环反馈的传递函数
sys_outer=feedback(sys_inner,1)%外环反馈的传递函数
20
--------------
s^2+4s+20
得到系统的传递函数
2.进行稳定性分析
den=[1420];
roots(den)%求闭环系统特征多项式的根
pzmap(sys_outer);%利用pzmap命令绘制系统的零极点图
gridon;
程序运行结果
ans=
-2.0000+4.0000i
-2.0000-4.0000i
由结果可知,系统特征根都具有负实部,因此闭环系统是稳定的。
系统零极点分布图如图2所示
图2系统零极点分布图
3.求阶跃响应
num=[20];den=[1420];
[y,t,x]=step(num,den)%计算闭环系统的阶跃响应
plot(x,y);%绘制阶跃响应曲线
gridon;
如下图3,横坐标表示响应时间,纵坐标表示系统输出
图3系统阶跃响应曲线
图4系统阶跃响应曲线
4.分析系统的响应特性
%计算系统的超调量
y_stable=1;%阶跃响应的稳态值
max_response=max(y);%闭环系统阶跃响应的最大值
sigma=(max_response-y_stable)%阶跃响应的超调量
程序运行结果
sigma=0.2076
系统稳态误差为0,波形图如下
图5系统误差曲线图
%计算系统的上升时间
fori=1:
length(y)%遍历响应曲线
ify(i)>y_stable%如果某个时刻系统的输出值大于稳态值
break;%循环中断
end
end
tr=x(i)%计算此时对应的时间,就是阶跃响应的上升时间
%计算系统的峰值时间
[max_response,index]=max(y);%查找系统阶跃响应的最大值
tp=x(index)%计算此时对应的时间,就是阶跃响应的峰值时间
%计算系统的调整时间---------》取误差带为2%
fori=1:
length(y)%遍历响应曲线
ifmax(y(i:
length(y)))<=1.02*y_stable%如果当前响应值在误差带内
ifmin(y(i:
length(y)))>=0.98*y_stable
break;%循环退出
end
end
end
ts=x(i)%计算此时对应的时间,就是阶跃响应的调整时间
程序运行结果
tr=0.5245
tp=0.7730
ts=1.8773
即上升时间为0.52秒,峰值时间0.77秒,并且系统在经过1.88秒后进入稳态。
2、已知某二阶系统的传递函数为,
(1)将自然频率固定为,,分析变化时系统的单位阶跃响应;
(2)将阻尼比固定为,分析自然频率变化时系统的阶跃响应(变化范围为0.1~1)。
(1)解:
利用MATLAB建立控制系统的数学模型,并且同时显示=1,取不同值时的阶跃响应曲线
clc;
clear;
t=linspace(0,20,200);%设置仿真时间
omega=1;%设置二阶系统的自然频率
omega2=omega^2;%计算自然频率的平方
zuni=[0,0.1,0.2,0.5,1,2,3,5];
num=omega2;
fork=1:
8
den=[12*zuni(k)*omegaomega2];
sys=tf(num,den);
y(:
k)=step(sys,t);
end
figure
(1);
plot(t,y(:
1:
8));
grid;
gtext('zuni=0');
gtext('zuni=0.1');
gtext('zuni=0.2');
gtext('zuni=0.5');
gtext('zuni=1');
gtext('zuni=2');
gtext('zuni=3');
gtext('zuni=5');
图1固定自然频率,阻尼比变化时系统的阶跃响应曲线
结论:
当固定频率后,改变阻尼比,在<1不会改变阶跃响应的震荡频率;而当>1时,阶跃响应曲线不再震荡,系统阻尼。
(2)绘制=0.55,从0.1变化到1是系统的阶跃响应曲线
clc;
clear;
t=linspace(0,20,200);%设置仿真时间
zuni=0.55;%设定阻尼系数
omega=[0.10.20.40.71];%设定自然频率向量
omega2=omega.*2;%计算自然频率的平方
fork=1:
5%循环五次,分别计算在五种不同的自然频率下系统的阶跃响应
num=omega2(k);
den=[12*zuni*omega(k)omega2(k)];
sys=tf(num,den);%系统传递函数
y(:
k)=step(sys,t);%计算当前自然频率下,二阶系统的阶跃响应值
end
figure
(2);
plot(t,y(:
1:
5));%在一幅图像上依次绘出上述5条阶跃响应曲线
grid;
gtext('omega=0.1');
gtext('omega=0.2');
gtext