MATLAB在数学建模方面的应用

  • 格式:docx
  • 大小:418.33 KB
  • 文档页数:11

MATLAB在数学建模方面的应用

计算机仿真技术与CAD——基于MATLAB的控制系统

(第二版)

课程结业论文

课题:matlab在数学建模方面的应用

专业班级: 08自动化

学生:

学号:

设计时间: 2010/12/20

论文目录

一、MATLAB简介

二、Matlab在现在科技及生产上的应用

三、利用matlab实现数学建模的一般步骤

四、Matlab在数学建模方面的应用示例

五、论文结束语

一、 MATLAB的简介:

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易

于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 二、软件应用

Matlab以其丰富的数据类型和结构、友善的面向对象、快速的图形可视、广博的应用开发工具在控制界得到了广泛地应用,目前已成为控制系统计算机辅助设计领域中最流行和最受欢迎的软件环境。但是,用Matlab进行控制系统分析,需要学会Matlab的M编程语言和熟悉它的子程序。因此,如何利用Matlab强大的图形对象属性设置技术及图形用户界面制作技术为自动控制教学服务成为主要课题。为此,设计了具有良好的人机交互界面并能完成线性控制系统的计算机辅助分析的教学软件。

数学模型是控制系统分析研究的基础,也是综合设计系统的依据。控制

系统的分析包括系统的稳定性分析、时域分析和频域分析。在自动控制系统时域分析中,要绘制各种输人信号的响应曲线,并从中分析系统的快、准、稳各方面的性能指标;在频域分析中绘制伯德图或奈魁斯特图,并进行包括幅值裕度、相位裕度及稳定性等在内的系统特性的分析。控制系统的分析过程复杂而且计算量以及作图量都非常大。

稳定性分析人机界面是整个软件的重要组成部分,它的开发和利用将确保操作人员与软件的顺畅的信息交流。在程序运行过程中,可以进行人机交互操作,引导用户完成各种操作,方便用户调试和应用。Matlab软件中的图形用户界面,其设计过程一般可以分为2个部分:一是用户界面的外观设计,主要通过不同的对话框、按钮、文本框等许多工具的使用,设计出一个图形用户界面,并确定图形界面的功能;二是图形界面的完成,根据外观设计阶段确定的图形界面的功能,针对各不同的图形对象编写能够实现该功能的函数代码,确保该图形界面能够完成预定功能。

稳定性是控制系统的重要性能,也是系统能正常工作的首要条件。线性系统稳定的充要条件是:闭环系统特征方程的所有根均具有负实部;或者说,闭环传递函数的极点严格位于左半S平面上。目前,在经典控制理论的教学中常用的稳定判据包括Routh判据、Nyquist判据和Bode判据等,这些方法对于高阶系统而言计算量及作图量都很大,根据稳定的充要条件,借助Matlab软件的计算能力算出闭环特征方程的根,判断其根是否全部在左半S 平面上,从而得出系统是否稳定。

关键词:数学建模,MATLAB

三、数学建模的一般步骤:

数学模型,就是运用科学抽象法,把复杂的研究对象转化为数学问题,经合理简化后,建立起揭示研究对象定量的规律性的数学关系式(或方程式)。这既是数学方法中最关键的一步,也是最困难的一步。提炼数学模型,一般采用以下六个步骤完成:

第一步:根据研究对象的特点,确定研究对象属哪类自然事物或自然现象,从而确定使用何种数学方法与建立何种数学模型。即首先确定对象与应该使用的数学模型的类别归属问题,是属于“必然”类,还是“随机”类;是“突变”类,还是“模糊”类。

第二步:确定几个基本量和基本的科学概念,用以反映研究对象的状态。这需要根据已有的科学理论或假说及实验信息资料的分析确定。例如在力学系统的研究中,首先确定的摹本物理量是质主(m)、速度(v)、加速度(α)、时间(t)、位矢(r)等。必须注意确定的基本量不能过多,否则未知数过多,难以简化成可能数学模型,因此必须诜择出实质性、关键性物理量才行。

第三步:抓住主要矛盾进行科学抽象。现实研究对象是复杂的,多种因素混在一起,因此,必须变复杂的研究对象为简单和理想化的研究对象,做到这一点相当困难,关键是分清主次。如何分清主次只能具体问题具体分析,但也有两条基本原则:一是所建数学模型一定是可能的,至少可给出近似解;二是近似解的误差不能超过实际问题所允许的误差范围。

第四步:对简化后的基本量进行标定,给出它们的科学内涵。即标明哪些是常量,哪些是已知量,哪些是待求量,哪些是矢量,哪些是标量,这些量的物理含义是什么?

