24小时热门版块排行榜    

查看: 1184  |  回复: 3

清辉12365

新虫 (初入文坛)

[求助] 动力学参数拟合

原料是:甲醇、CO、氧气。主反应:甲醇、CO、氧气合成DMC,副反应:CO和氧气合成CO2.
要干的活:拟合出生成DMC和CO2的动力学参数(指前因子、活化能、级数)
动力学方程为dy1/dw=f(y1、y2)和dy2/dw=f(y1、y2),具体形式见附图。
整理后的实验数据:N0(原料初始的摩尔数)、P(压力)、t(温度)、x1(甲醇初始的摩尔分数)、x2(CO初始的摩尔分数)、x3(O2初始的摩尔分数)、y1(DMC产物的摩尔分数)、y2(O2产物的摩尔分数)、W=0.375(催化剂的质量)。
关键难度在:主要是两个常微分方程、数据多不知如何进行运算。下面是自己编的程序,出现问题并且解决不上来,希望大神指教
function YYHJIA
clear all;clc
global t T P N0 X1 X2 X3 ;
t=[140 140 140.2 143.4 150 150.1 150.2 151.2 153.7 159.2 160 161.3 140.2 141.1 149.7 150.3 150.8 159.7 161.2 138 150.3 160 160.2 162.3];
%温度
T=t+273.15;  
P=[0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.3 0.3 0.3 0.3 0.3];
%压力
N0=[0.3091 0.3260 0.2796 0.2856 0.2801 0.3260 0.3091 0.2853 0.3190 0.2853 0.3962 0.3190 0.3085 0.2793 0.2804 0.2856 0.3083 0.3085 0.2788 0.2368 0.26 0.2597 0.3207 0.2344];
%原料初始摩尔
x1=[0.624 0.5 0.5310 0.5710 0.53 0.5 0.624 0.572 0.511 0.572 0.524 0.511 0.625 0.531 0.529 0.571 0.625 0.625 0.532 0.501 0.57 0.571 0.555 0.506];
%原料甲醇占的摩尔分数
x2=[0.25 0.334 0.349 0.287 0.348 0.334 0.25 0.286 0.345 0.286 0.352 0.345 0.25 0.349 0.348 0.286 0.25 0.25 0.35 0.334 0.287 0.288 0.334 0.337];
%原料CO摩尔分数
x3=[0.127 0.166 0.121 0.142 0.122 0.166 0.127 0.142 0.144 0.142 0.124 0.144 0.125 0.12 0.123 0.143 0.124 0.125 0.118 0.165 0.142 0.141 0.111 0.157];
%原料O2的摩尔分数
Y1=[0.015 0.016 0.015 0.017 0.02 0.021 0.021 0.021 0.021 0.025 0.023 0.025 0.018 0.018 0.025 0.026 0.026 0.03 0.03 0.023 0.028 0.036 0.034 0.038];
%出口DMC的摩尔数
Y2=[0.018 0.02 0.018 0.033 0.04 0.041 0.042 0.042 0.045 0.054 0.053 0.054 0.031 0.032 0.05 0.051 0.05 0.059 0.058 0.043 0.051 0.063 0.061 0.066];
%出口CO的摩尔数
k0=[8e4 2e4 -0.5 0.5 1 4e5 3e4 0.5 0.5 ];%(指前因子、活化能、级数)初始量
lb=[0 0 -3 -3 -3 0  0 -3 -3 ];%下限
ub=[+inf +inf +inf +inf +inf +inf +inf +inf +inf];%上限
%使用lsqnonlin函数进行参数估计
[k,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(@ObjFunc,k0,lb,ub,[],T,P,N0,X1,X2,X3,Y1,Y2);
ci=nlparci(k,residual,jacobian);
function f=ObjFunc(k,T,P,N0,X1,X2,X3,Y1,Y2)
wspan=[0 0.375];
Y0=[Y1' Y2']
[m,n]=size(Y0);
Ycal = zeros(m,n);
for i=1:m
[w yy]=ode45(@Equations,wspan,Y0(i,,[],k);
Ycal(i,=yy(end,;
end
f=Ycal-Y0;
function dydw=Equations(w,yy,k)
%如何表达呢?这么多数字
r1=k(1)*exp*(-k(2)./T).*P.^(k(3)+k(4)+k(5))*...
    (yy(1).*(1.5*x1-2)+0.5*yy(2).*x1).^(k(3))*...
    (yy(1).*(1.5*x2-1)+yy(2).*(0.5*x2-1)+x2).^(k(4))*...
    (yy(1).*(1.5*x3-0.5)+yy(2).*(0.3*x3-0.5)+x3).^k(5);
r2=k(6)*exp*(-k(7)./T).*P.^(k(8)+k(9))*...
    (yy(1).*(1.5*x2-1)+yy(2).*(0.5*x2-1)+x2).^k(8)*...
    (yy(1).*(1.5*x3-0.5)+yy(2).*(0.3*x3-0.5)+x3).^k(9);
dy1dw=(1+1.5*yy(1)+0.5*yy(2)).*(r1.*(1.5*yy(1)+1)+0.5*yy(1).*r2)./N0;
dy2dw=(1+1.5*yy(1)+0.5*yy(2)).*(r2.*(1+0.5*yy(2))+1.5*r1.*yy(2))./N0;
dydw=[dy1dw;dy2dw];
出现的问题如图:

动力学参数拟合
出现的问题.jpg


动力学参数拟合-1
方程形式.jpg


动力学参数拟合-2
方程具体形式2.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

exp后面是不要*的
其余的太长,没看完
2楼2015-03-05 01:28:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

清辉12365

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 信彼南山 at 2015-03-05 01:28:52
exp后面是不要*的
其余的太长,没看完

我也看到了,请问一下,还有什么错误吗??麻烦了~~
3楼2015-03-05 08:35:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

清辉12365

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 信彼南山 at 2015-03-05 01:28:52
exp后面是不要*的
其余的太长,没看完

function YYHJIA
clear all;clc
global T P N0 x1 x2 x3;
t=[140 140 140.2 143.4 150 150.1 150.2 151.2 153.7 159.2 160 161.3 140.2 141.1 149.7 150.3 150.8 159.7 161.2 138 150.3 160 160.2 162.3];
%温度
T=t+273.15;  
P=[0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.3 0.3 0.3 0.3 0.3];
%压力
N0=[0.3091 0.3260 0.2796 0.2856 0.2801 0.3260 0.3091 0.2853 0.3190 0.2853 0.3962 0.3190 0.3085 0.2793 0.2804 0.2856 0.3083 0.3085 0.2788 0.2368 0.26 0.2597 0.3207 0.2344];
%原料初始摩尔
x1=[0.624 0.5 0.5310 0.5710 0.53 0.5 0.624 0.572 0.511 0.572 0.524 0.511 0.625 0.531 0.529 0.571 0.625 0.625 0.532 0.501 0.57 0.571 0.555 0.506];
%原料甲醇占的摩尔分数
x2=[0.25 0.334 0.349 0.287 0.348 0.334 0.25 0.286 0.345 0.286 0.352 0.345 0.25 0.349 0.348 0.286 0.25 0.25 0.35 0.334 0.287 0.288 0.334 0.337];
%原料CO摩尔分数
x3=[0.127 0.166 0.121 0.142 0.122 0.166 0.127 0.142 0.144 0.142 0.124 0.144 0.125 0.12 0.123 0.143 0.124 0.125 0.118 0.165 0.142 0.141 0.111 0.157];
%原料O2的摩尔分数
Y1=[0.015 0.016 0.015 0.017 0.02 0.021 0.021 0.021 0.021 0.025 0.023 0.025 0.018 0.018 0.025 0.026 0.026 0.03 0.03 0.023 0.028 0.036 0.034 0.038];
%出口DMC的摩尔数
Y2=[0.018 0.02 0.018 0.033 0.04 0.041 0.042 0.042 0.045 0.054 0.053 0.054 0.031 0.032 0.05 0.051 0.05 0.059 0.058 0.043 0.051 0.063 0.061 0.066];
%出口CO的摩尔数
k0=[8e4 2e4 -0.5 0.5 1 4e5 3e4 0.5 0.5 ];%(指前因子、活化能、级数)初始量
lb=[0 0 -3 -3 -3 0  0 -3 -3 ];%下限
ub=[+inf +inf +inf +inf +inf +inf +inf +inf +inf];%上限
%使用lsqnonlin函数进行参数估计
[k,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(@ObjFunc,k0,lb,ub,[],T,P,N0,x1,x2,x3,Y1,Y2);
ci=nlparci(k,residual,jacobian);
function f=ObjFunc(k,T,P,N0,x1,x2,x3,Y1,Y2)
wspan=[0 0.375];
Y0=[Y1' Y2'];
X=[N0' P' T' x1' x2' x3' Y1' Y2']
[m,n]=size(Y0);
Ycal = zeros(m,n);
for i=1:m
[w yy]=ode45(@Equations,wspan,Y0(i,,[],k);
Ycal(i,=yy(end,;
end
f=Ycal-Y0;
function dydw=Equations(w,yy,k,N0,P,T,x1,x2,x3)
global T P N0 x1 x2 x3;
%如何表达呢?这么多数字
r1=k(1)*exp(-k(2)./T).*P.^(k(3)+k(4)+k(5))*...
    (yy(1).*(1.5*x1-2)+0.5*yy(2).*x1).^(k(3))*...
    (yy(1).*(1.5*x2-1)+yy(2).*(0.5*x2-1)+x2).^(k(4))*...
    (yy(1).*(1.5*x3-0.5)+yy(2).*(0.3*x3-0.5)+x3).^k(5);
r2=k(6)*exp(-k(7)./T).*P.^(k(8)+k(9))*...
    (yy(1).*(1.5*x2-1)+yy(2).*(0.5*x2-1)+x2).^k(8)*...
    (yy(1).*(1.5*x3-0.5)+yy(2).*(0.3*x3-0.5)+x3).^k(9);
dy1dw=(1+1.5*yy(1)+0.5*yy(2)).*(r1.*(1.5*yy(1)+1)+0.5*yy(1).*r2)./N0;
dy2dw=(1+1.5*yy(1)+0.5*yy(2)).*(r2.*(1+0.5*yy(2))+1.5*r1.*yy(2))./N0;
dydw=[dy1dw;dy2dw];
图像为出现的错误结果
动力学参数拟合-3
图1.jpg

4楼2015-03-05 09:36:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 清辉12365 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 建议基金发布提前给出明确的时间点 +11 kulium 2026-08-21 14/700 2026-08-24 02:12 by 流流伤
[基金申请] 范进中举一文的中心思想 +4 炎黄贵胄 2026-08-22 5/250 2026-08-24 02:09 by 流流伤
[基金申请] 让我中一个面上吧! +12 大萍1987 2026-08-20 15/750 2026-08-23 20:44 by 大萍1987
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +4 process2012 2026-08-23 5/250 2026-08-23 19:58 by jurkat.1640
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 只有每年这种时候来逛逛小木虫 +24 yaoyewhu2008 2026-08-20 26/1300 2026-08-22 17:43 by kammury
[基金申请] filecode,4个jtjc了 +13 ziyangfang 2026-08-19 16/800 2026-08-22 17:08 by WH3796
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 放榜前的不淡定 40+4 snowwithsea 2026-08-19 14/700 2026-08-21 23:51 by cratir
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 感觉是下周放榜了 +7 angus9576 2026-08-17 12/600 2026-08-21 13:38 by weiyin
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
信息提示
请填处理意见