资源描述:
《matlab第6章ode》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章微分方程模型仿真常微分方程的数值求解微分方程模型的建立及仿真16.1微分方程的求解在现在数学研究和工程实践中,很多数学模型都是用微分方程确定的,很多基本方程本身就是一个微分方程,因此求微分方程非常重要,但是大部分的微分方程目前难以求得其解析解,因此人们只有利用计算机强大的计算功能来求其数值解。MATLAB主要使用龙格-库塔法求解微分方程。在控制系统仿真中,常用的求微分方程数值解的函数是ode23和ode45。21.ode23在MATLAB中,函数ode23采用2-3阶龙格-库塔法求解微分方程。[t,y]=ode23(odefun,t
2、span,y0)[t,y]=ode23(odefun,tspan,y0,options)odefun:定义微分方程的形式y’=f(t,y)tspan=[t0,tfinal]:表示微分方程的积分限从t0(始值)到tfinal(终值),该积分限也可以是一些离散的点。y0:初始状态列向量options:积分参数,包括‘RelTol’(相对误差)和‘AbsTol’(绝对误差),可省略。3例:使用ode23函数求解常微分方程y’=-y+x2+4x+1,x=[14],x=1时,y=1。解:首先创建函数fun1.mfunctionf=fun1(x,y)
3、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')42.ode45在MATLAB中,函数ode45采用普通4-5阶龙格-库塔法求解微分方程。其使用方法与ode23函数的使用方法基本相同。ode45函数是大部分场合的首选算法,ode23函数主要适用于精度较低的场合。例:解经典非线性方程,范得波(VanderPol)微分方程(ω=2)。当t=0时,x=1,dx/dt=0。5解:(1
4、)将高阶微分方程式等价变换成一阶微分方程组。令y1=x且y2=dx/dtdy1/dt=y2dy2/dt=w(1-y12)y2-y1(2)编写M文件表示该微分方程,该文件给定时间及y1和y2的值,返回上述的导数值,并将y(y1和y2)与导数值以列向量的形式给出。functionfun2=vdpol(t,y)fun2=[y(2)2*(1-y(1)^2)*y(2)-y(1)]’%输出结果必须是列向量,w=26(3)计算结果如下:>>[t,y]=ode45('vdpol',[030],[1;0]);>>y1=y(:,1);>>y2=y(:,2);
5、>>plot(t,y1,':b',t,y2,'-r')>>legend(‘位移’,‘速度')73.定积分的数值解法MATLAB软件使用quad函数进行定积分的数值解法。使用格式为:q=quad(fun,a,b)fun:被积分函数a、b:积分上下限例:计算下列定积分functiony=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.460586.2微分方程模型6.2.1方法描述微分方程模型是
6、数学模型的一种主要形式。当采用一阶微分方程的数值积分法进行数值计算时,应把高阶微分方程变换成n个一阶微分方程形式。对于微分方程而言,除了少数可以得到解析解外,大多数只能采用数值解法。在MATLAB中,使用ode函数求解微分方程模型。6.2.2简单电路模型仿真例:在RC电路中,电阻R=5Ω,理想电压源为Vi=20V,电容C=70μF。分析电容元件的电压特性。9(1)分析:电容电压和电流的关系根据基尔霍夫定律,可得出微分方程使用ode函数时,对微分方程进行如下假设10(2)建立导数函数functiondy=cap(t,y)Vi=20;R=5;
7、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([00.006025])>>title('Vc-Time')>>xlabel('Time/sec')>>ylabel('Vc/V')11当电压源为直流电压源时,加载在电容上的电压随时间呈抛物线增大,稳态值为电源电压。电容电压在t=0时取得最小值,最小值为0;电容电压在t=0.0023s时达到最大值,为20V。12例:用
8、简单的LC谐振电路组成滤波器电路,其电路方程是二阶微分方程。观察该RLC电路中,电容电压VC(t)和线路电流I(t)的时域变化情况。假设电源为直流电压源Vi=20V,电阻R=5Ω,电容C=70