1.1 走进MATLAB世界

MATLAB是美国软件公司MathWorks开发的一款软件,名称由Matrix(矩阵)和Laboratory(实验室)组成,即矩阵实验室的意思。但是我们不要被它的名字所误导,MATLAB已经不仅仅是一个“矩阵实验室”了,它成为集科学计算、图像处理、窗口可视化开发、建模仿真等功能于一身的强大开发平台。

MATLAB的各种新版本都会在旧版本基础上增加和修订一些功能,但是各版本的基本操作大体相同。对于本书的程序而言,R2008之后的版本均可以实现,建议读者根据自己的计算机硬件配置来选择适合自己的MATLAB版本。

打开MATLAB软件,可以看到默认外观界面如图1-1所示,除了工具栏之外,主要包括以下几个窗口:Command Window(命令窗口)、Command History(命令历史窗口)、Current Folder(当前文件夹窗口)、Workspace(工作空间窗口)。

图1-1 MATLAB的操作界面

(1)Command Window(命令窗口)

MATLAB的命令窗口可以执行MATLAB语句,也可以运行MATLAB函数和文件,并显示运行结果。

(2)Command History(命令历史窗口)

命令历史窗口记录了使用者在命令窗口中输入的所有命令,便于对所输入的命令进行查找和回溯。用户在该窗口中双击某指令即可再次执行它。

(3)Current Folder(当前文件夹窗口)

显示目前正在运行的文件所在的目录。在运行某个文件之前,我们需要把Current Folder设置为该文件所在文件夹。

(4)Workspace(工作空间窗口)

该窗口中存储了已经运行过的所有变量的值。双击该变量即可查看其数值、类型、所占空间字节数等多种信息。

下面介绍几个MATLAB的特点,让我们在玩转机器人之前,先进一步玩转MATLAB。

(1)丰富的MATLAB工具箱(Toolbox)

MATLAB中包含了为很多学科和专业设置的专用工具箱,如图1-2所示。正是因为有了众多丰富的工具箱,使得MATLAB的应用领域扩展得更为广泛。

图1-2 MATLAB的众多工具箱

其中,在机器人方面涉及的常用工具箱有:Communications(通信系统)、Control System(控制系统)、Curve Fitting(曲线拟合)、Filter Design(滤波器设计)、Fuzzy logic(模糊逻辑)、Image Processing(图像处理)、Model Predictive Control(模型预测控制)、System Identification(系统辨识)等。

(2)丰富的绘图功能与计算结果的可视化

MATLAB具有二维、三维绘图和句柄绘图功能。一般而言,无论多么复杂的二元函数,仅仅需要数条指令,便可将计算结果绘制成图形。

例1-1 绘制饼状图。

    >>   x=[10 70 30 15 40];    %设置向量中 5个元素的实际数值
        explode=[0 0 1 0 0];    %标明要突出显示第三个元素
        pie(x,explode)          %按各元素所占比例画饼状图

该程序只有三行语句。第一行是定义数组x中的五个元素值分别为10,70,30,15和40。第二行规定要突出显示第三个元素。第三行调用pie函数,即绘制饼状图。

这五个元素值的总和为10+70+30+15+40=165。因此,各元素所占比重为,即(6%,42%,18%,9%,24%)。按照程序要求,需要突出显示第三个元素18%。执行结果如图1-3所示。

图1-3 绘制饼状图

例1-2 绘制方程组表示的三维曲线。

    >> t=0: pi/100: 6*pi;               %设定时间范围和步长
      x=sin(t);y=cos(t);z=t;            %
      plot3(x,y,z,'-b','LineWidth',4)   %绘制三维曲线,并作修饰。 z轴为时间 t
      grid on                           %给曲线加网格
      axis square                       %坐标显示样式

图1-4为程序执行结果,图中坐标是以时间tz轴。plot3函数是三维曲线的绘制函数,后面还会有具体说明,在此我们先直接使用它。

图1-4 绘制三维曲线

(3)图形化建模功能

在MATLAB中对动态系统进行建模、仿真和分析的软件包为Simulink。本书也是在Simulink下建立机器人的仿真模型的。它的操作极为简单,只需拖动几个模块、连几条线,即可实现对机器人的结构、电气和控制方法的建模。

下面先用一个简单的例子为读者展示图形化建模的魅力。

例1-3 绘制单位阶跃输入信号经惯性环节后的输出曲线。

在MATLAB的命令窗口输入“Simulink”并回车。在打开的Similink中绘制如图1-5所示的模型(Simulink的使用在后面章节中会讲到),点击图1-5中菜单栏上的三角形图标执行该模型的仿真,之后双击图中的虚拟示波器Scope模块就可以观察到如图1-6所示的仿真结果了。

图1-5 在Simulink中建立的例1-3的仿真模型

图1-6 例1-3对应的单位阶跃输入和输出响应的仿真结果

图1-6中,横坐标的范围是[0,5],纵坐标的范围是[-0.2,1.2],单位阶跃信号是从时刻1开始的。这些参数都是可以自行设置的,后面会有介绍。

图1-5所示的模型文件(ch1_1.mdl)也可以从出版社指定的网页中下载(网址见前言)。将该文件所在文件夹设置为MATLAB的当前文件夹后,在MATLAB的当前文件夹窗口中双击该文件也可以直接打开如图1-5所示的模型。

(4)强大的帮助和检索功能

MATLAB包含着数以千计的函数、几十个工具箱,而这些函数、工具箱会随着软件版本的升级不断地变化和扩充。对于用户而言,熟练掌握每一个函数的使用方法几乎是不可能的事情。

因此,我们有必要了解并运用MATLAB的帮助系统,它是学习、使用该软件的最好的教科书。MATLAB的帮助系统包括“在线帮助”和“窗口帮助”两种。

①在线帮助 所有的MATALB函数都有自己的帮助信息。查找某个函数的说明可以使用help function-name这个命令。

例如,如果需要确认正弦函数的使用方法,就可以在MATLAB的命令窗口中键入如下指令:

    >> help sin
注意

help前面的符号“>>”是MATLAB自动显示的。我们只需输入“help sin”并回车即可。

此时,就会出现正弦函数SIN的简要说明:

    >> help sin
    SIN    Sine of argument in radians.
        SIN(X)is the sine of the elements of X.

        See also asin,sind.
        Overloaded methods:
          codistributed/sin
        Reference page in Help browser
          doc sin

②窗口帮助 尽管在线帮助使用起来简便、快捷,但是它能够提供的信息还是有限的。为此,MALTLAB还提供了内容更加丰富的窗口帮助系统。它不随MATLAB操作界面同时启动,需要通过以下方式打开。

a.在命令窗口键入helpwin或helpdesk,就会出现如图1-7所示的MATLAB帮助(Help)界面。

图1-7 Help窗口

b.点击在MATLAB操作界面上的按钮。

c.在MATLAB各个界面中按下【F1】快捷键。

d.在命令窗口键入“doc函数名”获取相关函数的超文本帮助信息。例如输入“doc sin”就可以查阅正弦函数的详细文本说明,结果如图1-8所示。

图1-8 正弦函数sin的详细帮助窗口

在程序设计的过程中,我们经常需要查询某个函数的使用方法。养成良好的使用MATLAB帮助系统的习惯,对于学习MATLAB来说是非常必要的。

从初识MATLAB到了解MATLAB,我们还需要在应用中逐步熟悉MATLAB。想要玩转MATLAB,还需要读者在后面的实践中慢慢探索,慢慢体会。