0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于MATLAB连续模型求解方法介绍和分析

MATLAB 来源:djl 作者:卓金武 2019-09-16 11:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

连续模型是指模型是连续函数的一类模型总称,具体建模方法主要是微分方程建模。微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题。把形形色色的实际问题化成微分方程的定解问题,大体上可以按以下几步:

1.根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标系。

2.找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等等)。

3.运用这些规律列出方程和定解条件。

MATLAB 在微分模型建模过程中的主要作用是求解微分方程的解析解, 将微分方程转化为一般的函数形式。 另外, 微分方程建模, 一定要做数值模拟, 即根据方程的表达形式, 给出变量间关系的图形, 做数值模拟也需要用 MATLAB 来实现。

微分方程的形式多样,微分方程的求解也是根据不同的形式采用不同的方法, 在建模比赛中, 常用的方法有三种:

1.用 dsolve 求解常见的微分方程解析解

2.用 ODE 家族的求解器求解数值解

3.使用专用的求解器求解

1.常规微分方程的求解

微分方程在 MATLAB 中固定的表达方式, 这些基本的表达方式如下表所示:

关于MATLAB连续模型求解方法介绍和分析

对于通常的微分方程, 一般需要先求解析解, 那么 dsolve 是首先考虑的求解器,因为dsolve 能够求解解析解,其具体的用法如下:

[实例]求微分方程 xy'+y-e^x=0 在初始条件 y(1)=2e 下的特解,并画出解函数的图形.

求解本问题的 Matlab 程序为:

syms x y

y=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x')

ezplot(y)

微分方程的特解为:y=1/x*exp(x)+1/x*exp (1) (Matlab格式),即 y=(e+e^x)/x ,此函数的图形如图 1:

关于MATLAB连续模型求解方法介绍和分析

图1y关于x的函数图象

2.ODE 家族求解器

如果微分方程的解析形式求解不出来, 那么退而求其次的办法是求解数值解,那么这个时候就需要用 ODE 家族的求解器求解微分方程的数值解啦。

因为没有一种算法可以有效地解决所有的 ODE 问题,为此,MATLAB 提供了多种求解器,对于不同的 ODE 问题,采用不同的 Solver。MATLAB 中常用的微分方程数值解的求解器及特点如下表所示。

关于MATLAB连续模型求解方法介绍和分析

要特别提醒的是:ode23、ode45 是极其常用的用来求解非刚性标准形式一阶常微分方程(组)初值问题解的 Matlab 的常用程序,其中:

ode23 采用龙格-库塔2 阶算法,用3 阶公式作误差估计来调节步长,具有低等的精度.

ode45 则采用龙格-库塔4 阶算法,用5 阶公式作误差估计来调节步长,具有中等的精度.

[实例]导弹追踪问题

设位于坐标原点的甲舰向位于 x 轴上点 A(1, 0) 处的乙舰发射导弹,导弹头始终对准乙舰。如果乙舰以最大的速度v0(是常数)沿平行于 y 轴的直线行驶,导弹的速度是 5*v0,求导弹运行的曲线方程,以及乙舰行驶多远时,导弹将它击中?

记导弹的速度为 w,乙舰的速率恒为v0。设时刻 t乙舰的坐标为 (X(t),Y(t)),导弹的坐标为 (x(t),y(t))。当零时刻,(X(0),Y(0))=(1,0),(x(0),y(0))=(0,0),建立微分方程模型:

关于MATLAB连续模型求解方法介绍和分析

因乙舰以速度v0沿直线 x=1 运动,设v0=1,w=5,X=1,Y=t,因此导弹运动轨迹的参数方程为:

关于MATLAB连续模型求解方法介绍和分析

MATLAB 求解数值解程序如下:

(1)定义方程的函数形式:

function dy=eq2(t,y)

dy=zeros(2,1);

dy(1)=5*(1-y(1))/sqrt((1-y(1))^2+(t-y(2))^2);

dy(2)=5*(t-y(2))/sqrt((1-y(1))^2+(t-y(2))^2);

