24小时热门版块排行榜    

查看: 1984  |  回复: 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的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
8楼: Originally posted by chendequan at 2019-06-24 15:28:52
个人签名里面有我联系方式,问题资料要齐全,要求要具体详细,这样便于问题及时解决。...

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的动态变化呢
感谢感谢
有梦一起追
10楼2019-06-28 05:02:15
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿江南大学085701环境工程专硕总分287求调剂 +3 18266118446 2026-03-09 3/150 2026-03-10 15:50 by houyaoxu
[考研] 考研材料与化工,求调剂 +5 戏精丹丹丹 2026-03-09 5/250 2026-03-10 15:24 by houyaoxu
[考研] 一志愿天大化工(085600)调剂总分338 +5 蔡大美女 2026-03-09 5/250 2026-03-10 14:44 by ruiyingmiao
[考研] 材料与化工求调剂 +11 与冬清宁 2026-03-07 14/700 2026-03-10 14:23 by Linda Hu
[考研] 研究生招生 +3 徐海涛11 2026-03-10 6/300 2026-03-10 12:43 by 徐海涛11
[考博] 找博导 +4 小呆呆熊 2026-03-07 4/200 2026-03-10 11:08 by 天道酬勤2026686
[考研] 环境调剂 +5 晓看天暮看云 2026-03-09 5/250 2026-03-10 10:46 by 星空星月
[考研] 0701-322 求调剂 +3 jiliuxian 2026-03-06 8/400 2026-03-08 19:31 by jiliuxian
[考研] 347求调剂 +4 浮云满足 2026-03-07 4/200 2026-03-08 16:46 by 星空星月
[考研] 070300化学求调剂292分 +3 打烊eee 2026-03-07 3/150 2026-03-07 20:04 by houyaoxu
[考研] 一志愿211 085600 280数二英二求调剂 +3 月山斜 2026-03-06 3/150 2026-03-07 18:56 by houyaoxu
[考研] 085600材料与化工(高分子)290分求调剂 +9 wengyujian 2026-03-04 9/450 2026-03-06 15:59 by 聪明的大松鼠
[考研] 085602高分子方向求调剂 +7 tlgudy 2026-03-04 7/350 2026-03-06 14:17 by guosr9609
[考研] 化工282求调剂一志愿211 +5 NA0912 2026-03-05 6/300 2026-03-05 20:10 by 2735147993
[考研] 求调剂 +3 泡了个椒 2026-03-04 4/200 2026-03-05 14:37 by 泡了个椒
[考研] 301求调剂 +4 李LJR 2026-03-04 4/200 2026-03-05 13:31 by Iveryant
[考研] 274环境工程求调剂 +6 扶柳盈江 2026-03-05 6/300 2026-03-05 13:16 by 梦天888
[考研] 0856材料专硕274能调剂去哪里? +3 22735 2026-03-04 4/200 2026-03-05 09:06 by 斩魂滴兔子!
[考研] 322分 085600求调剂,有互联网+国金及主持省级大创经历 +6 熊境喆 2026-03-04 6/300 2026-03-04 20:32 by kakakapanpan
[考研] 化工专硕调剂 +4 利好利好. 2026-03-03 7/350 2026-03-03 21:30 by L135790
信息提示
请填处理意见