24小时热门版块排行榜    

查看: 797  |  回复: 0

月见弥生

金虫 (初入文坛)

[交流] 用Matlab的ODE求解器计算反应动力学,如何在反应物量趋近0时停止反应

求教群里各位大侠,用Matlab的ODE求解器计算反应动力学时,由于反应物的反应动力学数量级比较大,当反应物量趋近于0时,容易积分得到负值;由于ode求解器是对反应物量和产物量变化速率方程组进行求解,用nonnegative会导致修正后反应物消耗量与不需要修正的反应物及产物间不符合化学计量关系。
如燃烧反应: CO+0.5O2=CO2
       function dy=fun(...)
       r=r_co(...);
       dco=-r;
       do2=-0.5*r;
       dco2=r;
       dy=[dco;do2;dco2];
       end
当CO趋近于0,O2>>0时,若对CO采用非负约束,则消耗的CO与O2无法满足计量关系,也就是说结果原子会不守恒。请问大家有没有遇到过这类问题,是如何解决以保证积分不为负呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 月见弥生 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见