(2)求解微分方程的数值解

t0=0,tf=0.21;

[t,y]=ode45('eq2',[t0 tf],[0 0]);

X=1;Y=00.21;plot(X,Y,'-')

plot(y(:,1),y(:,2),'*'),hold on

x=01; y=-5*(1-x).^(4/5)/8+5*(1-x).^(6/5)/12+5/24;

plot(x,y,'r')

关于MATLAB连续模型求解方法介绍和分析

3.专用求解器

对于复杂的微分方程模型的求解, 可以借助 MATLAB 偏微分方程工具箱中的专用求解器。以下将以一个实例来看看如何借助偏微分方程工具箱来实现一个微分方程的求解与数值仿真

所研究的对象是一个二阶波的方程:

这个时候要查看一下 MALTAB 中哪个函数能求解相类似的方程, solvepde 可以求解的方程形式为:

可以发现只要通过参数设定就可以将所要求解的方程转化成这种标准形式。

具体求解步骤如下:

(1) 设置参数

c = 1;

a = 0;

f = 0;

m = 1;

(2) 定义波的空间位置

numberOfPDE = 1;

model = createpde(numberOfPDE);

geometryFromEdges(model,@squareg);

pdegplot(model,'EdgeLabels','on');

ylim([-1.1 1.1]);

axis equal

title'Geometry With Edge Labels Displayed';

xlabel x

ylabel y

关于MATLAB连续模型求解方法介绍和分析

(3) 定义微分方程模型的系数和边界条件

specifyCoefficients(model,'m',m,'d',0,'c',c,'a',a,'f',f);

applyBoundaryCondition(model,'dirichlet','Edge',[2,4],'u',0);

applyBoundaryCondition(model,'neumann','Edge',([1 3]),'g',0);

(4)定义该问题的有限元网格

generateMesh(model);

figure

pdemesh(model);

ylim([-1.1 1.1]);

axis equal

xlabel x

ylabel y

关于MATLAB连续模型求解方法介绍和分析

(5)定义初始条件

u0 = @(location) atan(cos(pi/2*location.x));

ut0 = @(location) 3*sin(pi*location.x).*exp(sin(pi/2*location.y));

setInitialConditions(model,u0,ut0);

(6)方程的求解

n = 31;% 求解次数

tlist = linspace(0,5,n);

model.SolverOptions.ReportStatistics ='on';

result = solvepde(model,tlist);

u = result.NodalSolution;

(7)模型的数值仿真

figure

umax = max(max(u));

umin = min(min(u));

for i = 1:n

pdeplot(model,'XYData',u(:,i),'ZData',u(:,i),'ZStyle','continuous',...

'Mesh','off','XYGrid','on','ColorBar','off');

axis([-1 1 -1 1 umin umax]);

caxis([umin umax]);

xlabel x

ylabel y

zlabel u

M(i) = getframe;

end

