24小时热门版块排行榜    

查看: 1983  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

津津爱睡觉

金虫 (小有名气)

[求助] Matlab小白,急需计算一个模型,求懂的大神看看怎么修改。万分感谢 已有2人参与

Matlab小白,急需计算一个模型,解微分方程组,求懂的大神看看怎么修改。万分感谢
function dy = funct(t,y)

I = 50 % mA
F = 96487 % C/mol
c0 = 10 % mM
Vol = 3.344 % ml
Q = 6.5 % ml/min
A = 33.75 % cm2

syms x
eqn = 0.86*x+0.4*(x*exp(-asinh(theta/(-2*x)))+x*exp(asinh(theta/(-2*x))))==y(3)
cma = double(solve(eqn,x))

cmion = (y(3)-0.86*cma)/0.4

phi_sp = asinh(-3/y(2))
phi_ele = asinh(-3/cma)

phi_mem = (I*170)/(-1.12*F*(cma.*cosh(phi_ele)+y(2).*cosh(phi_sp)))

J = -(1.12*1e-3/170)*(2*cma.*cosh(phi_ele)-2*y(2).*cosh(phi_sp))+3*phi_mem

dy=zeros(3,1);
dy(1) = (1e4*I/A)/(116*F)

dy(2) = -J/(250e-6*0.5)+(c0-y(2))/(0.5*(Vol/Q)*60)

dy(3)  = J/(290*1e-6)

end
clear all;
c0=10
tspan=[0 600]
[t,y] = ode45(@funct,tspan,[0 c0 1.66*c0])

plot(t, y(:,2))
xlabel('t'),ylabel('c')

错误使用 odearguments (line 92)
FUNCT 返回的矢量的长度为 2,但初始条件矢量的长度为 3。FUNCT 返回的矢量和初始条件矢量的元素数目必须相同。

出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
回复此楼
有梦一起追
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
7楼: Originally posted by hzlhm at 2019-06-24 13:20:05
建议你,把具体的微分方程组和条件贴出来看一看。这样就可以减少一些盲目性。

dy(1)=a*y(1)+b*y(2);
y(2)=c*y(1)+d*y(3);
dy(3)=-e*y(2)*(y(3)-t)/y(1);

function daedi
a=-0.2; b=0.5; c=0.1; d=-1; e=0.3;
y0=[0.8;0.5;0.1]; %初值,y0(2)=0.5是猜测值
options=optimset('display','off');
y0(2)=fsolve(@(y2)y2-(c*y0(1)+d*y0(3)),y0(2),options); %求出相容的初值y0(2)
% 求解微分方程
[t,y]=ode45(@(t,y)myodefun(t,y,a,b,c,d,e),[0,20],y0);
figure('numbertitle','off','name','DAE 求解示例 方法1.2')
plot(t,y)
legend('y1(t)','y2(t)','y3(t)')

function dy=myodefun(t,y,a,b,c,d,e)
dy=zeros(3,1); % dy(2)=0很重要,否则反求出y(2)后会被积分
% 先求解代数方程,顺序很重要
cons=@(y2)y2-(c*y(1)+d*y(3)); % 隐式代数约束
options=optimset('display','off'); % 关闭提示
y(2)=fsolve(cons,y(2),options); %用上次的y(2)作为猜测值
dy(1)=a*y(1)+b*y(2);
dy(3)=-e*y(2)*(y(3)-t)/y(1);
现在通过这个例子已经可以运行,想问您怎么继续编写这个例子中y(2)随t的动态变化呢
感谢感谢
有梦一起追
9楼2019-06-28 04:59:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

chendequan

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
theta值未知,eqn方程求解cma可能会遇到无解情况,建议提供公式资料看看

» 本帖已获得的红花(最新10朵)

QQ:516477448,真心帮助解决MATLAB相关问题,提供详细资料,Word文档明确具体问题及要求,尽力而为!
2楼2019-06-23 10:06:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
2楼: Originally posted by chendequan at 2019-06-23 10:06:51
theta值未知,eqn方程求解cma可能会遇到无解情况,建议提供公式资料看看

function dydt = funct(t,x, y)

I = 50; % mA
F = 96487; % C/mol
c0 = 10; % mM
Vol = 3.344; % ml
Q = 6.5; % ml/min
A = 33.75; % cm2
y1=y(1); y2=y(2); y3=y(3);
y3 = 0.86*x+0.4*(x*exp(-asinh(y1/(-2*x)))+x*exp(asinh(y1/(-2*x))))

phi_sp = asinh(-3/y2)
phi_ele = asinh(-3/x)

phi_mem=(I*170)/(-1.12*F*(x*cosh(phi_ele)+y2*cosh(phi_sp)))

J =-(1.12*1e-3/170)*(2*x*cosh(phi_ele)-2*y2*cosh(phi_sp))+3*phi_mem

dy1dt = (1e4*I/A)/(116*F)

dy2dt = -J/(250e-6*0.5)+(c0-y2)/(0.5*(Vol/Q)*60)

dy3dt = J/(290*1e-6)

