How to assess / improve non-linear parameter estimation of differential equation for chemical reaction rates
2 次查看(过去 30 天)
显示 更早的评论
Hello, in the file equation first three chemical equations for the synthesis of CH3OCH3 appear. Then you see three reaction rates r [amount of created substance from one of the substances in the chemical equations in mol/[m^3*s]). r contains thermodynamic and kinetic parameters. Some of them are supposed to be estimated within the differential equation dyi/dz at the bottom. y_i is the fraction of the amount one of the substances has on the total composition (mol-fraction). z is the axis of a reactor / tube the substances "float" along and react with each other. Estimation is based on a data set with 240 runs. Each run contains the mol-fraction of each substance at z=0 (reactor entrance) and at z=reactor exit (no data in between). The set also varies along temperature and volume flow, which has an effect on velocity u in dy/dz. Parameters were estimated by the code:
options=optimset('MaxFunEvals', 10000, 'MaxIter', 10000, 'TolFun', 0.0001, 'TolX',0.0001,'Display','on');
[k_optim, resnorm, residual, exitflag, output, lambda, jacobian] = lsqnonlin(f,k0,lb,ub,options);
f is the file which contains the modeling of the ODE. Some results are shown in the other file. I would like to ask:
- Is there any statistical interference /hypothesis tests, similar to the F-test for a complete linear regression model, which I could use for reparametrization?
- How would you check for colinearity between the parameters?
- You know of any methods for detecting outliers in the data-set for non-linear regression?
- Is there any toolbox / open-source code or literature for implementing bayesian regression techniques for ODE models?
- You think the matlab function nlparci is a good tool for calculating confidence intervals for such a model?
- Any other suggestions for improving / testing the model?
Best, D.
1 个评论
Moji
2018-10-30
i have the same problem, how did you solve your problem with your steady state experiment data ???
回答(1 个)
vijaya lakshmi
2018-2-27
Hi Entropie,
There are two tool boxes available in MATLAB to solve differntial equations as well as optimize the unknown parameters.
- The optimization toolbox in MATLAB provides function such as FMINSEARCH, LSQNONLIN, FMINCON etc., which can be used for optimizing parameters while minimizing an objective function. In this case, the objective function will have to call another sub-routine which solves the differential equations using ODE solvers such as ODE23, ODE45, ODE23s, ODE113, or ODE15s. The ODE solver in turn will call the function where the differential equations are implemented.Refer to this link for documentation.
- A second way of estimating the parameters in an ODE is to use the "Nonlinear Grey Box" models of System Identification Toolbox. This feature has been available since R2007a.
These techniques work for both linear and nonlinear ODEs
This type of work can be done within a Simulink simulation where Simulink Design Optimization allows you to optimize system parameters while using a variable step size solver. It is designed to handle the numerical difficulties which arise in these situations such as the aforementioned issues when using the optimization toolbox and ode solvers directly. You can find more information on Simulink Design Optimization at:
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!