关于MATLAB连续模型求解方法介绍和分析

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    67994
  • 生物学
    +关注

    关注

    0

    文章

    26

    浏览量

    13210
  • 数值模拟
    +关注

    关注

    0

    文章

    30

    浏览量

    9826
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网孔分析法的工作原理和基本步骤

    分析法并列的代表性电路分析方法,尤其能够高效地求解具有多个电压源的电路。若能灵活运用这两种方法,就可以应对更广泛的电气网络。接下来我们将详细
    的头像 发表于 01-16 15:17 7810次阅读
    网孔<b class='flag-5'>分析</b>法的工作原理和基本步骤

    ALTAIR HYPERLIFE焊接疲劳方法及案例

    议程HyperLife疲劳分析功能介绍HyperLife薄板焊缝(VOLVO)疲劳方法及案例HyperLifeWCD模块基于规范/标准的厚板焊缝疲劳HyperLife焊点疲劳方法
    的头像 发表于 12-18 14:51 1080次阅读
    ALTAIR HYPERLIFE焊接疲劳<b class='flag-5'>方法</b>及案例

    使用诺顿定理的等效电路分析

    本文将从诺顿定理的基本原理、具体求解方法,到与其他分析方法的区别,进行通俗易懂的介绍。同时,也将对诺顿定理的使用要点进行整理归纳。
    的头像 发表于 12-10 13:59 5056次阅读
    使用诺顿定理的等效电路<b class='flag-5'>分析</b>

    在ANSA中设置ABAQUS独立非线性分析步的方法

    搭建Abaqus有限元模型时,经常需要设置多分析步。在设置Abaqus多分析步的常用方法为在仿真分析任务中设置多个“Step”,将整个仿真任
    的头像 发表于 08-06 15:14 1840次阅读
    在ANSA中设置ABAQUS独立非线性<b class='flag-5'>分析</b>步的<b class='flag-5'>方法</b>

    使用 APx 音频分析仪测量等效连续声级

    在这篇文章中,我们将回答技术支持部门经常收到的一个问题:如何使用APx500音频分析仪测量等效连续声级Leq,T和A计权等效连续声级LAeq,T?等效连续声级在大多数环境中,环境声级随
    的头像 发表于 08-01 16:41 2113次阅读
    使用 APx 音频<b class='flag-5'>分析</b>仪测量等效<b class='flag-5'>连续</b>声级

    无刷直线直流电机非换相期间推力分析

    ,对数学模型进行了求解,推导出电流、推力的解析式:详细分析了PWM调制占空比、速度、反电动势系数对推力的影响,其中反电动势系数的分析结果对电机的设计具有重要的参考意义。最后,通过采用直
    发表于 07-09 14:22

    模型推理显存和计算量估计方法研究

    GPU、FPGA等硬件加速。通过分析硬件加速器的性能参数,可以估算模型在硬件加速下的计算量。 四、实验与分析 为了验证上述估计方法的有效性,我们选取了几个具有代表性的深度学习
    发表于 07-03 19:43

    提高SEA模型PBNR计算精度的方法及策略

    在汽车 NVH 工程领域, PBNR(Power Based Noise Reduction)分析是整车高频噪声舒适性开发中常用的方法,相比于传统的隔声量NR分析方法,PBNR
    的头像 发表于 06-30 09:30 1631次阅读
    提高SEA<b class='flag-5'>模型</b>PBNR计算精度的<b class='flag-5'>方法</b>及策略

    轮毂电机电磁噪声测试方法及特性分析

    有限元模型求解径向力波,并以此为激励力求解电机外转子的受迫振动响应,利用LMS.Virtual.Lab建立轮毂电机电磁噪声边界元模型,基于正交试验原理对轮毂电机电磁保声进行仿真计算,
    发表于 06-10 13:19

    FA模型的DataAbility的切换介绍

    ,Stage模型下的DataShareExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的DataAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍
    发表于 06-06 08:10

    FA模型的ServiceAbility的切换介绍

    的ServiceExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的ServiceAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。 系统
    发表于 06-05 07:24

    FA模型绑定Stage模型ServiceExtensionAbility介绍

    FA模型绑定Stage模型ServiceExtensionAbility 本文介绍FA模型的三种应用组件如何绑定Stage模型的Servi
    发表于 06-04 07:55

    Stage模型绑定FA模型ServiceAbility的方法

    Stage模型绑定FA模型ServiceAbility 本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility
    发表于 06-04 06:54

    Stage模型启动FA模型PageAbility方法

    Stage模型启动FA模型PageAbility 本小节介绍Stage模型的两种应用组件如何启动FA模型的PageAbility组件。 U
    发表于 06-04 06:36

    普源示波器如何连接MATLAB实现数据采集与分析

    、高级算法应用等。本文将详细讲解普源示波器与MATLAB的连接方法、配置步骤、高级功能及实战案例,帮助用户快速搭建高效的数据采集与分析系统。   一、连接前的准备工作 在连接示波器与MATLA
    的头像 发表于 05-29 09:34 1491次阅读