用MATLAB进行控制系统的动态性能的分析——自动控制原理课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:
课程设计
题目用MATLAB进行控制系统的动态
性能的分析
学院自动化学院专业自动化专业班级
姓名
指导教师
2013 年 1 月 1 日
课程设计任务书
学生: 专业班级: 指导教师: 工作单位: 自动化学院
题 目: 用MATLAB 进行控制系统的动态性能的分析 初始条件:已知三阶系统的闭环传递函数为
)64.08.0)(11
(7
.2)(2+++=
s s s a
s G
分析系统的动态性能。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、 用MATLAB 函数编程,求系统的动态性能指标。

2、 设64.08.02++s s 的根是系统的主导极点,编制程序,求系统的动态性能指标。

3、
用MATLAB 编制程序分析a =0.84,a =2.1,a =4.2系统的阶跃响应曲线,
分析高阶系统忽略附加极点,近似为二阶系统的条件。

3、课程设计说明书中要求写清楚计算分析的过程,列出MATLAB 程序和MATLAB 输出。

说明书的格式按照教务处标准书写。

时间安排:
指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日
摘要
在控制系统中,我们常常很关注系统的动态性能指标,以此来评估系统对突然变化的输入信号的适应能力。

对于二阶系统,特别是处于欠阻尼状态的典型二阶系统,分析其动态性能比较方便。

而三阶及以上的高阶系统分析起来则比较复杂,为了工程上的需求,我们往往可以使用近似的方法来估算系统的动态性能。

因此,研究将高阶系统近似为二阶系统估算其动态性能的条件显得尤为重要。

我们先将给定高阶系统近似为二阶系统来计算其动态性能,然后给定系统中的参数几个确定的值,并用MATLAB软件来精确分析高阶系统的动态性能,并与近似计算所得结果进行比较,从而可以得到将高阶系统近似为二阶系统以估算其动态性能的条件。

利用数学工具MATLAB编程,我们可以准确地分析系统的动态性能,并将结果与估算结果进行比较以得到结论。

因此,掌握MATLAB的基本使用方法和编程技巧以及其在控制理论中的应用也非常重要。

关键词:控制系统MATLAB 动态性能近似条件
目录
1高阶系统动态性能分析 (4)
1.1传递函数整理 (4)
1.2Matlab 编程求解系统动态性能指标 (4)
2闭环主导极点和近似分析 (6)
2.1闭环主导极点 (6)
2.2系统动态性能的近似分析 (6)
3a值确定时系统的动态性能 (9)
3.1a=0.84时系统的动态响应 (9)
3.2a=2.1时系统的动态响应 (11)
3.3a=4.2时系统的动态响应 (11)
3.4高阶系统近似的条件 (12)
4心得体会 (14)
参考文献 (15)
附录仿真程序 (16)
本科生课程设计成绩评定表 (17)
1 高阶系统动态性能分析
1.1 传递函数整理
已知三阶系统的闭环传递函数为
)64.08.0)(11
(7
.2)(2+++=
s s s a
s G
将其化简为典型三阶系统传递函数的形式
)
64.08.0)((64.022
.4)(2+++=s s a s a
s G
式中a 为未知参数,系统没有零点,有3个极点,其中1个实数极点,1对共轭复数极点。

根据题目给定条件,系统的闭环主导极点为方程64.08.02++s s =0的共轭复根。

利用该式便于利用系统的闭环主导极点来近似分析系统的动态性能。

将系统的闭环传递函数化为一般形式,有
a
s a s a s a
s G 64.0)8.064.0()8.0(7.2)(2
3+++++=
利用该式便于使用Matlab 对系统的动态性能进行分析。

1.2 M atlab 编程求解系统动态性能指标
为了方便后面利用Matlab 对系统动态性能进行分析,可以根据三阶系统闭环传递函数的一般表达式,编写通用的求解性能指标的程序,程序如下:
num = [2.7*a];
den = [1 0.8+a 0.64+0.8*a 0.64*a]; G = tf(num,den);
t = 0:0.01:30; %给定时间围 step(G,t); %输出阶跃响应曲线
[y,x,t]=step(num,den,t);
ymax = max(y); %求响应峰值
yss = y(length(t)); %求响应终值
pos = (ymax - yss) / yss %求超调量
for n = 1:3001
if y(n) == ymax;tp=n;
end
end
tp = (tp-1)/100 %求峰值时间
n=3001;
y1=1.02*yss;
y2=0.98*yss; %取
△=0.02
while n > 0
n = n-1;
if y(n) >= y1 | y(n) <= y2;
ts=n;
break
end
end
ts=(ts-1)/100 %求调节时间
xlabel('t');ylabel('h(t)');
title('Unit-Step Response');
grid
利用该程序可以通过Matlab 准确分析系统的动态性能指标,前提是给定了a的数值,将a的值代入程序即可完成计算。

2 闭环主导极点和近似分析
2.1 闭环主导极点
对于该三阶系统来说,它有一对共轭复数极点s 1,2=-0.4 + j0.69,一个实数极点s 3=-a ,其中共轭复数极点s 1,2是系统的闭环主导极点。

假设s 3距离虚轴的距离比s 1、s 2离虚轴的距离大得多,即|a|>>|-0.4 + j0.69|,则可以将该三阶系统近似为相应的二阶系统,从而达到简化分析的目的。

由三阶系统的闭环传递函数
)64.08.0)(11
(7
.2)(2+++=
s s s a
s G
忽略分母中)11
(+s a
项,则可以得到相应的二阶系统的闭环传递函数
64
.08.07
.2)('2
++=s s s G
从该式可以很容易看出二阶系统的ωn =0.8 rad/s ,ζ=0.5,故该二阶系统处于欠阻尼状态。

2.2 系统动态性能的近似分析
根据二阶系统在欠阻尼状态下动态响应性能指标的公式,很容易可以求出系统的动态性能指标
21ς
ωπ
ωπ-=
=
n d p t = 4.53s 2
1ςπς
σ--=e
= 0.163 n
s t ςω4
=
= 10s
利用Matlab 编程,可以得到系统的响应曲线,也可以对系统的动态性能指标进行求解,程序如下:
num = [2.7];
den = [1 0.8 0.64];
G = tf(num,den)
t = 0:0.01:30; %给定时间围step(G,t); %输出阶跃响应曲线
[y,x,t] = step(num,den,t);
ymax = max(y); %求响应峰值
yss = y(length(t)) %求响应终值
pos = (ymax - yss) / yss %求超调量
for n = 1:3001
if y(n) == ymax; tp=n;
end
end
tp = (tp-1) / 100 %求峰值时间
n = 3001;
y1 = 1.02*yss;
y2 = 0.98*yss; %取
△=0.05
while n > 0
n = n-1;
if y(n) >= y1 | y(n) <= y2;
ts = n;
break
end
end
ts = (ts-1)/100 %求调节时间
xlabel('t'); ylabel('h(t)');
title('Unit-Step Response');
grid
保存并运行该程序,得到的响应曲线如图2-1所示
图2-1 近似计算时系统的单位阶跃响应曲线
同时可以求得系统动态性能如下:
σ= pos = 0.1630
t p = 4.5300s
t s = 10.0900s
可以看出,该结果与根据公式直接计算一致。

3a值确定时系统的动态性能
3.1a=0.84时系统的动态响应
将a=0.84代入1.2节所列程序中,或者在程序最前面加入语句
a = 0.84;
得到如下程序
a = 0.84;
num = [2.7*a];
den = [1 0.8+a 0.64+0.8*a 0.64*a];
G = tf(num,den);
t = 0:0.01:30; %给定时间围step(G,t); %输出阶跃响应曲线
[y,x,t] =step(num,den,t);
ymax = max(y); %求响应峰值
yss = y(length(t)); %求响应终值
pos = (ymax - yss) / yss %求超调量
for n = 1:3001
if y(n) == ymax; tp=n;
end
end
tp = (tp-1) / 100 %求峰值时间
n=3001;
y1 = 1.02*yss;
y2 = 0.98*yss; %取
△=0.02
while n > 0
n = n-1;
if y(n) >= y1 | y(n) <= y2;
ts=n;
break
end
end
ts=(ts-1) / 100 %求调节时间
xlabel('t'); ylabel('h(t)');
title('Unit-Step Response');
grid
保存程序并运行,可以得到系统的单位阶跃响应曲线如图3-1所示
图3-1 a=0.84时系统的动态响应曲线
同时得到系统的动态性能指标如下
σ=pos =0.0874
t p = 6.0700s
t s = 8.2700s
3.2a=2.1时系统的动态响应
将a=2.1代入1.2节所示程序并运行程序,得到系统的单位阶跃响应曲线如图3-2所示
图3-2 a=2.1时系统的动态响应曲线
同时得到系统的动态性能指标如下
σ=pos = 0.1492
t p = 5.0900s
t s = 10.4700s
3.3a=
4.2时系统的动态响应
将a=2.1代入1.2节所示程序并运行程序,得到系统的单位阶跃响应曲线如图3-2所示
图3-3 a=4.2时系统的动态响应曲线
同时得到系统的动态性能指标如下
σ=pos =0.1597
t p =4.7900s
t s =10.3100s
3.4高阶系统近似的条件
通过以上分析,我们来对高阶系统近似为二阶系统以及a取不同值时系统的动态响应性能指标列入表格做一个比较。

表3-1 不同情况下系统的动态响应指标
通过对表3-1的分析,可以得到闭环非主导极点对系统的以下几个作用:
1)增大峰值时间,使系统响应速度变缓。

当系统的闭环非主导极点越接近虚轴时,
这种作用越明显。

2)增大系统阻尼,减小系统超调量。

