MATLAB实验报告.docx
《MATLAB实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告.docx(46页珍藏版)》请在冰豆网上搜索。
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('omega=0.4');
gtext('omega=0.7');
gtext('omega=1.0');
图2固定阻尼系数,自然频率变化时系统的阶跃响应曲线
结论:
当自然频率
从0.1变化到1时,系统震荡频率加快,上升时间减少,过渡过程时间减少;系统响应更加迅速,动态性能更好。
自然频率
决定了系统阶跃响应的震荡频率。
实验4MATLAB/Simulink在根轨迹分析法中应用
一、实验目的
1、掌握MATLAB/Simulink绘制根轨迹函数;
2、掌握MATLAB/Simulink绘制根轨迹的方法。
二、实验设备
电脑一台;MATLAB仿真软件一个
三、实验内容
1、已知单位负反馈控制系统的开环传递函数
。
(1)画出这个系统的根轨迹;
(2)确定使闭环系统稳定的增益值
;(3)分析系统的阶跃响应性能;(4)利用rltool对系统的性能进行分析。
解:
利用MATLAB求解的基本步骤如下
1.建立系统的数学模型
代码
clc;
clear;
num=[11];
den=conv([10],conv([1-1],[14]));
sys=tf(num,den)%控制系统的开环传递函数模型
程序运行结果
Transferfunction:
s+1
-----------------
s^3+3s^2-4s
结果输出是用来绘制部分根轨迹的那部分传递函数
2.绘制根轨迹图
rlocus(sys);%绘制系统的根轨迹曲线
gridon;
title('根轨迹图');
得到系统根轨迹如图1
图1系统根轨迹图
利用“rlocfind“命令计算选定点处的增益和其他闭环极点。
[k,poles]=rlocfind(sys)%计算选定点处的增益和其他闭环极点
运行结果
k=6.2809
poles=-2.9488
-0.0256+1.4592i
-0.0256-1.4592ii
当增益K>6时,闭环系统的极点都位于虚轴的左部,处于稳定。
3.使用rltool进行分析
执行命令“rltool(sys)“得到根轨迹分析界面图形,图2所示
图2控制系统根轨迹分析与设计器
利用rltool进行工具分析系统的阶跃响应。
设定系统增益为20,可得到如图3的结果
分析,系统稳定,并且系统误差为0。
系统的穿越频率为1.41,相角稳定裕度为17,剪切频率为1.38。
图3K=20时系统的阶跃响应
实验5MATLAB/Simulink在频域分析法中的应用
一、实验目的
1、掌握MATLAB绘制伯德图和乃奎斯特曲线;
2、熟练应用MATLAB分析稳定裕度。
二、实验设备
电脑一台;MATLAB仿真软件一个
三、实验内容
1、已知晶闸管-直流电机开环系统结构图如图所示。
试用Simulink动态结构图进行频域分析并求频域性能指标。
解:
利用simulink求解步骤如下
步骤1在simulink中建立系统动态模型,如下图
图表1系统动态模型图
步骤2求取系统的线性空间状态模型,并求取频域性能指标
在MATLAB运行以下命令
[A,B,C,D]=linmod('Samples_7_9');%提取simulin系统的线性空间状态模型
sys=ss(A,B,C,D);
margin(sys);%求取频域性能指标
图表2系统的开环bode图和频域性能指标
从图中可以看出:
幅值裕度GM=26.4dB,穿越频率为152rad/sec
相位裕度PM=54deg,穿越频率为25.5rad/sec
实验6MATLAB_Simulink在控制系统校正中的应用
一、实验目的
1、掌握建立控制系统的数学模型及设计系统的串联校正装置;
2、了解校正前后系统性能的比较。
二、实验设备
电脑一台;MATLAB仿真软件一个
三、实验内容
1、某单位负反馈控制系统的开环传递函数
,设计一个串联的校正装置,使校正后的系统静态速度误差系数
,相角裕度
,增益裕量
。
解:
求解步骤如下
步骤1计算得系统开环传递函数
步骤2建立控制系统的数学模型
代码如下
clc;
clear;
num_open=[020];
den_open=conv(conv([10],[11]),[12]);
sys_open=tf(num_open,den_open)
运行结果
Transferfunction:
20
-----------------
s^3+3s^2+2s
步骤3分析系统的动态特性
[Gm,Pm,Wcg,Wcp]=margin(sys_open)%计算相角裕量和增益裕量
margin(sys_open);
运行结果
Gm=0.3000
Pm=-28.0814
Wcg=1.4142
Wcp=2.4253
频率响应特性曲线如下
图表1闭环系统的频率响应曲线
计算结果显示,未校正系统增益裕量只有—10.5,相角裕量为—28.0814,相角穿越频率为1.4142,幅值穿越频率为2.4253。
系统尚不稳定需要串联校正环节。
步骤4设计系统的串联校正装置
先设计止滞后环节。
假定校正后的系统增益穿越频率为1,并且取零极点之比为10,则滞后环节的传递函数为
%设计串联校正器的滞后环节
num_zhihou=[10.1];
den_zhihou=[10.01];
sys_zhihou=tf(num_zhihou,den_zhihou);%滞后环节的传递函数模型
sys_new=sys_open*sys_zhihou%加入滞后环节后系统的开环传递函数
margin(sys_new);%绘制加入滞后环节后系统的Bode曲线
图表2加入滞后环节的系统频率响应曲线
根据滞后校正得出的结果,相应设计超前校正校正环节为
,此时系统的频率响应如图表3.
%设计串联校正器的超前环节
num_chaoqian=[10.5];
den_chaoqian=[15];
sys_chaoqian=tf(num_chaoqian,den_chaoqian);
sys_new=sys_new*sys_chaoqian;
margin(sys_new);
图表3加入超前滞后校正环节后系统的频率响应曲线
从上图知,此时闭环系统的增益裕量为13.3,相角裕量为52.5,穿越频率为1.37;
%对比校正前后的系统频率响应
figure
(1);
bode(sys_open);
holdon;
bode(sys_new);
gtext('校正前的');gtext('校正后的');
gtext('校正前的');gtext('校正后的');
gridon
图表4系统校正前后不同的频率响应曲线
校正后的系统开环传递函数为
Transferfunction:
20s^2+12s+1
----------------------------------
s^5+8.01s^4+17.08s^3+10.17s^2+0.1s
步骤5比较教正前后的系统性能
%系统校正前后的阶跃响应曲线
figure
(2);
step(feedback(sys_open,1));
gridon;
figure(3);
step(feedback(sys_new,1));
gridon;
gtext('校正前的');gtext('校正后的');
gridon;
图表5系统校正前的阶跃响应曲线
图表6系统校正后的阶跃响应曲线
步骤6采用rltool工具进行校正分析
使用命令rltool(sys_open)校正结果如下图
图表7利用rltool进行校正环节设计
实验6MATLAB_Simulink在控制系统校正中的应用
一、实验目的
1、掌握建立控制系统的数学模型及设计系统的串联校正装置;
2、了解校正前后系统性能的比较。
二、实验设备
电脑一台;MATLAB仿真软件一个
三、实验内容
1、某单位负反馈控制系统的开环传递函数
,设计一个串联的校正装置,使校正后的系统静态速度误差系数
,相角裕度
,增益裕量
。
解:
求解步骤如下
步骤1计算得系统开环传递函数
步骤2建立控制系统的数学模型
代码如下
clc;
clear;
num_open=[020];
den_open=conv(conv([10],[11]),[12]);
sys_open=tf(num_open,den_open)
运行结果
Transferfunction:
20
-----------------
s^3+3s^2+2s
步骤3分析系统的动态特性
[Gm,Pm,Wcg,Wcp]=margin(sys_open)%计算相角裕量和增益裕量
margin(sys_open);
运行结果
Gm=0.3000
Pm=-28.0814
Wcg=1.4142
Wcp=2.4253
频率响应特性曲线如下
图表1闭环系统的频率响应曲线
计算结果显示,未校正系统增益裕量只有—10.5,相角裕量为—28.0814,相角穿越频率为1.4142,幅值穿越频率为2.4253。
系统尚不稳定需要串联校正环节。
步骤4设计系统的串联校正装置
先设计止滞后环节。
假定校正后的系统增益穿越频率为1,并且取零极点之比为10,则滞后环节的传递函数为
%设计串联校正器的滞后环节
num_zhihou=[10.1];
den_zhihou=[10.01];
sys_zhihou=tf(num_zhihou,den_zhihou);%滞后环节的传递函数模型
sys_new=sys_open*sys_zhihou%加入滞后环节后系统的开环传递函数
margin(sys_new);%绘制加入滞后环节后系统的Bode曲线
图表2加入滞后环节的系统频率响应曲线
根据滞后校正得出的结果,相应设计超前校正校正环节为
,此时系统的频率响应如图表3.
%设计串联校正器的超前环节
num_chaoqian=[10.5];
den_chaoqian=[15];
sys_chaoqian=tf(num_chaoqian,den_chaoqian);
sys_new=sys_new*sys_chaoqian;
margin(sys_new);
图表3加入超前滞后校正环节后系统的频率响应曲线
从上图知,此时闭环系统的增益裕量为13.3,相角裕量为52.5,穿越频率为1.37;
%对比校正前后的系统频率响应
figure
(1);
bode(sys_open);
holdon;
bode(sys_new);
gtext('校正前的');gtext('校正后的');
gtext('校正前的');gtext('校正后的');
gridon
图表4系统校正前后不同的频率响应曲线
校正后的系统开环传递函数为
Transferfunction:
20s^2+12s+1
----------------------------------
s^5+8.01s^4+17.08s^3+10.17s^2+0.1s
步骤5比较