24小时热门版块排行榜    

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

小小莓邮

铁虫 (小有名气)

[求助] 拜求!matlab拟合动力学参数已有2人参与

实验数据如下
t(h)[RH]              [ROOH]
0        8.32016                0
1        7.37673                0.21115
2        6.74433                0.7379
3        5.92613                1.10562
4        5.68806                1.29586
5        5.01584                1.58327
6        6.09249                1.36404
8        5.34827                1.84065
10        4.9961                2.00986
动力学模型如图
其中[o2]浓度未测量但认为恒定,想把K4[o2]看成一个参数,并估计出其他的k1 k1‘ K4 K5 K8 f 值,matlab一窍不通,看了几天了还是不明所以,所以恳请各位大神给拟合一下,并给出代码,因为还要拟合其他的,所以想大神给出一个后面好跟着做。。。
拜求!matlab拟合动力学参数
捕获.JPG
回复此楼

» 猜你喜欢

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

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

pdl9527

专家顾问 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
随便编了一下,拟合结果有点问题,估计是k的初值k0取得有问题或者数据太少或者实验数据有问题。。。
程序如下,其中k0是我随便设的初值,k1=k1,k2=k1',k3=k8,k4=k4*[O],k5=k5,k6=f



function piadatfit2
clear all;clc
tspan=[0 1 2 3 4 5 6 8 10];
cexp=[8.32016 0;7.37673 0.21115;
    6.74433 0.7379;5.92613 1.10562;5.68806 1.29586;
    5.01584 1.58327;6.09249 1.36404;5.34827 1.84065;4.9961 2.00986];
k0=[-0.1 1 -2.3 13 0.2 0.4];
c0=[8.32016 0];
LB=[0 0 0 0 0 0];
UB=[+inf +inf +inf +inf +inf +inf];
[k,resnorm,residual]=lsqnonlin(@objpia,k0,LB,UB,[],cexp,tspan,c0)
[tplot cplot]=ode45(@piakin,tspan,c0,[],k);
plot(tspan,cexp(:,1),'bx',tplot,cplot(:,1),'b-',tspan,cexp(:,2),'ko',tplot,cplot(:,2),'k-')

function f=objpia(k,cexp,tspan,c0)
[t c]=ode45(@piakin,tspan,c0,[],k);
f1=c(:,1)-cexp(:,1);
f2=c(:,2)-cexp(:,2);
f=[f1;f2];
function dcdt=piakin(t,c,k)
dc1dt=-(k(4)*k(5)*c(1)*sqrt(k(1)*c(2)/k(3))/(k(4)+k(5)*c(1))+2*k(6)*k(2)*c(2));
dc2dt=(k(4)*k(5)*c(1)*sqrt(k(1)*c(2)/k(3))/(k(4)+k(5)*c(1))+2*k(6)*k(2)*c(2));
dcdt=[dc1dt dc2dt]';

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

8楼2014-02-19 15:16:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

钟静

新虫 (初入文坛)

有几点不懂哈:
1.等式右边的是什么,-r_RH?怎么没给出来?直接把原模型放出来看看啦!在等式里面也没有体现时间,可见这个式子和数据,给出的数据和给出的模型等式不匹配啊兄弟!
2.[o2]浓度恒定,你居然不知道数值?测量困难?多一个参数对其他参数影响也很大呀!
3.最小二乘法啦,Matlab的lsqcurvefit函数可以满足你的计算要求!
2楼2014-02-18 16:54:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小小莓邮

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by 钟静 at 2014-02-18 16:54:32
有几点不懂哈:
1.等式右边的是什么,-r_RH?怎么没给出来?直接把原模型放出来看看啦!在等式里面也没有体现时间,可见这个式子和数据,给出的数据和给出的模型等式不匹配啊兄弟!
2.浓度恒定,你居然不知道数值? ...

1、等式左边-rRH=-d[RH]/dt 速率表示
2、氧气浓度目前没法测,但认为其浓度恒定,主要是为了确定速率与几种产物的关系,并不是深究每个k的真实值,所以才认为k4[O2]可以看做一个常数
3、matlab真心不会,在坛子里看了好几天了,也看到了一下案例及代码,但还是整不明白,也写不出来,才求教各位大神,先看看能不能帮忙写出这个得代码,后面的自己再慢慢来!
小弟先在此谢过了!
3楼2014-02-18 19:00:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

你的模型没说全, 单凭你这几个数据不可能做出来
提问之前连最基本的背景都不说, 你以为别人都是神, 知道你要的是什么?
4楼2014-02-18 22:54:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见