当闭环非主导极点从远离虚轴到越接近主导极
点的实部坐标时,这种作用越明显。

可以验证,当|s3|<|Res1|,则系统将进入
过阻尼状态,此时s3将代替共轭复数极点成为系统的闭环主导极点。

3)缩短调节时间,影响方式与影响超调量一致。

综上所述,闭环非主导极点对系统动态性能总的影响是增大峰值时间,减小系统的超调量和调节时间,并且其影响作用随着它从远离虚轴到接近虚轴而增大,故我们可以得到以下结论:
高阶系统忽略附加极点,近似为二阶系统的条件为:附加极点s3的模远小于闭环主导极点s1的实部的绝对值,即
|s3|<<|Res1|
对于高阶系统来说,越靠近虚轴的极点对系统动态性能的影响越显著,而离虚轴越远对系统的动态性能越微弱。

因此,我们把离虚轴近的极点看做闭环主导极点,而把离虚轴较远的极点看做附加极点。

由表3-1可以看出,当a=0.84时,将系统近似为二阶系统误差很大;当a=2.1时,将系统近似为二阶系统误差要小得多;而当a=4.2时进行近似计算误差已经非常小了,完全满足工程上的需要。

故可以认为,如果系统闭环传递函数的某极点的实部大于闭环主导极点实部5-6倍以上时,可以忽略该极点对系统动态性能的影响而将系统近似为二阶系统来分析。

