matlab课程设计2Word文件下载.docx
《matlab课程设计2Word文件下载.docx》由会员分享,可在线阅读,更多相关《matlab课程设计2Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
学号:
1004011xx
实验室号:
信息楼205
实验组号:
xx
实验时间:
(2013.7.1-2013.7.11)
批阅时间:
指导教师:
成绩:
1.题目名称
控制系统开环传递函数G(s)=2/[s*(s+1)*(s+2)],求系统的稳定裕度。
具体要求如下,采用MATLABGuide设计用户界面,实现如下功能:
1、在界面上添加一按钮,点击此按钮可绘制该系统的波特图,并在图上标注出系统幅值裕度和相位裕度及对应的频率。
2、可在界面显示出幅值裕度值和对应的频率值,相位裕度值和对应的频率值。
2.课设目的
(1)、通过课程设计进一步掌握自动控制原理课程的有关知识,加深对所学内容的理解,提高解决实际问题的能力。
(2)、学会利用matlab软件进行页面的设计。
(3)、学习matlab在自动控制中的应用,会利用MATLAB提供的函数求出所需要得到的实验结果。
(4)、学会使用matlab绘制波特图。
3.课设内容
(1)、能用MATLAB解复杂的自动控制理论题目。
(2)、能用MATLAB绘制开环传递函数的波特图。
(3)、能灵活应用MATLAB分析系统的性能。
4.课设方案
1、设计总体思路
(1)、根据要求确定界面的形式。
(2)、绘出基本界面,添加Axes,PushButton,四个StaticText和四个EditText。
(3)、双击各部分来修改他们的属性。
(4)、修改PushButton的ViewCallbacks,进入m文本添加绘画波特图的程序。
(5)、添加扩展项。
2、详细设计步骤
第一步
在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示GUI的设计模板
出现
第二步
添加插件
点击左侧工具栏中的Axes和PushButton按钮,添加在界面上。
添加StaticText和EditText
第三步
修改各插件属性值
第四步
右击PushButton点击ViewCallbacks中的callback,在转到的m文本处添加程序。
绘制开环传递函数的波特图。
运行检查,观察是否有波特图输出
第五步
扩展功能:
(1)加入根轨迹的绘制
(2)加入奈奎斯特图
(3)更换窗口背景
根轨迹
奈奎斯特图
第六步
图形验证。
5、程序:
(1)、波特图:
num=2
den1=conv([10],[11])
den=conv(den1,[12])
g=tf(num,den)
margin(g)
(2)、nyquist:
nyquist(g)
(3)、根轨迹:
rlocus(g)
(4)、更改背景图片
ha=axes('
units'
'
normalized'
position'
[0011]);
uistack(ha,'
down'
)
II=imread('
521.jpg'
);
image(II)
colormapgray
set(ha,'
handlevisibility'
off'
visible'
6、出现的问题及解决方法
1.不会绘制界面
开始的时候根本不会绘制界面,查询教科书和实验书页没有相应的介绍。
后来查询的网络教程,学会了如何设计界面。
2.绘制出界面后不会为PushButtom添加callback
在PushButton上点击右键后出现Viewcallbacks点击其中的callback后出现m文件。
但是在相应的fuction中不会添加相应的语句。
解决办法:
经过学习发现,matlab使用的语言基础为C语言,callback中的fuction实际为一个中段程序,只需要在fuction下填写相应的matlab使用的语言,即可实现功能。
3.点击PushButton后不显示图像
经实际使用后发现,Axes的语句中有显示的语句,写了程序后自动显示在Axes中,无需调整。
7.心得体会及建议
虽然我们以前学了一点MATLAB,不少课本上也有提到过MATLAB,但是我们还是不怎么熟练,通过这次自动控制原理课程让我更好地学会了如何去使用这个软件。
自动控制原理的知识在课堂上掌握的也不是很好,所以这次课程设计对于我来说真是难度不小啊。
在很多人眼中为期两周的课程设计或许是一种煎熬,这是可以理解的,在这两周当中,我们不仅要完成这个课程设计,而且还要学习其他专业课。
对于MATLAB的学习,我们先从以前教材中翻看相关的内容,因为这些书上讲的比较精简易懂,看完之后便对MATLAB有了更深地了解和懂得了一些简单编程,接下来我再去图书馆借相关的书籍进行借鉴和参考,当要用什么功能时,就在书上翻看相应部分的内容,这样MATLAB就应用起来了。
对于本次课程设计,我从网络上下载了很多关于MATLABGuide界面的设计相关材料,自己通过视频和ppt的自学学会了界面的设计,同时可以较为灵活的绘出bode图、nyquist图、根轨迹等等。
期间我也不是一次就成功,选了几次才选出比较合适的参数。
这种不断尝试的经历让我们养成一种不断探索的科学研究精神,我想对于将来想从事技术行业的学生来说这是很重要的。
每一次课程设计都会学到不少东西,这次当然也不例外。
不但对自动控制原理的知识巩固了,也加强了MATLAB这个强大软件使用的学习,这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在自己和同学相互协助下,终于迎刃而解了。