第五步:按数学模型求出结果。 第六步:验证数学模型。验证时可根据情况对模型进行修正,使其符合程度更高,当然这以求原模型与实际情况基本相符为原则。

借此机会,我在此浅述这款软件在数学建模方面的应用

四、MATLAB在数学建模中的应用实例

示例1.

在0=

在matlab命令窗键入以下内容:

x=0:pi/100:2^pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)

然后点击回车键

会出现如下图线

示例2

某公司2000年各月生产总值(单位:万元)分别为:22 60 88

95 56 23 9 10 14 81 56 23,试显示折线图表示该厂生产总值的变化情况。 在MATLAB命令窗口中键入:

>>p=[22,60,88,95,56,23,9,10,14,81,56,23];plot(p)

然后点击[回车]

示例三:

利用MATLAB建立线性系统的数学模型

传递函数表示

1.线性系统的模型建立

G(s)=Y(s)/U(s)=(6s^3+12s^2+6+10)/(s^4+2s^3+3s^2+s+1)

可以将其用下列MATLAB语句来实现:

>>num=[6 12 6 10];den=[1 2 3 1 1];printsys(num,den)

执行结果为

num/den =

6 s^3 + 12 s^2 + 6 s + 10 ---------------------------- s^4 + 2 s^3 + 3 s^2 + s + 1

2.若给定的系统的传递函数为:

G(s)=4(s+2)(s^2+6s+6)/(s(s+1)^3(s^3+3s^2+2s+5)) 解:>>

num=4*conv([1 2],[1 6 6])

num =

4 32 72 48

>>den=conv([1 0],conv([1 1],conv([1 1],[1 3 2 5])))

den =

1 5 9 1

2 12 5 0

关于从状态空间形式到零极点形式的转换MATLAB函数ss2zp()的调用格式为:

[Z,P,K]=ss2zp(A,B.C,D,iu)

其中,A,B,C,D为状态空间形式的个系数矩阵;iu为输入的代号。对于单变量系统iu=1,对于多变量系统iu表示要求的输入序号;返回量矩阵P 储存传递函数的极点;而零点储存在矩阵Z中,Z的列数等于输出y的维数,每列对应一个输出;对应增益则在列向量K中。

如下示例:

对于以给出状态空间表达式,是根据以上函数求取系统的传递函数矩阵。

X(t)=[0 0 1;-3/2 -2 -1/2;-3 0 -4]x(t)+[1 1;-1 -1;-1 -3]u(t)

Y(t)=[1 0 0;0 1 0]x(t)

此系统可由以下MATLAB语句唯一地表示出来

>>A=[0 0 1;-3/2 -2 -1/2;-3 0 -4]

>>B=[1 1;-1 -1;-1 -3]

>>C=[1 0 0;0 1 0],D=zeros(2,2)

实验过程如下

>> A=[0 0 1;-3/2 -2 -1/2;-3 0 -4]

A =

0 0 1.0000 -1.5000 -2.0000 -0.5000

-3.0000 0 -4.0000

>> B=[1 1;-1 -1;-1 -3]

B =

1 1

-1 -1

-1 -3

>> C=[1 0 0;0 1 0],D=zeros(2,2)

C =

1 0 0

0 1 0

D =

0 0

0 0

再运行:

>>[Z1,P1,K1]=ss2zp(A,B,C,D,1),[Z2,P2,K2]=ss2zp(A,B,C,D,2)

窗口中出现

Z1 =

-3.0000 -2.0000

-2.0000 -3.0000

P1 =

-2

-1

-3

K1 =

1 -1 Z

2 =

-1.0000 -3.0000 -2.0000 -1.0000 P2 = -2 -1 -3 K2 = 1 -1

再看一个将此多变量系统求其传递函数矩阵的例子

还是上一个例子的系统 解 利用以下MATLAB 语句

>>[num1,den1]=ss2tf(A,B,C,D,1),[num2,den2]=ss2tf(A,B,C,D,2) 结果显示: num1 =

0 1.0000 5.0000 6.0000 0 -1.0000 -5.0000 -6.0000 den1 =

1 6 11 6 num

2 =

0 1.0000 3.0000 2.0000 0 -1.0000 -4.0000 -3.0000 den2 =

1 6 11 6

从而可得系统的传递函数矩阵为:

1

1^256^2321

13()=(^256)(^243)1

1^36^21161

2s s s s s s G s s s s s s s s s s ?? ?

++++??++=

-++-++--+++ ?

++??

通过MATLAB 进行最优控制系统设计:

4,已知系统的状态空间表达式为:

[]010000100231100x x u y x =+??????????--=?

试求使得性能指标:

(^^)0

J x TQx u TRu dt

=+?

为最小的最优控制u=-Kx 的反馈增益矩阵K 。其中:

10000010,1001Q R ??

==??