matlab课设 三阶微分方程多种方法求解.docx

上传人:b****7 文档编号:10565810 上传时间:2023-02-21 格式:DOCX 页数:8 大小:90.74KB
下载 相关 举报
matlab课设 三阶微分方程多种方法求解.docx_第1页
第1页 / 共8页
matlab课设 三阶微分方程多种方法求解.docx_第2页
第2页 / 共8页
matlab课设 三阶微分方程多种方法求解.docx_第3页
第3页 / 共8页
matlab课设 三阶微分方程多种方法求解.docx_第4页
第4页 / 共8页
matlab课设 三阶微分方程多种方法求解.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

matlab课设 三阶微分方程多种方法求解.docx

《matlab课设 三阶微分方程多种方法求解.docx》由会员分享,可在线阅读,更多相关《matlab课设 三阶微分方程多种方法求解.docx(8页珍藏版)》请在冰豆网上搜索。

matlab课设 三阶微分方程多种方法求解.docx

matlab课设三阶微分方程多种方法求解

目录

一、课程设计题目及意义

————————1页

二、课程设计任务及要求

————————2页

三、课程设计详细过程及结果

————————3至10页

四、课程设计体会

————————10至11页

华东交通大学

09软件+电气4班

陈忱

课程设计题目:

用三种以上方法求解三阶微分方程

课程设计目的及意义:

通过使用多种方法求解三阶微分方程可以熟悉matlab中各种数学计算方法,例如数值型方法,符号方法,建立数学模型的方法。

首先数学计算方法在工程应用中十分广泛,使用matlab编程,往往只要几个语句就可以求解任务,具有效率高,使用方便的特点,通过课程设计我们可以充分体验到。

Matlab符号计算是通过集成在matlab中的符号运算工具箱的Maple软件的基础上,使用符号计算可以获得比数值计算更一般的结果,获得的结果以变准的符号形式来表现。

数学模型的方法是通过Simulink系统仿真来实现,它提供了图形用户界面,操作简单,内容丰富,可以根据用户的不同输入很方便的得到仿真结果,这些都可以在课程设计中来具体操作实现,让我们对matlab强大的数学计算功能有个更深刻详细的认识。

课程设计任务及要求:

假设微分方程为三阶的如:

y’’’(t)+0.2y’’(t)+0.4y’(t)+0.8y(t)=0.5u(t),其中u(t)为单位斜坡函数。

分别用数值型方法,符号方法,建立数学模型的方法解之。

其中建立数学模型仿真的方法要用三种方法:

传递函数法,状态方程方法以及时域分析法。

并分别用示波器或图形观测窗口显示输出与输入图形。

课程设计过程:

1数值型方法

步骤:

1:

在Matlab下输入:

edit;

2:

在其中输入如下代码

functionDYDt=amanm(t,Y)

y=Y

(1);

dydt=Y

(2);

d2ydt2=Y(3);

DYDt=[Y

(2);Y(3);0.5-0.8*y-0.4*dydt-0.2*d2ydt2];

3:

保存.m文件;

4:

在Matlab命令行下面输入:

t_start=0;

t_end=20;

yy0=[0;0;0];%初值

[t,y]=ode45('amanm',[0,t_end],yy0);%ode45是用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长的方法。

plot(t,y(:

1));

xlabel('t');

ylabel('y')

y(end,1)

2符号方法

对于使用符号方法求解三阶微分方程必须了解matlab的dsolve函数,Mathematica 函数Dsolve求微分方程的符号解.(而另一方面,Mathematica 函数NDsolve 是一个普遍的数值微分方程解算器.)Dsolve(eq,c,v)该函数求解常微分方程eq在初值条件c下的特解。

参数v描述方程中的变量,省略时按照默认原则处理,若没有给出初始条件c则求方程的通解。

所以题目中的三阶微分方程y’’’(t)+0.2y’’(t)+0.4y’(t)+0.8y(t)=0.5u(t)可以写成D3y+0.2*D2y+0.4*Dy+0.8*y=0.5。

在matlab命令行中输入如下代码:

t=dsolve('D3y+0.2*D2y+0.4*Dy+0.8*y=0.5','y(0)=0','Dy(0)=0','D2y(0)=0');这里假设初值都为0;可以得到

t=5/8+(-5/24-295/40368*(1306+15*3^(1/2)*2563^(1/2))^(2/3)-15/1189232*(1306+15*3^等等(结果太长省略)命令中输入如下代码:

t=dsolve('D3y+0.2*D2y+0.4*Dy+0.8*y=0.5','y(0)=0','Dy(0)=0','D2y(0)=0');

subplot(1,2,2);

ezplot(t,[0,20]),grid

可以看到两次前两种方法绘制的曲线是相同的。

2建立数学模型方法

1)用积分器直接构造微分方程模型

把原微分方程改写成:

y’’’+0.2y’’+0.4y’+0.8y=0.5u(t)

利用simulink模块库中的基本模块建立如下系统模型:

各个模块说明如下:

(a).u(t)输入模块:

为斜坡信号;

(b).Gs增益模块分别设置为0.2,0.4,0.8,旋转可借助Format菜单中的RotateBlock命令来实现;

(c).求和模块:

其图形Iconshape选择rectangular,符号列表Listofsigns设置为+---;

(d).积分模块:

参数不变;

(e).Scope示波器:

在示波器参数窗口选择Datehistory

页,选中其中的Savedatatoworkspece复选框。

这将结果保存到工作空间默认名为ScopeData。

(f).设置系统仿真参数单击模型编辑窗口Simulation菜单中的ConfigurationParamenters选项选择Solver把仿真时间Stoptime设置为20.运行得到如下结果:

2)利用传递函数模块建模

对方程y’’’(t)+0.2y’’(t)+0.4y’(t)+0.8y(t)=0.5u(t)两边进行Laplace变换得到:

S^3y(t)+0.2S^2y(t)+0.4Sy(t)+0.8y(t)=0.5u(t)

整理得到传递函数:

G(s)=y(t)/u(t)=0.5/(s^3+0.2s^2+0.4s+0.8)

在Continuous模块库中有标准的传递函数模块调用可得如下模型:

(a).u(t)模块:

为source库中的斜坡信号;

(b).G(s)模块:

双击TranferFcn模块在分子分母栏中填

入如下所需参数:

运行仿真系统得到如下结果:

课程设计体会:

1.凡事主要靠自己,要给自己充裕的时间处理事情。

遇到问题不能把太多的希望都寄托在别人身上,也不是每次都会那么幸运,有问题的时候别人总会及时的帮你解决的,可以自己XX谷歌。

通过自己查找资料解决的问题才对自己帮助最大。

2.做课程设计需要查找许多资料对于资料,切记不要盲目的下载,一般来说,真正吃透一两本书对于了解某一方面的基础知识也就够了。

3.找一本matlab的函数工具词典,就像汉语词典一样,你要尽量多的熟悉matlab自带的函数,及其作用,因为matlab的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用你自己编函数.这一点对程序非常有帮助,可以使程序简单,运行效率高,可以节省很多时间.

4.SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。

可以简单的实现一些系统仿真很方便实用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1