智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 16371|回复: 63
打印 上一主题 下一主题

[其他] 控制系统与MATLAB的菜鸟教程(一)

  [复制链接]

0

主题

294

帖子

1

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
4132

特殊贡献奖章

QQ
威望
2661
贡献
1407
兑换币
33
注册时间
2007-11-22
在线时间
32 小时
跳转到指定楼层
1#
发表于 2008-5-13 21:41:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为打字方便,以下把MATLAB简称“小麦”


偷得半日清闲,来写这个前几天承诺好的东西,如果不出意外,以后每周六就写这么一篇出来,周期不会短也不会太长,毕竟我也在慢慢的学东西,只能从基础的一点点写起,也算给自己的一个复习的机会了,我打算在后面先写一点控制理论的东西,然后用小麦做出来或举些其他的例子,然后留下一些简单问题让大家去做,再然后在下篇里给出解决的方法,很多问题和观点都是基于我个人对控制系统理论与MATLAB的理解,错误和不周是难免的,希望大家多多指正,一些好的,更有效率的实现方法也希望大家能提出来,我们共同提高,讲述风格么,还是轻松和口语化一些,一些术语当然是必须的,但我会尽量说的明白一些,目的让大家能迅速的熟悉小麦以及如何把他应用到我们控制系统的分析设计中去,闲话不多说了,现在开始吧!

要从哪里开始呢,我觉得一上来就讲控制理论和小麦有点那个……还是先说一些关于小麦本身比较基本的东西和一些必须要注意的问题,目的是让那些刚刚接触小麦的朋友不至于对我们可爱的小麦产生恐惧,小麦对于学控制的人来讲,就像是手里笔和草纸,它可以帮助你完成一些复杂的计算,可以帮你作图,分析,但请记住,说到底,这个东西就是一个工具,它不能代替你思考,学它的目的是为了更好的研究我们学习的领域,因此不要为学软件而学软件,既然是工具,就必须学以至用。

小麦的最大好处是,编写程序简单得要死,在写算法的时候只需要按我们平常的书写公式的习惯和思考逻辑来写就可以了,而用其他语言,受到语法规则等的限制,对编程不熟悉的人估计会很快疯掉。关于小麦的历史什么就不说了,强烈建议大家使用用比较新版本的小麦(现在最新的好像是r2007b),这样会给你处理问题带来方便(后面我会举例说明这个问题)。

当你打开小麦界面的时候,会看到有几个窗口,现在讲两个有用的,现在没用到以后再说,一个是command window,你可以在把一些计算啊,画图啊等等的命令一条一条的输入,然后求取结果,呵呵,比如现在我们来解决世界上最简单但最有争议的问题,在命令窗口里输入1+1然后按回车,你可以看到小麦对这个问题所给出的答案。这里罗嗦一句,在命令窗口里输入命令的时候,可以不必每输入一条命令就按回车执行,可以把好几句话写完后一起运行,那么你想换行的时候,记得要按住shift再按回车,否则小麦就会执行上面你写下的所有语句。(但有的书上写的是按住“ctrl”再回车,难道是我的电脑比较特殊??)

第二个窗口叫current directory 这个窗口显示的是你当前路径里的东西(当前路径就是整个界面最上面编辑框里的那段地址路径),这东西有啥用呢,简单的讲就是,你可以直接调用这个当前路径里的文件。举个例子:比如你可以在当前路径下(current directory窗口里)存放一张jpg格式的图片,名字叫“picture,然后在命令窗口里直接敲入下面这段代码:
复制内容到剪贴板 代码:a=imread('picture','jpg');
imshow(a);

自己试试看能产生什么结果,这句话大家能知道大概是什么意思,就是显示一张图片,但如果你把当前路径改一下,再运行上面的代码,会出现一句鲜红的文字告诉你,兄弟,出错了,“File "picture1" does not exist.”。呵呵,知道是什么意思了吧!!

