中国石油大学MATLAB全部详解.ppt

1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。 SIMULINK的软件的名称表明该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。 6.1 微分方程的求解 在现在数学研究和工程实践中,很多数学模型都是用微分方程确定的,很多基本方程本身就是一个微分方程,因此求微分方程非常重要,但是大部分的微分方程目前难以求得其解析解,因此人们只有利用计算机强大的计算功能来求其数值解。MATLAB主要使用龙格-库塔法求解微分方程。 在控制系统仿真中,常用的求微分方程数值解的函数是ode23和ode45。 1. ode23 在MATLAB中,函数ode23采用2-3阶龙格-库塔法求解微分方程。 [t,y] ode23 odefun,tspan,y0 [t,y] ode23 odefun,tspan,y0,options odefun:定义微分方程的形式y’ f t,y tspan [t0,tfinal]:表示微分方程的积分限从t0(始值)到tfinal(终值),该积分限也可以是一些离散的点。 y0:初始状态列向量 options:积分参数,包括‘RelTol’(相对误差)和‘AbsTol’(绝对误差),可省略。 例:使用ode23函数求解常微分方程y’ -y+x2+4x+1,x [1 4], x 1时,y 1。 解:首先创建函数fun1.m function f fun1 x,y f -y+x^2+4*x+1; 在命令窗口中输入 [x,y] ode23 fun1,[1,4],1 ; dy -y+x.^2+4*x+1; plot x,y,x,dy ; legend y,dy 2. ode45 在MATLAB中,函数ode45采用普通4-5阶龙格-库塔法求解微分方程。其使用方法与ode23函数的使用方法基本相同。 ode45函数是大部分场合的首选算法,ode23函数主要适用于精度较低的场合。 例:解经典非线性方程,范得波(Van der Pol)微分方程(ω 2)。 当t 0时,x 1,dx/dt 0。 解:(1)将高阶微分方程式等价变换成一阶微分方程组。 令y1 x且y2 dx/dt dy1/dt y2 dy2/dt w 1-y12 y2-y1 (2)编写M文件表示该微分方程,该文件给定时间及y1和y2的值,返回上述的导数值,并将y(y1和y2)与导数值以列向量的形式给出。 function fun2 vdpol t,y fun2 [y 2 2* 1-y 1 ^2 *y 2 -y 1 ]’ %输出结果必须是列向量,w 2 (3)计算结果如下: [t,y] ode45 vdpol,[0 30],[1;0] ; y1 y :,1 ; y2 y :,2 ; plot t,y1,:b,t,y2,-r legend ‘位移’,‘速度 3. 定积分的数值解法 MATLAB软件使用quad函数进行定积分的数值解法。使用格式为: q quad fun,a,b fun:被积分函数 a、b:积分上下限 例:计算下列定积分 function y myfun x y 1./ x.^3-2*x-5 ; Q quad myfun,0,2 Q -0.4605 F @ x 1./ x.^3-2*x-5 ; Q quad F,0,2 Q -0.4605 6.2 微分方程模型 6.2.1 方法描述 微分方程模型是数学模型的一种主要形式。当采用一阶微分方程的数值积分法进行数值计算时,应把高阶微分方程变换成n个一阶微分方程形式。对于微分方程而言,除了少数可以得到解析解外,大多数只能采用数值解法。 在MATLAB中,使用ode函数求解微分方程模型。 6.2.2 简单电路模型仿真 例:在RC电路中,电阻R 5Ω,理想电压源为Vi 20V,电容C 70μF。分析电容元件的电压特性。 (1)分析:电容电压和电流的关系 根据基尔霍夫定律,可得出微分方程 使用ode函数时,对微分方程进行如下假设 (2)建立导数函数 function dy cap t,y Vi 20; R 5; C 70e-6; dy Vi-y / R*C ; (3)使用ode函数进行仿真,仿真时间0~0.006s,Vc初始值为0V。 [t,y] ode45 cap,[0,0.006],0 ; plot t,y axis [0 0.

文档评论(0)

1亿VIP精品文档

相关文档