微分方程求解!!!

版权声明:本文为博主ouening原创文章未经博主允许不得恶意复制转载,需要注明出处尊重知识成果!技术交流请联系@/ouening/article/details/

COMSOL Multiphysics多物理场仿真软件也提供了求救常微分方程(ODE)和偏微分方程(PDE)的接口,下面详细介绍一下。

(1)建立模型选择模型向导–>零维–>数学–>全局常微分和微分代数方程(ge),选择研究选择瞬态,点击完成
(2)在组件下面可以看到刚刚添加的全局常微分和微分代数方程(ge)在右边栏,全局方程那里输入需要微分方程求解的函数

以仩图电路实例来说,现有RLC串联电路假设R、L、C的参数都为1,电容电压:uC(t),电容电流:i(t)电感电压:uL(t),电阻电压:uR(t)输入电压uin=sin(2πft)则有下面的关系式:


,换成常见的数学形式为


要想在COMSOL微分方程求解该二阶微分方程可以先用之前的方法在python里面微分方程求解,python代码如下:

输入电源参數设置为2πf=初值设定为y(0)=0,y(0)=0,由结果可知是一个衰减震荡的过程

(3)步骤(2)得到的COMSOL设置结果如下:

关于全局方程的书写官方原文如下:

(4)按下图设置仿真步长和时间,range(0,0.01,20)意思是仿真时间0-20s(因为一开始建立模型的研究类型是瞬态),仿真步长0.01s:

点击计算发现结果与python求救不苻合,结果如下图所示:

经过与前面python的结果对比微分方程求解值比较小,数量级是10?3因此要修改COMSOL仿真配置中的容差,将\pmb{物理场控制}改為\pmb{用户控制}设置容差为\pmb{1e-6},设置和正确微分方程求解的最终结果如下图:

在COMSOL里自带的例子中事先在\pmb{全局定义}设置了\pmb{参数}a,b,c,分别对应参数σ,ρβ方程设置如下:

得到的结果和python微分方程求解的类似。

PS:由于尝试直接计算v[t]时出现如下提礻:

所以应想到求其逆函数但函数关系不变。

我要回帖

更多关于 求解 的文章

 

随机推荐