小麦有一个默认的当前路径,就是一打开小麦的时候上面那个编辑框里指定的路径,有一天我看着不爽,想把它改了,问了论坛里的几位猛人,得到了答案,可以这样做,右键点小麦的快捷方式属性快捷方式,在“起始位置”那个编辑框里写上你需要的默认当前路径就OK了,简单吧!

要是一个不小心把以上介绍的这两个窗口关了该咋办呢?不要着急,点上面菜单栏里的desktop,在你需要的窗口或界面前面打勾它就出来了。

现在简单的介绍下小麦的文件系统,这里主要介绍一下“m文件”,其他文件以后用到再说,m文件的扩展名“.m”,m文件用来存放和小麦有关的程序代码。按功能,m文件分两种,一种叫“脚本文件”,其实我也不知道具体的定义,意思就是说,你可以直接运行它得到一个结果,这个结果和你把里面的东西一行行的输入到命令窗口里再一起运行是一样的。

我们来举个例子:还是用上面说到的那个jpg图片,记得指定当前路径,然后我们在current directory窗口里右键新建一个m文件,起个名字叫“show_a_picture”双击之后先把里面写的所有东西都删掉(绿色的是注释,不起作用),输入前面写过的代码:
复制内容到剪贴板 代码:a=imread('picture','jpg');
imshow(a);

然后点菜单里的debug—save and run,看一下最后的结果,是不是和前面的一样呢。

第二种叫做“函数文件”,意思就是说你可以通过代码在m文件里定义一个函数,以便我们在需要的时候来调用它,关于自定义函数如果展开来讲,可以说上三天三夜,呵呵,这里简单的说一下,以便大家将来专门看这方面东西的时候会比较容易一些,书写函数的格式大致是这样的:第一行定义输入输出和函数名字

复制内容到剪贴板 代码:[y1,y2……yn]=fname(x1,x2……xn)

所有的xy都只是一个形式上的参数,是为了描述函数关系的方便,所以叫形参,如果只有一个输出那就不必加中括号了,fname是函数的名字,然后在下面写上这个函数里输入和输出的关系。

我们还是举个简单例子,定义一个峰值为2,宽度为1的矩形脉冲函数:

current directory窗口里新建一个m文件(按我说的做,呵呵),起个名字叫“f”,然后打开它,可以把里面的所有内容删掉:写如下代码:

复制内容到剪贴板 代码:function y=f(x)
if (x>=0)&(x<=1);
   y=2;
else
   y=0;
end


这个函数我想大家能够大致看懂意思,可以在命令窗口中输入f(0.5)f(2)来调用它,回车察看结果,可以去尝试一下。

关于m文件的命名有两点一定一定要注意,否则会出现一些难以察觉的错误:
第一:在给m文件起名字的时候只能用小写字母或下划线,名字里绝对不能用中文或数字以及其他的符号。
第二:如果你的m文件是一个函数,那么文件名字要与你定义的函数名字(包含子函数的写主函数名)一样。

这两点要像公理一样牢牢的记在脑袋里,绝对不能忘记。

接下来的几篇我打算用写代码的方式来对控制系统进行分析与设计,关于强大的simulink会在后面介绍。

本篇的最后我们说一下小麦的帮助系统,一开始学接触小麦的人不喜欢用帮助系统,因为里面的说明都是英文,我觉得大家应该养成有问题去求助help系统的习惯,问题最好还是能自己解决,这样印象会比较深刻,不要碰到不懂的函数和问题就到论坛里问,帮助文件的英文描述语法还是比较简单的,个别词用词霸查一下,用于帮助系统的功能十分强大,我觉得一半以上的问题是可以自己解决的。比如我们遇到一个陌生的函数,你想知道他是干嘛用的,可以在命令窗口中直接输入:


复制内容到剪贴板 代码:help  (函数名字)


然后回车,你会看到出现一些文字,这些东西会非常清楚的告诉你对这个函数的解释以及书写参数的格式,还有一种方式:在小麦界面的右下角有个“start”,这个按钮类似与windows界面里的“开始”,我们能通过它,选择我们在小麦里所有能用到的东西,点击“strathelp”,然后在search for 的编辑框里搜索你赶兴趣的东西。

