《自动控制原理》MATLAB实验指导书 - 图文 联系客服

发布时间 : 星期二 文章《自动控制原理》MATLAB实验指导书 - 图文更新完毕开始阅读e2769c8a64ce0508763231126edb6f1aff00711d

实验一 初步认识MATLAB和控制系统仿真

一、实验目的

1.熟悉MATLAB桌面和命令窗口,掌握MATLAB仿真软件的使用方法。 2.掌握控制系统数学模型的多种描述方法及其仿真实现和互相转换。 3.熟悉控制系统仿真常用的MATLAB函数。 二、基础知识及MATLAB函数

Matlab是一个功能强大的数值计算、符号运算工具。我们可以很方便地处理线性代数中的矩阵计算,方程组的求解,微积分运算,多项式运算,偏微分方程求解,统计与优化等问题。

MATLAB语言以向量和矩阵为基本的数据单元, 包括流程控制语句(顺序、选择、循环、条件、转移和暂停等),大量的运算符,丰富的函数,多种数据结构,输入输出以及面向对象编程。这些既可以满足简单问题的计算,也适合于开发复杂的大型程序。MATLAB不仅仅是一套打好包的函数库,同时也是一种高级的、面向对象的编程语言。使用MATLAB能够卓有成效地开发自己的程序,MATLAB自身的许多函数,实际上也包括所有的工具箱函数,都是用M文件实现的。

1、启动MATLAB命令窗口

计算机安装好MATLAB之后,双击MATLAB图标,就可以进入命令窗口(Command Window),此时意味着系统处于准备接受命令的状态,可以在命令窗口中直接输入命令语句。

MATLAB语句形式 >变量=表达式;

通过等于符号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。

2、常用函数 1)常用的数学运算符

+,—,*(乘),/(左除),\\(右除),^(幂) 2)常用数学函数

abs,sin,cos,tan,asin,acos,atan,sqrt,exp,imag,real,sign,log,log10,conj(共扼复数)等

1

3)多项式处理函数

① 在MATLAB中,多项式使用降幂系数的行向量表示,如:多项式

x4?12x3?0x2?25x?116表示为:p=[1 -12 0 25 116],使用函数roots可以求出多项式等于0的根,根用列向量表示。若已知多项式等于0的根,函数poly可以求出相应多项式。

r=roots(p) r =

11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i p=poly(r) p =

-12 -0 25 116 ② 多项式的运算 ? 相乘conv

a=[1 2 3] ; b=[1 2] c=conv(a,b)=1 4 7 6 conv指令可以嵌套使用,如conv(conv(a,b),c) ? 相除deconv [q,r]=deconv(c,b)

q=1 2 3 %商多项式 r=0 0 0 %余多项式 ? 求多项式的微分多项式polyder polyder(a)=2 2

? 求多项式函数值polyval(p,n):将值n代入多项式求解。 polyval(a,2)=11 ③ 多项式的拟合

? 多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足

样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。 ? 命令格式:p=polyfit(x,y,n),其中x和y为样本点向量,n为所求多项式的阶数,

p为求出的多项式。 ④ 多项式插值

2

? 多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平

滑的效果。所用指令有一维的interp1、二维的interp2、三维的interp3。这些指令分别有不同的方法(method),设计者可以根据需要选择适当的方法,以满足系统属性的要求。Help polyfun可以得到更详细的内容。 y=interp1(xs,ys,x,’method’)

? 在有限样本点向量xs与ys中,插值产生向量x和y,所用方法定义在method

中,有4种选择:

? nearest:执行速度最快,输出结果为直角转折 ? linear:默认值,在样本点上斜率变化很大 ? spline:最花时间,但输出结果也最平滑 ? cubic:最占内存,输出结果与spline差不多 4)绘图函数

plot(x1,y1,option1,x2,y2,option2,…)

x1,y1给出的数据分别为x,y轴坐标值,option1为选项参数,以逐点连折线的方式绘制1个二维图形;同时类似地绘制第二个二维图形,……等。

这是plot命令的完全格式,在实际应用中可以根据需要进行简化。比如: plot(y), 以向量y 的值为纵坐标,横坐标从1 开始自动赋值绘制一条平面曲线; plot(x,y), x 和y 为长度相同的向量,以x 的值为横坐标和y 的值为纵坐标绘制一条平面曲线;

plot(x,y,s),这里 s 是作图控制参数,用来控制线条的颜色、线型及标示符号等,用一个单引号括起来的字符串表示,所绘制的曲线与第二种格式相同(控制参数字符请参考Matlab的帮助,这些参数可以组合使用);

x=linspace(0,2*pi,100); % 100 个点的x 座标 y=sin(x); % 对应的y 座标 plot(x,y);

这就画出了正弦函数在[0,2π]上的图形

若要画出多条曲线,只需将座标对依次放入plot 函数即可: plot(x, sin(x), x, cos(x));

该命令在同一坐标系中画出了正弦和余弦函数的图形。

grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格

hold on:把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。

3

hold off:使新图覆盖旧的图形 设定轴的范围

axis([xmin xmax ymin ymax])

axis(‘equal’):将x坐标轴和y坐标轴的单位刻度大小调整为一样。 文字标示

text(x,y,’字符串’)

在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 gtext(‘字符串’)

利用鼠标在图形的某一位置标示字符串。 title(‘字符串’)

在所画图形的最上端显示说明该图形标题的字符串。 xlabel(‘字符串’),ylabel(‘字符串’) 设置x,y坐标轴的名称。

输入特殊的文字需要用反斜杠(\\)开头。

legend(‘字符串1’,‘字符串2’,…,‘字符串n’)

在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。

subplot(mnk):分割图形显示窗口

m:上下分割个数,n:左右分割个数,k:子图编号

semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。

semilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。

3、控制系统的模型

控制系统的表示可用三种模型:传递函数、零极点增益、状态空间。每一种模型又有连续与离散之分。为分析系统方便有时需要在三种模型间转换。MATLAB提供了各种命令,使我们可以很方便的完成这些工作,下面以连续系统为例简要说明有关命令。

1) 模型与表示式

① 传递函数模型

bmsm?bm?1sm?1?...?b1s?b0 G(s)? nn?1ans?an?1s?...?a1s?a0在MATLAB中直接用矢量组表示传递函数的分子、分母多项式系数,即:

4