matlab课程设计报告书.docx

上传人:b****4 文档编号:26907793 上传时间:2023-06-24 格式:DOCX 页数:16 大小:139.42KB
下载 相关 举报
matlab课程设计报告书.docx_第1页
第1页 / 共16页
matlab课程设计报告书.docx_第2页
第2页 / 共16页
matlab课程设计报告书.docx_第3页
第3页 / 共16页
matlab课程设计报告书.docx_第4页
第4页 / 共16页
matlab课程设计报告书.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

matlab课程设计报告书.docx

《matlab课程设计报告书.docx》由会员分享,可在线阅读,更多相关《matlab课程设计报告书.docx(16页珍藏版)》请在冰豆网上搜索。

matlab课程设计报告书.docx

matlab课程设计报告书

 

《计算机仿真及应用》

课程设计报告书

学号:

********,********

班级:

自动化081

姓名陈婷,万嘉

 

一、设计思想

 

二、设计步骤

 

三、调试过程

 

四、结果分析

 

五、心得体会

 

六、参考文献

选题一、

考虑如下图所示的电机拖动控制系统模型,该系统有双输入,给定输入

和负载输入

1、编制MATLAB程序推导出该系统的传递函数矩阵。

2、

若常系数增益为:

C1=Ka=Km=1,Kr=3,C2=0.8,Kb=1.5,时间常数T1=5,T2=0.5,绘制该系统的根轨迹、求出闭环零极点,分析系统的稳定性。

分别为单位阶跃输入,绘制出该系统的阶跃响应图。

(要求C1,Ka,Km,Kr,C2,Kb,T1,T2所有参数都是可调的)

一.设计思想

题目分析:

系统为双输入单输出系统,采用分开计算,再叠加。

要求参数均为可调,而matlb中不能计算未赋值的函数,那么我们可以把参数设置为可输入变量,运行期间根据要求赋值。

设计思路:

使用append命令连接系统框图。

