面向结构图的连续系统数字仿真.docx
- 文档编号:10324143
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:22
- 大小:964.95KB
面向结构图的连续系统数字仿真.docx
《面向结构图的连续系统数字仿真.docx》由会员分享,可在线阅读,更多相关《面向结构图的连续系统数字仿真.docx(22页珍藏版)》请在冰点文库上搜索。
面向结构图的连续系统数字仿真
学号:
2010133330
课程设计
题目
面向结构图的连续系统数字仿真
学院
计算机科学与信息工程学院
专业
自动化
班级
2010级2班
学生姓名
小
指导教师
诗贤
2013
年
12
月
20
日
面向结构图的连续系统数字仿真
姓名:
园班级:
10自动化3班学号:
**********
摘要
根据自动控制系统中面向结构图的数字仿真的基本思想,探讨了仿真过程中典型环节的规性、系统的连接矩阵、仿真求解、程序框图问题,并应用到实际的例当中,并分析了结果总结了相关特点和相关结论。
自动控制系统常常是由多环节组成的,要应用数字仿真法对系统进行分析和研究,首先需要求出总的传递函数,再转化为状态空间表达式的形式,然后对其求解。
当改变系统某一环节的参数时,尤其是要改变小闭环中某一环节的参数时,以上整个过程又需要重新计算,这对研究对象参数变化对整个控制系统的影响是十分不便的,为了克服这些缺点,同时大多数从事自动化工作的科技人员更习惯于用结构图的形式来分析和研究控制系统,为此产生了面向结构图的仿真法。
该法只需将各个环节的参数及各环节间的连接式输入计算机,仿真程序就能自动求出闭环系统的状态空间表达式。
本课程设计主要介绍典型环节参数和连接关系构成闭环系统的状态程的法,而动态响应的计算,仍采用四阶龙格-库塔法。
这种法具有便于研究各个环节参数对系统的影响,并可以得到每个环节的动态响应,以及对多输入输出系统的进行仿真的有点。
关键字:
结构图;典型环节;连接矩阵;数字仿真;
1、设计任务
已知某一系统结构如下图所示,编写matlab程序求a分别为2,4,6,8,10,12时输出量y的动态响应。
图1
2、需求分析及概要设计
2.1需求分析
根据上述设计任务我们可以基本明确在我们课程设计当中应该明确以下几个面:
✓熟悉在数字计算机仿真技术中常用的四阶龙格-库塔算法。
✓明确在面向结构图的连续系统数字仿真,典型环节及其系数矩阵确定。
✓明确各连接矩阵的确定。
✓能够熟练运用MATLAB仿真软件。
2.2设计思路
自动控制系统常常是由多环节组成的,要应用数字仿真法对系统进行分析和研究,首先需要求出总的传递函数,再转化为状态空间表达式的形式,然后对其求解。
当改变系统某一环节的参数时,尤其是要改变小闭环中某一环节的参数时,以上整个过程又需要重新计算,这对研究对象参数变化对整个控制系统的影响是十分不便的,为了克服这些缺点,同时大多数从事自动化工作的科技人员更习惯于用结构图的形式来分析和研究控制系统,为此产生了面向结构图的仿真法。
该法只需将各个环节的参数及各环节间的连接式输入计算机,仿真程序就能自动求出闭环系统的状态空间表达式。
以下是我们课程设计的主要设计思路框图:
图2
2.3连接矩阵确定:
一个控制系统用典型环节来描述时,必须用连接矩阵把各个典型环节连接起来。
所谓连接矩阵,就是用矩阵的形式表示各个典型环节之间的关系。
以下是我们课程设计当中连接矩阵确定的分析过程:
图3
由上图我们可以得出各环节输入与各环节输出间的关系,以及系统输出与各
环节输出间的关系分别为
和
。
由此可得各个环节的输入,以及系统输出的关系表达式为:
,
根据以上两式和各典型环节的系数值,可得如下矩阵和系数矩阵:
,
,
。
3、算法实现
3.1面向结构图的连续系统数字仿真流程框图
在本次课程设计当中,我们通过分析题目随后开始我们的程序编写,我们发现在编写程序上,变化数据的输入上我们能够采用两种不同的法,一种是把变化的数据通过人为的单个输入到程序中,然后逐一的得出我们对应的仿真结果。
另外一种是通过循环控制的式,把我们需要改变的数据加入到程序当中,并且把不同的变量对应的仿真结果反映到同一图片当中。
于是,这里我们这里就具有两个不同的程序流程图。
3.1.1单个输入程序流程图:
图4
3.1.2利用循环控制实现a=2,4,6,8,10,12的仿真分析的流程图:
图5
3.2程序代码
在本次课程设计当中,我们通过分析题目随后开始我们的程序编写,我们发现在编写程序上,变化数据的输入上我们能够采用两种不同的法,一种是把变化的数据通过人为的单个输入到程序中,然后逐一的得出我们对应的仿真结果。
另外一种是通过循环控制的式,把我们需要改变的数据加入到程序当中,并且把不同的变量对应的仿真结果反映到同一图片当中。
于是,这里我们这里就具有两个不同的程序代码。
3.2.1单个输入代码段
r=10;%系统输入型号
a=input('输入Ⅲ环节变量a=');%'输入Ⅲ环节变量a
P=[0.110.51;0110;11a1];%各个典型环节系数矩阵
W=[00-1;100;010];W0=[1;0;0];Wc=[001];%连接矩阵
Tf=input('仿真时间Tf=');h=input('计算步长h=');
A1=diag(P(:
1));%diag建立对角矩阵
B1=diag(P(:
2));
C1=diag(P(:
3));
D1=diag(P(:
4));
H=B1-D1*W;Q=C1*W-A1;%求取H,Q矩阵
A=inv(H)*Q;%inv逆矩阵根据公式求去AB矩阵
B=inv(H)*C1*W0;
x=[zeros(length(A),1)];%产生length(A)行1列的0矩阵
y=[zeros(length(Wc(:
1)),1)];
t=0;
fori=1:
Tf/h%龙格-库塔法求取状态程的根
K1=A*x+B*r;
K2=A*(x+h*K1/2)+B*r;
K3=A*(x+h*K2/2)+B*r;
K4=A*(x+h*K3)+B*r;
x=x+h*(K1+2*K2+2*K3+K4)/6;
y=[y,Wc*x];
t=[t,t(i)+h];
end
plot(t,y)%绘制仿真曲线以下是图片处理
gtext('a=2')
gtext('Tf=10')
gtext('h=0.2')
title('a=2时系统的仿真曲线')
xlabel('时间(t)')
ylabel('系统输出(y)')
3.2.2利用循环控制实现a=2,4,6,8,10,12的仿真分析代码:
r=10;%系统输入型号
W=[00-1;100;010];W0=[1;0;0];Wc=[001];%连接矩阵
Tf=input('仿真时间Tf=');h=input('计算步长h=');
fora=2:
2:
12
P=[0.110.51;0110;11a1];%各个典型环节系数矩阵
A1=diag(P(:
1));%diag建立对角矩阵
B1=diag(P(:
2));
C1=diag(P(:
3));
D1=diag(P(:
4));
H=B1-D1*W;Q=C1*W-A1;%求取H,Q矩阵
A=inv(H)*Q;%inv逆矩阵根据公式求去AB矩阵
B=inv(H)*C1*W0;
x=[zeros(length(A),1)];%产生length(A)行1列的0矩阵
y=[zeros(length(Wc(:
1)),1)];
t=0;
fori=1:
Tf/h%龙格-库塔法求取状态程的根
K1=A*x+B*r;
K2=A*(x+h*K1/2)+B*r;
K3=A*(x+h*K2/2)+B*r;
K4=A*(x+h*K3)+B*r;
x=x+h*(K1+2*K2+2*K3+K4)/6;
y=[y,Wc*x];
t=[t,t(i)+h];
end
plot(t,y)%绘制仿真曲线
holdon
end
holdoff
gtext('a=2')%图片标注
gtext('a=4')
gtext('a=6')
gtext('a=8')
gtext('a=10')
gtext('a=12')
gtext('Tf=15')
gtext('h=0.4')
title('系统仿真曲线')
xlabel('时间(t)')
ylabel('系统输出(y)')
4、调试分析过程及结果
4.1仿真和调试
在仿真过程中我们采用的是Matlab软件,Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
在现在的自动控制系统的仿真上,由于该软件的便使用,受到人们青睐。
因此我们课程设计也选用了该软件作为我们的调试和仿真的工具。
在是用Matlab软件对我们设计的系统进行调试的过程中,我们参照了很多关于程序调试的法,其常见的调试法有:
(1)设置或清除断点:
使用快捷键F12。
(2)执行:
使用快捷键F5。
(3)单步执行:
使用快捷键F10。
(4)stepin:
当遇见函数时,进入函数部,使用快捷键F11。
(5)stepout:
执行流程跳出函数,使用快捷键Shift+F11。
(6)执行到光标所在位置:
非常遗憾这项功能没有快捷键,只能使用菜单来完成这样的功能。
(7)观察变量或表达式的值:
将鼠标放在要观察的变量上停留片刻,就会显示出变量的值,当矩阵太大时,只显示矩阵的维数。
(8)退出调试模式:
没有设置快捷键,使用菜单或者快捷按钮来完成。
由于我们是初次使用这个软件,对于程序的调试我们也没有使用更为繁琐的步奏,而是采用了常见的调试法,直接调试。
在调试过程我们遇到了很多问题,包括语法的错误。
这主要是我们在编写程序的时候没有注意到matlab程序的变量设置问题。
最后通过查阅相关资料我们顺利的完成了程序编写,并且实现了我们想要功能。
其调试窗口(见下图):
图6
4.2仿真结果
在本课程设计当中,为了更好的验证系统,我们选用了两组数据进行验证,分别是仿真时间Tf=10,步长h=0.2和仿真时间Tf=15,步长h=0.4。
并得出了在这两组数据下a分别取不同值时的仿真曲线图。
4.2.1当仿真时间Tf=10,步长h=0.2时,不同a的仿真结果
(1)a=2的仿真曲线图:
图7
(2)a=4的仿真曲线图:
图8
(3)a=6的仿真曲线图:
图9
(4)a=8的仿真曲线图:
图10
(5)a=10的仿真曲线图:
图11
(6)a=12的仿真曲线图:
图12
(7)a=2,4,6,8,10,12的仿真结果:
图13
4.2.2当仿真时间Tf=15,步长h=0.4时,不同a的仿真结果
(1)a=2的仿真曲线图:
图14
(2)a=4的仿真曲线图:
图15
(3)a=6的仿真曲线图:
图16
(4)a=8的仿真曲线图:
图17
(5)a=10的仿真曲线图:
图18
(6)a=12的仿真曲线图:
.
图19
(7)a=2,4,6,8,10,12的仿真结果:
图20
5、心得体会
两的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如去把握一件事情,如去做一件事情,又如完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。
通过这次面向结构图的连续系统数字仿真的仿真,本人在多面都有所提高。
熟悉了在数字计算机仿真技术中常用的几种数值积分法,特别是四阶龙格-库塔法。
明确了在面向结构图的连续系统数字仿真中,典型环节及其系数矩阵确定。
明确了各连接矩阵的确定。
能够熟练运用MATLAB仿真软件。
在此感我们的老师.,老师谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的每个实验细节和每个数据,都离不开老师您的细心指导。
而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。
同时感对我帮助过的同学们,你们对我的帮助和支持,让我感受到同学的友谊。
由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感。
参考文献
[1]国勇等.计算机仿真技术与CAD.北京:
电子工业出版社,2008
[2]正林等.MATLAB/Simulink与控制系统仿真,电子工业出版社,2012
[3]海英等.控制系统的MATLAB仿真与设计.北京:
高等教育出版社,2009
[4]涂植英等.自动控制原理.大学出版社,2005
[5]邓莉,自动控制中面向结构图的连续系统数字仿真[J].工商大学学报.2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 结构图 连续 系统 数字 仿真