4心得体会
本次的《自动控制原理》课程设计在时间上略显仓促,加上对MATLAB接触不多,仅仅在上个学期完成“基础强化训练”时初步接触,因此在设计过程中遇到了一定的困难。

通过自己这几天对MATLAB编程的学习,我掌握了一些常用的MATLAB语句,比如常规的计算以及if-end、for-end、while-end、switch-case-end等语句,也学习了如何使用MATLAB来对控制系统进行分析。

此外,由于在本学期在学习《自动控制原理》时,对高阶系统并没有太在意,因此在分析本课程设计题目时不知从何下手,于是我查阅课本和相关资料学会了一些分析三阶系统动态性能的方法。

在解决了以上困难后,我开始对本次课程设计的题目进行分析,一步一步地完成了课题。

总的来说我的课程设计题目并不难,所给三阶系统只有一个闭环非主导极点而没有闭环零点,因此处理起来也显得比较简单。

尽管如此,我觉得我还是有不少收获。

由于在控制系统中,几乎所有的控制系统都是高阶系统,其动态性能是比较复杂的,因此掌握分析其动态性能的方法是很重要的。

我们可以通过近似计算来分析其动态性能,但是如果系统不满足近似计算得条件,则需要通过数学工具MATLAB来进行分析。

通过使用MATLAB,我们可以得到更准确的系统动态性能指标,并能处理更加复杂的系统,这是非常有实用价值的。

在完成课程设计的过程中,我更加深刻地体会到将所学知识加以应用是多么重要。

如果没有本次课程设计,我可能还认为MATLAB就是用来处理数学问题的一款软件,也不知道如何分析一些复杂的系统。

现在,我才知道原来使用MATLAB来分析控制理论中的问题是如此方便、准确。

同时,通过本次课程设计,我觉得我分析问题、解决问题的能力有所提高,也认识到遇到不懂的问题及时请教老师、同学是有多么重要。

虽然此课题并不是团队课题,但请教老师、同学也是无可厚非的,在这个越来越注重团结协作精神的年代,孤军奋战常常并不是我们所需要的。

当下的先进科研成果很少是仅凭个人能力完成的,大多数都是由团队完成的,毕竟众人拾柴火焰高,加强团队协作精神才有望取得更多的成果。

参考文献
[1]胡寿松.自动控制原理(第四版),科学,2001.8
[2]王万良.自动控制原理,高等教育,2008.6
[3]叔军.MATLAB7.0控制系统应用与实例,机械工业,2006
[4]余成波、莲等.自动控制原理,清华大学,2006.1
[5]学峰、建斌等.自动控制原理实践教程,中国水利水电,2006.4
[6]Katsuhiko Ogata著、王峻译.控制理论MATLAB教程,电子工业,2012.8
附录仿真程序
num = [2.7*a];
den = [1 0.8+a 0.64+0.8*a 0.64*a];
G = tf(num,den);
t = 0:0.01:30; %给定时间围step(G,t); %输出阶跃响应曲线
[y,x,t]=step(num,den,t);
ymax = max(y); %求响应峰值
yss = y(length(t)); %求响应终值
pos = (ymax - yss) / yss %求超调量
for n = 1:3001
if y(n) == ymax;tp=n;
end
end
tp = (tp-1)/100 %求峰值时间
n=3001;
y1 = 1.02*yss;
y2 = 0.98*yss; %取
△=0.02
while n > 0
n = n-1;
if y(n) >= y1 | y(n) <= y2;
ts = n;
break
end
end
ts = (ts-1) / 100 %求调节时间
xlabel('t'); ylabel('h(t)');
title('Unit-Step Response');
grid
本科生课程设计成绩评定表
指导教师签字:
年月日。

相关文档
最新文档