选择‘参数=input('inputanumber:

')’实现参数可调。

采用的方案:

将结构框图每条支路稍作简化,建立各条支路连接关系构造函数,运行得出相应的传递函数。

在得出传递函数的基础上,使用相应的指令求出系统闭环零极点、画出其根轨迹。

通过判断极点是否在左半平面来编程判断其系统是否稳定。

二.设计步骤

(1)将各模块的通路排序编号

(2)使用append命令实现各模块未连接的系统矩阵

(3)指定连接关系

(4)使用connect命令构造整个系统的模型

三.调试过程

出现问题分析及解决办法:

在调试过程出现很多平时不注意且不易寻找的问题,例如输入的逗号和分号在

系统运行时不支持中文格式,这时需要将其全部换成英文格式,此类的程序错误需要细心。

在实现参数可调时初始是将其设为常量,再将其赋值进行系统运行,这样参数可调性差,后用‘参数=input('inputanumber:

')’实现。

最后是在建立通路连接关系时需要细心。

四.结果分析

源代码:

SymsC1C2KaKrKmKbT1T2

C1=input('inputanumber:

')

C2=input('inputanumber:

')

Ka=input('inputanumber:

')

Kr=input('inputanumber:

')

Km=input('inputanumber:

')

Kb=input('inputanumber:

')

T1=input('inputanumber:

')

T2=input('inputanumber:

')

G1=tf(C1,[01]);

G2=tf(Ka*Kr,[01]);

G3=tf(Km,[T11]);

G4=tf(1,[T21]);

G5=tf(1,[10]);

G6=tf(-C2,1);

G7=tf(-Kb,1);

G8=tf(-1,1);

Sys=append(G1,G2,G3,G4,G5,G6,G7,G8)

Q=[100;216;327;438;540;650;740;800;];

INPUTS1=1;

OUTPUTS=5;

Ga=connect(Sys,Q,INPUTS1,OUTPUTS)

INPUTS2=8;

OUTPUTS=5;

Gb=connect(Sys,Q,INPUTS2,OUTPUTS)

rlocus(Ga)

rlocus(Gb)

step(Ga,Gb)

Z1=tzero(Ga)

Z2=tzero(Gb)

p=pole(Ga)

p=pole(Gb)

ifp(real)<0

'yes'

else

'no'

end

 

仿真框图:

函数Ga(R(t)为输入)的根轨迹

Ga传函及其表达式:

Ga=connect(Sys,Q,INPUTS1,OUTPUTS)

Transferfunction:

1.2

------------------------

s^3+2.2s^2+s+0.96

 

函数Gb(M(t)为输入)的根轨迹

Gb传函及其表达式:

Gb=connect(Sys,Q,INPUTS2,OUTPUTS)

Transferfunction:

-2s-0.4

------------------------

s^3+2.2s^2+s+0.96

由图可知:

闭环极点靠近虚轴,系统快速性不好

函数Ga(上),Gb(下)的阶跃响应曲线

3.仿真结果分析

阶跃响应是衡量系统控制性能的优劣和定义时域性能的指标,所以可由此图得出两个函数的性能指标。

①G(a)函数

延迟时间:

上升时间:

峰值时间:

超调量:

调节时间:

稳态误差:

 

②G(b)函数:

延迟时间:

上升时间:

峰值时间:

超调量:

调节时间:

稳态误差:

以上数据含有误差,其中,延迟时间,上升时间和峰值时间表征系统响应初始阶段的快慢,调节时间表示系统过渡过程持续的时间,是系统的快速性的指标,超调量反应系统响应过程的平稳性,稳态误差反应系统复现输入的最终精度。

 

 

选题二、

考虑下列非线性系统,其数学描述为非线性微分方程组:

其中a=b=0.2,c=5.7,

利用Simulink仿真工具建模,并绘制出各个状态变量的时间响应曲线。

一.设计思想

对分方程组在零初始条件下进行拉氏变换,并作出各元件的方框图。

按照系统中各变量的传递顺序,依次将各元件的子结构图连接起来。

二.设计步骤

根据动态结构图用simulink中的元件画出系统的仿真框图。

三.调试过程

详细调试过程:

建立好模型后,点‘三角形’运行键运行,

在commendwindow中输入plot(tout,yout),运行,得到仿真的输出波形。

出现问题:

三个输出波形都在一个figure里面,不知道哪个输出对应哪个状态变量。

分析及解决办法:

在动态图中依次剪切掉两个输出,观察另一个输出的波形。

 

四.结果分析

仿真框图;

 

输出波形:

 

选题三、

对于时变受控对象模型

,考虑一个PI控制系统模型,如下图所示,其中控制器参数为:

比例常数Kp=200,积分常数Ki=10,饱和非线性环节的宽度

1、建模并绘制该闭环系统的阶跃响应曲线。

2、将PI控制器封装为一个PID控制器模块,参数Kp和Ki可调节。

一.设计思想

将时变受控对象模型转化,使其输入为u(t),输出为y(t)并将其封装以方便实现系统整体的建立,系统的第一部分用函数任意命名的方式实现。

二.设计步骤

(1)用simulink把转化后受控对象的关系式画成框图表达的形式,并将其封装。

(2)饱和非线性环节用Saturation,并分别赋值为(-1,1)以实现它的宽度为2.

(3)系统的第一部分用函数任意命名的方式实现。

其中,将Ki乘以一个积分环节,后用加法器实现它与Kp的和,这样,Kp,Ki可调,最后将其封装。

(4)将系统的三部分封装,与输入,输出相连,将输入接入阶跃信号,输出接示波器便可观察运行后的结果。

 

三.调试过程

出现问题及解决方法:

在调试过程中出现封装中子块的错误。

例如,关于e的关系式中变量要换为u,因为函数子块f(u)中指定了变量为u,而不是t。

其次是关系式输入中数与变量之间不能缺少称号‘*’,例如:

写成2u是错误的,应改为2*u。

以上问题均已解决,未解决的问题是无法保存simulink建模的*.dml文件。

 

四.结果分析

仿真框图:

PID封装模块:

 

PID内部:

 

Kp,Ki,积分器组成的子系统Subsystem模块:

 

PI受控对象模型:

(调用clock模块来给系统作时钟输入)

Fcn1:

Fcn:

设定Kp,Ki的值,Kp=200,Ki=10:

 

把总系统的输入接入阶跃信号,输出换为示波器:

点开示波器,点运行,出现整个系统的阶跃响应输出波形:

五、心得体会

小组共两人,共通过此次matlab课程设计,我们培养了对课题的分析能力、解题步骤的设计能力,熟悉了matlab的编程语句和对simulink的使用方法。

刚开始看第一个题目时,我们没怎么看懂,翻阅了书本之后,略悟了题目要求,两人综合意见,得出了第一种设计方案:

把参量都设置成变量形式,然后利用书本上的编程语句得到含有未知参量符号形式的传递函数表达式。

但是经过实际编程尝试,并以出现错误宣告失败。

两人分开外出查阅,花费了大量时间,明白了第一种思想是不可实现的。

求助了同学,又经过了本队的思考之后,我们决定用具体数值形式带入编程计算,而这些数值都通过语句设置为可调的。

然后,第一个题目的剩余部分迎刃而解。

我们明白到我们花费了大量的时间是因为对matlab语法、语句的不熟悉,因为平时疏于操练。

画第二题时,因为想不出X和Z相乘怎么做,也花费了大量时间,最后开机动手开始操作,发现模块里有‘相乘’的模块,我们深刻地明白到:

做仿真、做设计,就是要边思考边动手,动手有助于促进问题的解决。

因此,我们要在实践中摸索着前进,而不是等待思路都出来之后再动手完成操作。

设计第三题的过程中,我们学会了如何使用clock时钟模块作为系统的输入,并且观察到了自定义函数模块的细节,认识到粗心的危害,意识到细心检查的重要。

我们翻阅了课本,查阅了资料,这是一次对matlab的实践的学习。

我们学会了观察波形输出的两种方法:

一种是接入示波器来看,一种是用PLOT系列的语句来生成图形。

我们掌握了子系统的封装,熟悉了不少编程语句,经过了自身的思考,得出了结果,体会到共同的喜悦,增强了对仿真的喜爱。

老师的博学与和蔼,同学的互助精神,为小队的学习注入了很大的动力,通过本次的课设,我们也被唤醒了勤奋的意识,获益匪浅。

 

六、参考文献

郑阿奇主编.《MATLAB实用教程》第2版,电子工业出版社,2007.8

王宏华主编.《现代控制理论》,电子工业出版社,2006.8

程鹏主编.《自动控制原理》,高等教育出版社,2003.8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1