end
clear all;
I = 50; % mA
F = 96487; % C/mol
c0 = 10; % mM
Vol = 3.344; % ml
Q = 6.5; % ml/min
A = 33.75; % cm2
tspan=[0 600]
x0=c0

[t,x,y] = ode45(@funct,tspan, c0, [0 c0 1.66*c0])

plot(t, theta)
xlabel('t'),ylabel('c')

出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

改了程序,现在错误变成这样。公式就是想解一个三个未知数的微分方程组,但是里面有未知数
有梦一起追
3楼2019-06-23 20:57:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
2楼: Originally posted by chendequan at 2019-06-23 10:06:51
theta值未知,eqn方程求解cma可能会遇到无解情况,建议提供公式资料看看

function dydt = funct(t,x, y)

I = 50; % mA
F = 96487; % C/mol
c0 = 10; % mM
Vol = 3.344; % ml
Q = 6.5; % ml/min
A = 33.75; % cm2
y1=y(1); y2=y(2); y3=y(3);
y3 = 0.86*x+0.4*(x*exp(-asinh(y1/(-2*x)))+x*exp(asinh(y1/(-2*x))))

phi_sp = asinh(-3/y2)
phi_ele = asinh(-3/x)

phi_mem=(I*170)/(-1.12*F*(x*cosh(phi_ele)+y2*cosh(phi_sp)))

J =-(1.12*1e-3/170)*(2*x*cosh(phi_ele)-2*y2*cosh(phi_sp))+3*phi_mem

dy1dt = (1e4*I/A)/(116*F)

dy2dt = -J/(250e-6*0.5)+(c0-y2)/(0.5*(Vol/Q)*60)

dy3dt = J/(290*1e-6)

end
clear all;
I = 50; % mA
F = 96487; % C/mol
c0 = 10; % mM
Vol = 3.344; % ml
Q = 6.5; % ml/min
A = 33.75; % cm2
tspan=[0 600]
x0=c0

[t,x,y] = ode45(@funct,tspan, c0, [0 c0 1.66*c0])

plot(t, theta)
xlabel('t'),ylabel('c')

出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

改了程序,现在错误变成这样。公式就是想解一个三个未知数的微分方程组,但是里面有未知数
有梦一起追
4楼2019-06-23 20:57:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0856材料与化工309分求调剂 +4 ZyZy…… 2026-03-10 4/200 2026-03-10 15:20 by houyaoxu
[考研] 337一志愿华南理工材料求调剂 +5 mysdl 2026-03-07 5/250 2026-03-10 14:54 by ruiyingmiao
[考研] 材料专硕调剂 +7 慕辰123 2026-03-05 10/500 2026-03-10 14:22 by peike
[考研] 288求调剂 +10 王晓阳- 2026-03-09 15/750 2026-03-10 10:53 by 吃脑子的虫子
[考研] 085600材料与化工,一志愿广州985,求调剂 +15 qqyyaill 2026-03-05 15/750 2026-03-10 08:23 by Linda Hu
[考研] 调剂 +4 调剂的考研学生 2026-03-09 4/200 2026-03-09 20:22 by wsxw
[考研] 0703求调剂 +10 c297914 2026-03-06 11/550 2026-03-09 18:37 by 30660438
[考研] 334求调剂 +5 Trying] 2026-03-07 5/250 2026-03-09 14:47 by ruiyingmiao
[考研] 0703化学 学硕 理工科均可 不区分研究方向 总分279求调剂 +9 1一11 2026-03-03 9/450 2026-03-09 13:51 by macy2011
[考研] 313求调剂 +4 Yyt杨1 2026-03-07 5/250 2026-03-09 13:48 by macy2011
[考研] 理学287分求调剂 +4 看看我. 2026-03-05 4/200 2026-03-08 22:11 by qingfeng258
[考研] 求调剂,不管什么专业,我是可塑造的人才一枚,希望遇到知己老师捞捞我 +4 13102137290 2026-03-06 5/250 2026-03-07 21:21 by lissomchan
[考研] 一志愿中石油,化学工程,301求调剂 +4 豚馒枳枳 2026-03-04 4/200 2026-03-06 22:15 by 星空星月
[考研] 334求调剂 +6 Trying] 2026-03-05 8/400 2026-03-06 00:16 by wutongshun
[考研] 化工282求调剂一志愿211 +5 NA0912 2026-03-05 6/300 2026-03-05 20:10 by 2735147993
[考研] 材料085601一志愿哈工大317 +4 压迫感行 2026-03-04 4/200 2026-03-05 20:08 by 黑衣馒头人
[考研] 085602 293分求调剂 +3 SivanNano. 2026-03-05 3/150 2026-03-05 19:41 by caszguilin
[考研] 304求调剂 +4 曼殊2266 2026-03-05 4/200 2026-03-05 17:10 by zhukairuo
[考研] 376求调剂 +3 王浩然sam 2026-03-04 3/150 2026-03-05 07:48 by bxbo
[考研] 化工专硕调剂 +4 利好利好. 2026-03-03 7/350 2026-03-03 21:30 by L135790
信息提示
请填处理意见