自动控制原理实验二
>> margin(g) >> [gm,pm,wc,wg]=margin(g) 显示结果 :
――求出系统稳定裕度
5、SIMULINK 的应用 SIMULINK 是一个用来对动态系统进行建模,仿真和分析的软件包,支持连续,离散及两者混
合的线性和非线性系统的建模和仿真.该软件包为用户提供了用控制方框图进行建模的图形接 口,对控制系统的仿真更为直观,便利和灵活,尤其对于复杂系统的仿真更为便利.
>> k=dcgain(g) 显示结果:
2 系统的单位脉冲响应和单位斜坡以及任意输入响应 单位脉冲响应的指令为 impulse(sys) MATLAB 除了能够绘制 LTI 系统的单位阶跃响应和脉冲响应之外,还能够绘制任意输入激励响
应. 指令格式为
lsim(sys,u,t); u 为输入信号, t 为用户指定时间向量. >> impulse(g) >> t=0:0.1:20; >> u=5+2*t+8*t.^2; >> lsim(g,u,t); >> grid on 显示结果:
贵州大学实验报告
学院:电子信息学院
专业:电子信息工程
班级:电信 111
姓名
学号
实验组
实验时间
2013.11.16
指导教师
尉学军
成绩
实验项目名称
toolbox 和 simulink 在自控中的应用
实
1.利用 MATLAB 对系统进行频域分析
验
2.利用 MATLAB 离散系统的时域相应的特点以及参数设置
Transfer function: 80
--------------s^2 + 14 s + 80 >> lsim(t,input1,t1) 显示结果:
下面是一个M文件编写的对一任意稳定震荡系统的时域分析的程序
function shuyu(num,den)
finalvalue=polyval(num,0)/polyval(den,0) %计算单位阶跃响应输出的稳态值
n=1;
while y(n)<0.1*finalvalue
n=n+1;
end
m=1;
while y(m)<0.9*finalvalue
m=m+1;
end
risetime=t(m)-t(n)
l=length(t);
ቤተ መጻሕፍቲ ባይዱ
while (y(1)>0.98*finalvalue)&(y(l)<1.02*finalvalue)
l=l-1;
end
settlingtime=t(l)
指
导
教
师
意
见
签名:
年月日
注:各学院可根据教学需要对以上栏目进行增减。表格内容可根据内容扩充。
从零极点到传递函数 指令格式:[num,den]=zp2tf(z,p,k),大家可以自学这个指令,因为时间关系,在此不讲。 从传递函数到部分分式: [res,pole,k]=residue(num,den)
[r,p,k]=residue(num,den) 显示结果:
从部分分式到传递函数: [num,den]=residue(res,pole,k) 控制系统三种基本连接形式
k(s1)
s(s4)(s2 2s5)
绘制含有§和 wn 栅格的根轨迹. >> num=[1,1]; >> den=[conv([1,0],conv([1,4],[1,2,5]))]; >> g=tf(num,den); >> rlocus(g);
>> sgrid; 显示结果:
在 MATLAB 控制系统的工具箱中,还提供了计算给定根的的根轨迹增益和相应极点向量的交互函 数 rlocfind(),此函数与 rlocus 函数配合使用 >> [k,poles]=rlocfind(g) 显示结果:
例题1: 绘制以下系统的单位阶跃响应,并求出系统的 wn,§,和 y(∞).
G(s)=
3
s2 1.5s 3
解:
>> num=3;den=[1,1.5,3];
>> g=tf(num,den);
>> step(g)
>> grid on
显示结果:
>> [wn,z,p]=damp(g) %计算自然频率和阻尼比系数 显示结果:
>> f1=zpk([-3,-7],[-21,-1,-1+2*i,-1-2*i],21)
显示结果: >> [z,p,k]=zpkdata(f,'v')
显示结果:
传递函数的转换 从传递函数到零极点的表达方式:
指令格式: [z,p,k]=tf2zp(num,den) >> num=[5,9]; >> den=[2,7,1,11]; >> [z1,p1,k1]=tf2zp(num,den) 显示结果:
1 启动和界面说明
点击 或者在命令窗口输入 simulink;会出现 Simulink Library Browser,可以看见里 面有很多子模块,每个模块里面又有子模块,这次重点介绍第一个模块 simulink,这一模块共有 16 个模块:有连续的,有离散的,有函数与表格库,有数学库,有非线形系统,信号与系统模型,输 出库,信号源,和子系统.
串联 指令格式 sys=sys1*sys2 [num,den]=series[num1,den1,num2,den2] >> num1=1; >> den1=[1,1,0]; >> num2=[1,2]; >> den2=[conv([1,3],[1,3])] >> [num3,den3]=series(num1,den1,num2,den2) 显示结果:
[y,x,t]=step(num,den);
step(num,den); %绘制系统阶乐响应曲线
grid on;
[Y,k]=max(y);
timetopeak=t(k) %计算峰值时间
percentofshoot=100*(Y-finalvalue)/finalvalue %计算超调量
n=1;
while y(n)<0.1*finalvalue
下面是直接在命令窗口输入的IF语句指令,也是求一个系统的任意输入响应,大家自己调 试。 >> t1=0:0.01:2.99 for n1=1:100
input1(n1)=1; end
for n2=101:200 input1(n2)=n2*0.01;
end for n3=201:300
input1(n3)=2; end plot(t1,input1) >>num =80; >>den=[1,14,80]; >> t=tf(num,den)
的极点和零点自动确定.
step(sys,tfinal); tfinal 系统仿真的结束时间.
step(sys,t); t 为用户自己定义的时间向量,t=ti:dt:tf,
不管 ti 为何值,系统总是以为在 t=0,单位阶跃信号作用于系统.
step(sys1,sye2,..sysn,t);同时对 N 个系统进行仿真,以便于进行比较.
目
3.用 simulink 进行系统分析和仿真的方法。
的
实
验
根据本实验的特点、要求和具体条件,采用教师简单讲解,学生自己上机调试
要 和自学
求
实
验 无
原
理
实
验
安装 MATLAB 的计算机一台
仪
器
1、传递函数的表示方法
实
G(s)=
5s 9
验
2s3 7s2 s11
步
可以这么来表示:
>> num=[5,9]; ――分子系数 骤
>> den=[2,7,1,11]; ――分母系数
>> f=tf(num,den)
显示结果:
传递函数零极点表述形势:
G(s)=
2(s1 3 )s(7 )
(s2)1 s( 1 )s( 12*i)s( 12*i)
指令格式为
函数名=zpk([z1,z2…zm],[p1,p2…pn],k)
并联格式 Sys=sys1+sys2 [num,den]= parallel(num1,den1,num2,den2) >> [num4,den4]=parallel(num1,den1,num2,den2) 显示结果:
反馈连接 Sys=feedback(sys1,sys2) 负反馈 Sys=feedback(sys1,sys2,1) 正反馈
时域分析方法具有直观和准确的优点,并且可以提供系统时间响应的所有信息在没有采用
计算机辅助分析时,时域分析方法特别适合对二阶系统的性能进行分析和计算对于高阶系统 则
采用根轨迹或者频率法进行分析和计算.但是在采用了计算机辅助分析之后,时域分析方法可以
适合任意阶的 LTI 系统.
1).系统的阶跃响应
指令格式: step(sys); 绘制一个系统的单位阶跃响应图,仿真时间 t 由 MATLAB 根据系统
4、 SISO 系统的频域分析 绘制 Nyquist 图
指令格式为: nyquist(sys); nyqusit(sys,{wmin,wmax}); 绘制指定频率的幅相曲线 >>nyquist(g) 显示结果:
绘制开环 BODE 图 Bode(sys) >>bode(g) >> grid 显示结果: