第九章 MATLAB语言简介 预备知识 A系统仿真概念及其重要性 B. MATLAB集成环境的组成
第九章 MATLAB语言简介 预备知识 A.系统仿真概念及其重要性 B. MATLAB集成环境的组成
本章重点 A.基本概念 MATLAB函数 2控制系统的建模 B.基本要求 1.了解系统仿真以及 Matlab的基本应用 2掌握Maab的基本函数,会运用Mtab的联机帮助 ∽3掌握 Matlab中的系统建模方法,能够绘制响应曲线、进行时域、频域的系统分析
本章重点 A. 基本概念 1. MATLAB函数 2. 控制系统的建模 B. 基本要求 1.了解系统仿真以及Matlab的基本应用 2.掌握Matlab的基本函数,会运用Matlab的联机帮助 3.掌握Matlab中的系统建模方法,能够绘制响应曲线、进行时域、频域的系统分析
授课内容 91系统仿真(三种) .软件级(数学仿真.一级) 一软件/硬件级(半物理仿真二级) 三,硬件级(物理仿真.三级)
授课内容 9.1 系统仿真(三种) 一.软件级(数学仿真.一级) 二.软件/硬件级(半物理仿真.二级) 三.硬件级(物理仿真.三级)
系统仿真的目的及其在系统研究中的重要性: 1.优化设计。现代大型系统的规模和复杂性,要求在建立系统之前能 够预测系统的性能和参数,以便使所设计的系统达到最优指标 2.经济性。对于一个大型的系统,直接实验成本十分昂贵,而采用仿 真实验的方法仅需成本的1/51/10,而且设备可以重复使用。 3.安全性、对于某些系统,直接实验住往是危险的和不允许的。 4.预测。对于经济、社会、生物等非工程系统,直接实验几乎是不 能的,仿真则可以用于预测系统的特性和外部作用的影响,从而研究控 制的策略。 一类是数值计算型软件( MATLAB);另一类是数学分析型软件 ,,的
系统仿真的目的及其在系统研究中的重要性: 1.优化设计。现代大型系统的规模和复杂性,要求在建立系统之前能 够预测系统的性能和参数,以便使所设计的系统达到最优指标。 2. 经济性。对于一个大型的系统,直接实验成本十分昂贵,而采用仿 真实验的方法仅需成本的1/5~1/10,而且设备可以重复使用。 3.安全性。对于某些系统,直接实验往往是危险的和不允许的。 4.预测。对于经济、社会、生物等非工程系统,直接实验几乎是不可 能的,仿真则可以用于预测系统的特性和外部作用的影响,从而研究控 制的策略。 一类是数值计算型软件(MATLAB);另一类是数学分析型软件
92 MATLAB集成环境的组成 1, MATLAB语言。 MATLAB语言是以矩阵和向量为基本数据单位,包括控制流 程语句、函数、数据结构,输入输出及面向对象等特点的高级语言。 2. MATLAB工作环境。包括变量查看器、程序编辑器,以及MTAB附带 的大量M文件(用 MATLAB语言编写的可在 MATLAB中运行的程序) 3.句柄图形。这是 MATLAB的图形系统。它既包括对二维和三维数据可 视化、图像处理、动画制作等高层次的绘图命令,也包括可以完全修改 4. MATLAB数学函数库。 MATLAB的数学函数库极其庞大,既包括最基 图形局部及编制完整图形界面的、低层次的绘图命令 的sum,cos函数,也包括如求矩阵特征值和特征向量,矩阵求逆,biel 函数, Fourie变换等复杂算法, MATLAB把它们统统编制成了函数 5. MATLABCAPI( (Application Program Interface):能在MTAB里读写 MAT文件 ,2,的
9.2 MATLAB集成环境的组成 1.MATLAB语言。MATLAB语言是以矩阵和向量为基本数据单位,包括控制流 程语句、函数、数据结构,输入输出及面向对象等特点的高级语言。 2.MATLAB工作环境。包括变量查看器、程序编辑器,以及MATLAB附带 的大量M文件(用MATLAB语言编写的可在MATLAB中运行的程序) 3.句柄图形。这是MATLAB的图形系统。它既包括对二维和三维数据可 视化、图像处理、动画制作等高层次的绘图命令,也包括可以完全修改 图形局部及编制完整图形界面的、低层次的绘图命令。 4.MATLAB数学函数库。MATLAB的数学函数库极其庞大,既包括最基本 的sum,cos函数,也包括如求矩阵特征值和特征向量,矩阵求逆,bissel 函数,Fourie变换等复杂算法,MATLAB把它们统统编制成了函数。 5.MATLAB API(Application Program Interface);能在MATLAB里读写 MAT文件
9.3 MATLAB的应用基础 少,基本操作及命令 1.访问和退出 MATLAB。在大多数系统中,旦安装了 MATLAB,在调用 时,应执行命令 MATLAB。退出 MATLAB应执行命令ext或qit。 2.如何应用 MATLAB通常以命令驱动方式应用 MATLAB who,当前存放在王作空间内的所有变量便会显示在屏幕上。 3. MATLAB的变量。为了得到工作空间内的变量清单,可以通过键盘输入命 命令 clear能从工作空间中清除所有非永久性变量。如果只需要从工作空间中清除 某个特定变量,比如父x”,则应输入命令 clear x 4.以%”开始的程序行。在 MATLAB中以”开始的程序行,表示注解和说明。 5.应用分号操作符。分号用来取消打印。如果语的最后一个符号是分号,则打 印被取消,但是命令仍在执行,而结果不再显示。这是一个有益的特性,因为打印 中间结果可能不必要。此外,在输入矩阵时,除非最后一行,分号用来指示行的 结束。 6.应用冒号操作符。冒号操作符在 MATLAB中起着重要作用。该操作符用来建立 向量,赋予矩阵下标和规定叠代。例如,jk表示计1…k,AC,j表示矩阵A的 第列,A(,)表示矩阵A的第行。的
9.3 MATLAB的应用基础 一.基本操作及命令 1.访问和退出MATLAB。在大多数系统中,一旦安装了MATLAB,在调用 时,应执行命令MATLAB。退出MATLAB应执行命令exit或quit。 2. 如何应用MATLAB。通常以命令驱动方式应用MATLAB 3. MATLAB的变量。为了得到工作空间内的变量清单,可以通过键盘输入命令 who,当前存放在工作空间内的所有变量便会显示在屏幕上。 命令clear能从工作空间中清除所有非永久性变量。如果只需要从工作空间中清除 某个特定变量,比如“x”,则应输入命令clear x 4.以“%”开始的程序行。在MATLAB中以“%”开始的程序行,表示注解和说明。 5.应用分号操作符。分号用来取消打印。如果语句的最后一个符号是分号,则打 印被取消,但是命令仍在执行,而结果不再显示。这是一个有益的特性,因为打印 中间结果可能不必要。此外,在输入矩阵时,除非最后一行,分号用来指示一行的 结束。 6.应用冒号操作符。冒号操作符在MATLAB中起着重要作用。该操作符用来建立 向量,赋予矩阵下标和规定叠代。例如,j:k表示[j j+1 … k],A(:,j)表示矩阵A的 第j列,A(i,:)表示矩阵A的第i行
7.输入超过一行的长语句。一个语句通常以回车键或输入键终结。如果输入的语 句太长,超出子一行,则回车键后面应跟随由3个或3个以上圆点组成的省略号(…) ,以表明语句将延续到下一行。 x=1234+2345+3456+4567+5678+6789+ +7.890+89019012 8.在一行内输入数个语句。如果在一行内可以把数个语句用逗号或分号隔开, 则可以把这数个语句放在一行内 9.选择输出格式。 MATLAB中的所有计算都是以双精度方式完成的,但是显示输 出可以是具有4个小数位的定点输出。 如果在矩阵中至少有一个元素不是严格的整数,则有4种可能的输出格式。显示的 输出量可以利用下列命令加以控制: format short; format long; format short e;。 format long e 10.退出 MATLAB时如何保存变量。当键入ex或qu时 MATLAB中的所有变 量将消失。如果在退出以前输入命令save,则所有的变量被保存在磁盘文件。 matlab. mat中。当再次进入 MATLAB时命令oad将使工作空间恢复到以前的状态
7.输入超过一行的长语句。一个语句通常以回车键或输入键终结。如果输入的语 句太长,超出了一行,则回车键后面应跟随由 3个或 3个以上圆点组成的省略号 ( … ) ,以表明语句将延续到下一行。 x = 1.234+2.345+3.456+4.567+5.678+6.789+ … +7.890+8.901-9.012 8.在一行内输入数个语句。如果在一行内可以把数个语句用逗号或分号隔开, 则可以把这数个语句放在一行内 9.选择输出格式。MATLAB中的所有计算都是以双精度方式完成的,但是显示输 出可以是具有 4个小数位的定点输出。 如果在矩阵中至少有一个元素不是严格的整数,则有 4种可能的输出格 式。显 示 的 输出量可以利用下列命令加以控制:format short;format long;format short e; format long e 10.退出MATLAB时如何保存变量。当键入 “exit ” 或 “quit ” 时,MATLAB中的所有变 量将消失。如果在退出以前输入命令save,则所有的变量被保存在磁盘文件 matlab.mat中。当再次进入MATLAB 时,命令load将使工作空间恢复到以前的状态
二, MATLAB函数 在当前的 MATLAB5O及以上版木中,MAⅡLAB函数的调用格式和其他编程语 言是不同的,其典型的调用格式为 [返回变量列表]= func name(输入变量列表) 个函数又可以由多种格式进行调用,例如 bode(函数可以由下面的格式调用 e Imag, phase]=bode(num, den, w)e-000080 其中bode()函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子num 和分母den表示; mag, phaseI=bode(A,B,C、、 MATLABI函数还是会自动识别到底是采用哪种格式调用该函数,从而得出正确的 结论。 在当前版本的控制系统工具箱中还允许用线性模型对象变量G来描述系统,例如 mag, phase]=bode(G, w)nao MATLABI函数在返回变量的格式上可以不同,例如若上面的语句中若没有返回变 量,则将自动地绘制系统的Boe图,否则将返回计算结果数据
二.MATLAB函数 在当前的MATLAB5.0及以上版本中,MATLAB函数的调用格式和其他编程语 言是不同的,其典型的调用格式为 [返回变量列表] = func_name(输入变量列表) 一个函数又可以由多种格式进行调用,例如bode( )函数可以由下面的格式调用 [mag, phase] = bode(num, den, w) 其中bode( )函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子num 和分母den表示; [mag, phase] = bode(A,B,C,D,w) 其中(A,B,C,D)为系统的状态方程模型。尽管两种调用格式是完全不同的, MATLAB函数还是会自动识别到底是采用哪种格式调用该函数,从而得出正确的 结论。 在当前版本的控制系统工具箱中还允许用线性模型对象变量G来描述系统,例如 [mag, phase] = bode(G, w) MATLAB函数在返回变量的格式上可以不同,例如若上面的语句中若没有返回变 量,则将自动地绘制系统的Bode图,否则将返回计算结果数据
绘制响应曲线 MATLAB具有丰富的获取图形输出的程序集。命令pt可以产生线性xy图形(用命 令 loglog、 semilogx、 semilog或 polar取代plot,可以产生对数坐标图和极坐标图) 。所有这些命令的应用方式都是相同的,它们只对如何对坐标轴进行分度和如何显 示数据产生影响。 ()xy图:如果x和y是同一长度的向量,则命令p(xy)将画出y值对于x值的关系 图 (2)画多条曲线:为了在二幅图上画出多条曲线,采用具有多个自变量的命令: 在一幅图上画一条以上的曲线时,也可以利用命令 hold. hold命令可以保持当前的 图形,并且防止删除和修改比例尺。 )加进网格线,图形标题、x轴标记和y轴标记:且在屏幕上显示出图形,就可 以画出网格线,定出图形标题,并且标定x轴标记和y轴标记。 MATLAB中关于网 格线、标题、x轴标记和y轴标记的命令如下:gid(网格线);tile(图形标题); xlabel(x轴标记): ylabel(y轴标记) 应当指出,一旦恢复命令dpay,通过依次输入相应的命令,就可以将网格线、图 形标题、x轴标记和y轴标记叠加在图形上
三.绘制响应曲线 MATLAB具有丰富的获取图形输出的程序集。命令plot可以产生线性x-y图形(用命 令loglog、semilogx、semilogy或polar取代plot,可以产生对数坐标图和极坐标图) 。所有这些命令的应用方式都是相同的,它们只对如何对坐标轴进行分度和如何显 示数据产生影响。 (1) x-y图;如果x和y是同一长度的向量,则命令plot(x, y)将画出y值对于x值的关系 图。 (2) 画多条曲线;为了在一幅图上画出多条曲线,采用具有多个自变量的plot命令: plot(X1, Y1, X2, Y2, … , Xn, Yn) 在一幅图上画一条以上的曲线时,也可以利用命令hold。hold命令可以保持当前的 图形,并且防止删除和修改比例尺。 (3) 加进网格线、图形标题、x轴标记和y轴标记;一旦在屏幕上显示出图形,就可 以画出网格线,定出图形标题,并且标定x轴标记和y轴标记。MATLAB中关于网 格线、标题、x轴标记和y轴标记的命令如下:grid(网格线);title(图形标题); xlabel(x轴标记);ylabel(y轴标记) 应当指出,一旦恢复命令display,通过依次输入相应的命令,就可以将网格线、图 形标题、x轴标记和y轴标记叠加在图形上
4)在图形屏幕上书写文本;为了在图形屏幕的点(xy)上书写文本,采用命令 tex(Ⅹ,Y,'text) (5)图形类型:下列语句: plot(X, Y, x)将利用标记符号x画出一个点状图,而语句 po(X1Y1”,X2.Y2.”+);将用虚线画出第一曲线,用加法符号+面出第二 条曲线 线的类型 点的类型 实线 圆点 线 星 白色 点划线 (6)颜色;下列语句plot(XY,r);pox,Y,+g)表明,第一幅图采用红线,第 三幅图采用绿色“+号标记
(4) 在图形屏幕上书写文本;为了在图形屏幕的点(x,y)上书写文本,采用命令: text(X, Y, ’text’) (5) 图形类型;下列语句:plot(X, Y, ’x’)将利用标记符号x画出一个点状图,而语句 :plot(X1, Y1, ’:’, X2, Y2, ’+’);将用虚线画出第一曲线,用加法符号“+”画出第二 条曲线 线的类型 点的类型 实线 - 圆点 . 短划线 -- 加号 + 虚线 : 星号 * 点划线 - . 圆圈 o ×号 × 红色 r 绿色 g 蓝色 b 白色 w 无色 I (6) 颜色;下列语句plot(X, Y, ’r’);plot(X, Y, ’+g’);表明,第一幅图采用红线,第 二幅图采用绿色“+”号标记