MATLAB实验报告 2Word文档格式.docx
《MATLAB实验报告 2Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告 2Word文档格式.docx(46页珍藏版)》请在冰豆网上搜索。
程序代码如下:
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
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在稳定性分析中的应用。
1、某随动系统的结构如图所示。
利用MATLAB完成如下工作:
(1)对给定的随动系统建立数学模型;
(2)分析系统的稳定性,并且绘制阶跃响应曲线;
(3)计算系统的稳态误差;
(4)大致分析系统的总体性能,并给出理论上的解释。
图1系统的结构图
解:
利用MATLAB求解的基本步骤如下
1.求取系统传递函数
clc;
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];
[y,t,x]=step(num,den)%计算闭环系统的阶跃响应
plot(x,y);
%绘制阶跃响应曲线
如下图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
tr=x(i)%计算此时对应的时间,就是阶跃响应的上升时间
%计算系统的峰值时间
[max_response,index]=max(y);
%查找系统阶跃响应的最大值
tp=x(index)%计算此时对应的时间,就是阶跃响应的峰值时间
%计算系统的调整时间---------》取误差带为2%
ifmax(y(i:
length(y)))<
=1.02*y_stable%如果当前响应值在误差带内
ifmin(y(i:
length(y)))>
=0.98*y_stable
%循环退出
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,
取不同值时的阶跃响应曲线
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);
figure
(1);
plot(t,y(:
1:
8));
grid;
gtext('
zuni=0'
zuni=0.1'
zuni=0.2'
zuni=0.5'
zuni=1'
zuni=2'
zuni=3'
zuni=5'
图1固定自然频率,阻尼比变化时系统的阶跃响应曲线
结论:
当固定频率后,改变阻尼比,在
<
1不会改变阶跃响应的震荡频率;
而当
>
1时,阶跃响应曲线不再震荡,系统阻尼。
(2)绘制
=0.55,
从0.1变化到1是系统的阶跃响应曲线
zuni=0.55;
%设定阻尼系数
omega=[0.10.20.40.71];
%设定自然频率向量
omega2=omega.*2;
%计算自然频率的平方
5%循环五次,分别计算在五种不同的自然频率下系统的阶跃响应
num=omega2(k);
den=[12*zuni*omega(k)omega2(k)];
%系统传递函数
%计算当前自然频率下,二阶系统的阶跃响应值
figure
(2);
5));
%在一幅图像上依次绘出上述5条阶跃响应曲线
omega=0.1'
omega=0.2'
omega=0.4'
omega=0.7'
omega=1.0'
图2固定阻尼系数,自然频率变化时系统的阶跃响应曲线
结论:
当自然频率
从0.1变化到1时,系统震荡频率加快,上升时间减少,过渡过程时间减少;
系统响应更加迅速,动态性能更好。
自然频率
决定了系统阶跃响应的震荡频率。
实验4MATLAB/Simulink在根轨迹分析法中应用
1、掌握MATLAB/Simulink绘制根轨迹函数;
2、掌握MATLAB/Simulink绘制根轨迹的方法。
1、已知单位负反馈控制系统的开环传递函数
(1)画出这个系统的根轨迹;
(2)确定使闭环系统稳定的增益值
;
(3)分析系统的阶跃响应性能;
(4)利用rltool对系统的性能进行分析。
1.建立系统的数学模型
代码
num=[11];
den=conv([10],conv([1-1],[14]));
sys=tf(num,den)%控制系统的开环传递函数模型
Transferfunction:
s+1
-----------------
s^3+3s^2-4s
结果输出是用来绘制部分根轨迹的那部分传递函数
2.绘制根轨迹图
rlocus(sys);
%绘制系统的根轨迹曲线
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分析稳定裕度。
1、已知晶闸管-直流电机开环系统结构图如图所示。
试用Simulink动态结构图进行频域分析并求频域性能指标。
利用simulink求解步骤如下
步骤1在simulink中建立系统动态模型,如下图
图表1系统动态模型图
步骤2求取系统的线性空间状态模型,并求取频域性能指标
在MATLAB运行以下命令
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、了解校正前后系统性能的比较。
1、某单位负反馈控制系统的开环传递函数
,设计一个串联的校正装置,使校正后的系统静态速度误差系数
,相角裕度
,增益裕量
求解步骤如下
步骤1计算得系统开环传递函数
步骤2建立控制系统的数学模型
代码如下
num_open=[020];
den_open=conv(conv([10],[11]),[12]);
sys_open=tf(num_open,den_open)
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;
图表3加入超前滞后校正环节后系统的频率响应曲线
从上图知,此时闭环系统的增益裕量为13.3,相角裕量为52.5,穿越频率为1.37;
%对比校正前后的系统频率响应
bode(sys_open);
holdon;
bode(sys_new);
校正前的'
校正后的'
gridon
图表4系统校正前后不同的频率响应曲线
校正后的系统开环传递函数为
20s^2+12s+1
----------------------------------
s^5+8.01s^4+17.08s^3+10.17s^2+0.1s
步骤5比较教正前后的系统性能
%系统校正前后的阶跃响应曲线
step(feedback(sys_open,1));
figure(3);
step(feedback(sys_new,1));
gtext('
图表5系统校正前的阶跃响应曲线
图表6系统校正后的阶跃响应曲线
步骤6采用rltool工具进行校正分析
使用命令rltool(sys_open)校正结果如下图
图表7利用rltool进行校正环节设计
step(feedback(sys_