OK
!!今天先写到这里吧,罗里罗嗦写了一堆很基本的东西,没有深入的说一些运行机理,因为个人觉得作为小麦在控制系统里的应用,关于操作环境方面,了解和注意这些就足够了,一些关于文件怎么打开,怎么保存什么的和你用过的其他软件一样,这里就不多说了。

呵呵,(是不是应该放到基础版面里去)但还是保持前后的完整吧,不要着急,刚刚接触小麦的朋友,一开始要做的事情就是熟悉小麦,尽量和小麦搞好关系,看看界面,点点菜单,简单计算几个数字熟悉一下操作环境就可以了。下一篇我还是不打算写控制方面的内容,而是想来个一锅端,把以后能用到的一些计算上的常用操作都介绍清楚,主要就是以下这些内容:数值计算,操作矩阵,符号运算,求解微分方程,分支,选择,循环语句等等。从第三篇起,我们开始介绍小麦与经典控制理论

最后给大家一个建议,每天关电脑睡觉前打开MATLAB的界面,对着屏幕大喊(或默念)三声:“小麦小麦我爱你!因为你是我手里的笔!!
这样可以达到沟通感情之目的,然后,洗洗睡觉!!


另:最近本版块看的人很多,但留言的很少,这个……长期下去,我也不知道自己做的工作是好是坏,我不想单纯的为了增加回帖数设置回复限制,写的东西完全开放(上传资料除外)因为我和你们一样都还在学习中,但还是恳请各位回几个帖子,最好能提些意见,也算对我的鼓励或督促,谢谢各位!!!

原文地址  http://www.ilovematlab.cn/thread-918-1-2.html

0

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
威望
196
贡献
22
兑换币
0
注册时间
2008-3-4
在线时间
0 小时
2#
发表于 2008-5-26 03:54:54 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

还成&nbsp; 内容有点少 一次学起来不爽
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
428
威望
300
贡献
102
兑换币
80
注册时间
2008-3-31
在线时间
13 小时
3#
发表于 2008-5-14 01:21:55 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

不错,顶一个
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
威望
191
贡献
20
兑换币
0
注册时间
2008-3-24
在线时间
4 小时
4#
发表于 2008-5-14 02:17:20 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

<><FONT style="BACKGROUND-COLOR: #f5f5f5">呵呵,懂得怎么称呼你..就叫你大好人了...</FONT></P>
回复 支持 反对

使用道具 举报

0

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
威望
316
贡献
84
兑换币
16
注册时间
2008-3-27
在线时间
15 小时
5#
发表于 2008-5-18 02:20:42 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

对于你这种同志,我们党和人民会感激你的!加油,我看了你的这篇也开始了小麦的学习,呵呵,加油!我们一定行
回复 支持 反对

使用道具 举报

0

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
威望
211
贡献
22
兑换币
0
注册时间
2008-1-19
在线时间
0 小时
6#
发表于 2008-5-31 17:14:53 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

<>顶</P>
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
392
威望
278
贡献
92
兑换币
70
注册时间
2008-6-26
在线时间
11 小时
7#
发表于 2008-6-26 19:15:49 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

<>不错,口语化,很容易明白,交流起来爽阿</P><P>&nbsp;</P>
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
威望
186
贡献
22
兑换币
0
注册时间
2008-5-5
在线时间
0 小时
8#
发表于 2008-7-6 23:57:16 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

<STRONG><FONT face=宋体 color=#ff0000>小麦小麦我爱你!</FONT></STRONG>
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
123
威望
171
贡献
22
兑换币
0
注册时间
2008-9-7
在线时间
0 小时
9#
发表于 2008-9-7 19:01:52 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

<>为人不错 </P>
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
QQ
威望
259
贡献
80
兑换币
58
注册时间
2008-10-6
在线时间
9 小时
10#
发表于 2008-10-7 05:18:17 | 只看该作者

Re:控制系统与MATLAB的菜鸟教程(一)

不错,希望楼主继续
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 07:59 , Processed in 0.176378 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表