Download presentation

Presentation is loading. Please wait.

Published byEmilee Ricks Modified over 2 years ago

1
**Inverse problem (from experimental data to model construction)**

Part 2 Parameter fitting for ODEs using fmincon function Example by Xueyang Feng: Nov 16th X = FMINCON(FUN,X0,A,B,Aeq,Beq) minimizes FUN subject to the linear equalities Aeq*X = Beq as well as A*X <= B. (Set A=[] and B=[] if no inequalities exist.) 4/10/2017

2
**d) Parameter fitting using nlinfit**

Inverse problem Unlike forward problems, inverse problems require experimental data, and an iterative solution. Because inverse problems require solving the forward problem numerous time, the ode45 solver will be nested within a nonlinear regression routine called “nlinfit.” The syntax is: [param, r, J, COVB, mse] = nlinfit(X, y, fun, beta0); returns the fitted coefficients param, the residuals r, the Jacobian J of function fun, the estimated covariance matrix COVB for the fitted coefficients, and an estimate MSE of the variance of the error term. X is a matrix of n rows of the independent variable y is n-by-1 vector of the observed data fun is a function handle to a separate m-file to a function of this form: yhat = fun(b,X) where yhat is an n-by-1 vector of the predicted responses, and b is a vector of the parameter values. beta0 is the initial guesses of the parameters.

3
**Example 1: Model fitting ODE equation**

Based on experimental data, find y0 and k. data =xlsread('exp_data.xls'); %read data from excel yo=100; k=0.6; beta0(1)=yo; beta0(2)=k; x=data(:,1); yobs=data(:,2); [param,resids,J,COVB,mse] = nlinfit(x,yobs,'forderinv',beta0); rmse=sqrt(mse); %root mean square error = SS/(n-p) %R is the correlation matrix for the parameters, sigma is the standard error vector [R,sigma]=corrcov(COVB); %confidence intervals for parameters ci=nlparci(param,resids,J); %computed Cpredicted by solving ode45 once with the estimated parameters ypred=forderinv(param,x); %mean of the residuals meanr=mean(resids);

4
**Function with ode45 figure hold on**

h1(1)=plot(x,ypred,'-','linewidth',3); %predicted y values h1(2)=plot(x,yobs,'square', 'Markerfacecolor', 'r'); legend(h1,'ypred','yobs') xlabel('time (min)') ylabel('y') %residual scatter plot plot(x, resids, 'square','Markerfacecolor', 'b'); YLine = [0 0]; XLine = [0 max(x)]; plot (XLine, YLine,'R'); %plot a straight red line at zero ylabel('Observed y - Predicted y') xlabel('time (min)‘) Function with ode45 function y = forderinv(param,t) %first-order reaction equation tspan=t; %we want y at every t tspan, param(1)); %param(1) is y(0) function dy = ff(t, y) %function that computes the dydt dy(1)= -param(2)*y(1); end

5
**One ODE Raw data File name: exp_data.xls Time y Time y 0 107.2637**

Time y 417395 One ODE

6
**Three ODES for batch fermentation**

X P Yp/s=Yx/s*Yp/x

7
**Three ODEs parameter fitting**

File name: HW217.xls t X P S 0.05 15 2.7 5.4 8.1 14 20.5 24.1

8
**Fitting four parameters**

Script clear all %clear all variables global y0 data =xlsread('HW217.xls'); %initial conditions y0=[ ]; %initial guess Umax=0.1; Ks=10; Ypx=0.11; Yxs=0.45; beta0(1)=Umax; beta0(2)=Ks; beta0(3)=Ypx; beta0(4)=Yxs; %Measured data x=data(:,1); yobsX=data(:,2); yobsP=data(:,3); yobsS=data(:,4); yobs=[yobsX; yobsP; yobsS]; %nlinfit returns parameters, residuals, Jacobian (sensitivity coefficient matrix), %covariance matrix, and mean square error. ode45 is solved many times %iteratively [param,resids,J,COVB,mse] = nlinfit(x, yobs,'forderinv2', beta0);

9
Script rmse=sqrt(mse); %root mean square error = SS/(n-p) n=size(x); nn=n(1); %confidence intervals for parameters ci=nlparci(param,resids,J); %computed Cpredicted by solving ode45 once with the estimated parameters ypred=forderinv2(param,x); ypredX=ypred(1:nn); ypredP=ypred(nn+1:2*nn); ypredS=ypred(2*nn+1:3*nn); %mean of the residuals meanr=mean(resids);

10
Script figure hold on plot(x, ypredX, x, ypredP, x, ypredS); %predicted y values plot(x, yobsX, 'r+', x, yobsP, 'ro', x, yobsS, 'rx'); xlabel('time (min)') ylabel('y') %residual scatter plot x3=[x; x; x]; plot(x3, resids, 'square', 'Markerfacecolor', 'b'); YLine = [0 0]; XLine = [0 max(x)]; plot (XLine, YLine,'R'); %plot a straight red line at zero ylabel('Observed y - Predicted y') xlabel('time (min)‘)

11
**Function and sub-function**

function y = forderinv2(param,t) %first-order reaction equation global y0; tspan=t; %we want y at every t %param(1) is y(0) function dy = ff(t,y) %function that computes the dydt dy(1)= param(1)*y(3)/(param(2)+y(3))*y(1); %biomass dy(2)= param(1)*param(3)*y(3)/(param(2)+y(3))*y(1); %product dy(3)= -1/param(4)*dy(1)-1/(param(3)*param(4))*dy(2); %substrate dy=dy'; end % after the ode45, rearrange the n-by-3 y matrix into a 3n-by-1 matrix % and send that back to nlinfit. y1=y(:,1); y2=y(:,2); y3=y(:,3); y=[y1; y2; y3];

12
**3. Simulink Basic elements Blocks**

Blocks: generate, modify, combine, and display signals Typical blocks Continuous: Linear, continuous-time system elements (integrators, transfer functions, state-space models, etc.) Discrete: Linear, discrete-time system elements (integrators, transfer functions, state-space models, etc.) Functions & Tables: User-defined functions and tables for interpolating function values Math: Mathematical operators (sum, gain, dot product, etc.) Nonlinear: Nonlinear operators (coulomb/viscous friction, switches, relays, etc.) Signals: Blocks for controlling/monitoring signals Sinks: Used to output or display signals (displays, scopes, graphs, etc.) Sources: Used to generate various signals (step, ramp, sinusoidal, etc.) Lines transfer signals from one block to another

13
**The graphic interfaces**

3. Simulink Simulink Type “simulink” in the command window The graphic interfaces Matlab

14
Tutorial example x = sin (t) simout 4/10/2017

15
**Simulink example 2 Creep compliance of a wheat protein film**

Using formaldehyde cross-linker Creep compliance of a wheat protein film (determination of retardation time and free dashpot viscosity in the Jefferys model) Where J is the strain, J1 is the retarded compliance (Pa-1); λret=µ1/G1 is retardation time (s); µ0 is the free dashpot viscosity (Pa s); t is the time. The recovery of the compliance is following the equation (t >t1): Where t1 is the time the stress was released.

16
**Creep compliance of a wheat protein film**

4. Simulink examples Creep compliance of a wheat protein film Simulink model Parameters: J1 = a = 0.38 Mpa-1; λret = b = s; µ0 = c = Mpa s

17
**Creep compliance of a wheat protein film**

4. Simulink examples Creep compliance of a wheat protein film Simulation result

18
**4. Simulink example Fermentation system Agitation Regular fermenter**

Ethanol fermenter Heater Heater Products Ethanol Biomass Biomass Aeration

19
**Ethanol production kinetics**

4. Simulink examples Ethanol production kinetics Growth kinetics Substance consumption Product production Where: η is the toxic power, Pmax is the maximum product concentration at which the growth is completely inhibited

20
**4. Simulink examples a. Using blocks to construct the model**

Using S-function to construct the model (you may also writing the programs for simulink function)

21
Special help session November 28 (Monday, 6~9pm) I will be in Sever 201 computer Lab to answer your modeling questions. 4/10/2017

22
**Introduction to Optimization**

The maximizing or minimizing of a given function subject to some type of constraints. Make your processes as effective as possible Good afternoon all. This talk is about addressing challenges in the simulation of lithium-ion battery models.

23
**Example 1 (fminsearch) c) Introduction to Optimization**

To find the minimum of a multidimensional function in [-1.2, 1]: The plot of the function can be generated by the following code: [x, y]=meshgrid ([-2:0.1:2]); z=100*(y-x.^2).^2+(1-x).^2; mesh(x, y, z); grid on clear clc [x, y]=meshgrid ([-2:0.1:2]); z=100*(y-x.^2).^2+(1-x).^2; mesh(x, y, z); grid on [-1.2,1]); x=a(1) y=a(2) z=100*(y-x.^2).^2+(1-x).^2 The function of ex2c is written as follow: function f=ex2c(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2; The function of ex2cMinimum is written as follow: function ex2cMinimum [-1.2,1]);

24
**Example 2 Using fmin for curve fitting function sumsqe= two_var(aa)**

%=========================================== % Michaelis & Menten Model Fit. % File name "SimpleMMplot.m". clear clf global S V; % experiemntal data S=[ ]; V=[ ]; v0=[1; 1]; a=fminsearch('two_var',v0); %least square errors Km=a(1); Vmax=a(2); Vmodel=Vmax*S./(Km+S); plot(S,V,'ro', S, Vmodel) xlabel('Concentrations') ylabel('rate') legend('Data','Predict') Example 2 Using fmin for curve fitting function sumsqe= two_var(aa) global S V; Km =aa(1); Vmax =aa(2); Vmodel=Vmax*S./(Km+S); err=V-Vmodel; err2=err.*err; sumsqe=sum(err2); return

25
**Find values of x that minimize **

Example 3 Find values of x that minimize starting at the point x = [10; 10; 10] and subject to the constraints X = FMINCON(FUN, X0, A, B, Aeq, Beq, LB, UB) minimizes FUN subject to the linear equalities Aeq*X = Beq as well as A*X <= B. (Set A=[] and B=[] if no inequalities exist.)

26
**Use fmincon for optimization**

FMINCON attempts to solve problems of the form: min F(X) subject to: A*X <= B, Aeq*X = Beq (linear constraints) C(X) <= 0, Ceq(X) = 0 (nonlinear constraints) LB <= X <= UB (bounds) %file name example1 clc;close all;clear all; int_guess=[10;10;10];% INITIAL GUESS FOR U'S A=[ ;1 2 2]; % equality constraints B=[0 72]; int_guess, A, B) % CALL FOR OPTIMIZER %file name eg_1.m function [err]=eg_1(u) x1=u(1); x2=u(2); x3=u(3); err=-x1*x2*x3;

27
**Example 4 (dynamic optimization)**

Consider the batch reactor with following reaction A B C Find the temperature, at which the product B is maximum Mathematical Representation of the system is as :

28
**T=335.3244 FVAL = -0.6058 clc;close all;clear all; warning off**

int_guess=300;% INITIAL GUESS FOR U'S LB=298; % LOWER BOUND OF U UB=398;% UPPER BOUND ON U % CALL FOR OPTIMIZER PROBABLY NOT TO CHANGE BE USER [err]=reactor_problem(u); load data_for_system plot(t,Y(:,1),'k') hold on plot(t,Y(:,2),'m') legend('opt c_A','opt c_B') u T= FVAL =

29
**Maximize B ODE calculation function [err]=reactor_problem(u)**

A=[1 0]; %initial condition 1], A,[],u); %tspan=1 err= - Y(end,2); %make the maximum B save data_for_system t Y %just for plotting ODE calculation function [YPRIME]=reactor_ODE(t,x,u) YPRIME=zeros(2,1); T=u; k1=4000*exp(-2500/T); k2=620000*exp(-5000/T); YPRIME(1)=-k1*(x(1))^2; YPRIME(2)=(k1*x(1)^2)-k2*x(2);

30
**Using MATLAB for solving more complicated dynamic models (Optional)**

4/10/2017

31
**For example, solve complicated dynamic model in the bioprocess**

Many biological systems are dynamic and heterogeneous! Therefore, structured and segregated models have to be used.

32
**Definitions • Ordinary Differential Equation (ODE): The dependent**

variable is a function of only one independent variable. • Partial Differential Equation (PDE): The dependent variable is a function of more than one dependent variable. Boundary-value problems are those where space conditions are not known; Initial-value problems are those dynamic condition are not known.

33
**Boundary-value problems**

• Dirichlet boundary conditions are those where a fixed value of a variable is known at a particular location. • Neumann boundary conditions are those where a derivative is known at a particular location. Finite-Difference Methods are often used to solve boundary-value problems. In these techniques, finite differences are substituted for the derivatives in the original equation, transforming a linear differential equation into a set of simultaneous algebraic equations.

34
Final equation

35
**Aqueous Phase Marine pollution by oil compounds**

Sediment particle Oil Aqueous Phase Sediment particle Bacteria Oil transport and degradation in the porous sediment 4/10/2017

36
**How to solve PDEs using the finite difference method?**

The change of Contaminant concentrations in the porous environment a: one injection unit Find the time and space dependent change of Ci,j

37
**Sample codes for PDE problem.**

function ydot=rhs2d2(t, y) global dx D ii jj Km Vmax for j=1:jj for i=1:ii vv=vv+1; yy(i,j) = y(vv); end for j=2:jj-1 for i=2:ii-1 R=-Vmax*yy(i,j)/(Km+yy(i,j)); Dffu1=(yy(i+1,j)-2*yy(i,j)+yy(i-1,j))/(dx*dx); Dffu2=(1/(dx*(i-1)))*(yy(i+1,j)-yy(i-1,j))/2/dx; Dffu3=(yy(i,j+1)-2*yy(i,j)+yy(i,j-1))/(dx*dx); dot(i,j) = D*(Dffu1+Dffu2+Dffu3)+R; bb = ii*(j-1)+i; ydot(bb) = dot(i,j); ydot=ydot'; Sample codes for PDE problem. You can change PDE problem to many mini ODE problem, then you solve them at the same time. 4/10/2017

38
Solving Reaction Engineering Problems with MATLAB By Lian He Solve PDE dynamic equations and nonlinear equilibrium equations

39
**Example 1 Porous Catalyst**

The spherical catalysts are exposed to reactants at the initial time point. Given the information about the diffusion coefficient De, reaction rate, etc., we want to know the reactant concentration profile. (We assume that the reactant concentration in the catalyst is only a function of time and distance to the center for simplicity. ) R

40
**Solution PDE Dimensionless form Initial condition u(0, x)=0**

Dimensionless form Initial condition u(0, x)=0 Boundary conditions u(t , 1)=Ssurf Thiele Module

41
**sol = pdepe(m, @pdefun, @icfun, @bcfun, xmesh, tspan, options)**

MATLAB tool: pdepe Syntax sol @bcfun, xmesh, tspan, options) function u0=icfun(x) u0=0; end function [c, f, s] = pdefun(x, t, u, DuDx) c=1; f=φ^(-2)*DuDx; s=-u/(1+u/beta); end function [pl, ql, pr, qr]=pdebound(xl, ul, xr, ur, t) pr=ur-1; qr=0; pl=0; ql=1; end

42
Results

43
**function [pl, ql, pr, qr]=bcfun(xl, ul, xr, ur, t) pr=ur-1; qr=0; **

Three Functions Main script function [pl, ql, pr, qr]=bcfun(xl, ul, xr, ur, t) pr=ur-1; qr=0; pl=0; ql=1; end clc; clear all; x=0:0.02:1; %radius range t=0:0.04:8; %timespan %Show the concentration profile as a function of time for k=1:length(t) plot(x,u(k,:),'linewidth',2); xlabel('distance from the center'); ylabel('substrate concentration'); pause(.2) end figure(2) %3D plot mesh(x,t,u); xlabel('x'); ylabel('t'); zlabel('u'); axis([ ]); function u0=icfun(x) u0=0; end function[c,f,s]=pdefun(x,t,u,DuDx) De=3*10^-4; Ss=1*10^-4; Km=0.1*Ss; R=0.001; umax=0.5; Mt=R*sqrt(umax/Km/De); beta=Km/Ss; c=1; f=Mt^(-2)*DuDx; s=-u/(1+u/beta); end

44
Example 2

45
**Solution # Reaction Molar Extent 1 C+2H2O=CO2+2H2 X1 2 C+CO2=2CO X2 3**

C+2H2=CH4 X3 Species nj0 nj H2O 1 1-2X1 CO2 X1-X2 CO 2X2 CH4 X3 H2 2(X1-X3) sum 1+X1+X2-X3

46
**You can use MATLAB tool-fsolve to solve the problem**

Nonlinear equations You can use MATLAB tool-fsolve to solve the problem

47
**Main script clear all; clc; %initial guess of molar extent**

%set the intial values T=600; %creat different vectors for recording temperature, molar extent and molar %fraction t=zeros(101,1); X=zeros(101,3); yH2O=zeros(101,1); yCO2=zeros(101,1); yCO=zeros(101,1); yCH4=zeros(101,1); yH2=zeros(101,1); for i=1:101 %find the solution [x,fval] = %record the results t(i)=T; X(i,:)=x; %caculate the molar fraction of each species yH2O(i)=(1-2*x(1))/(1+x(1)+x(2)-x(3)); yCO2(i)=(x(1)-x(2))/(1+x(1)+x(2)-x(3)); yCO(i)=2*x(2)/(1+x(1)+x(2)-x(3)); yCH4(i)=x(3)/(1+x(1)+x(2)-x(3)); yH2(i)=2*(x(1)-x(3))/(1+x(1)+x(2)-x(3)); %change values for the next loops T=T+10; end %plotting subplot(2,2,[1 3]); plot(t,X(:,1),'o',t,X(:,2),'*',t,X(:,3),'.'); legend('C+H_2O=>CO_2+2H_2','C+CO_2=>2CO','C+2H_2=>CH_4'); xlabel('Temperature (K)'); ylabel('molar extent'); axis([ ]); subplot(2,2,[2 4]); plot(t,yH2O,'o',t,yCO2,'-o',t,yCO,'.',t,yCH4,'*',t,yH2,'^'); legend('H_2O','CO_2','CO','CH_4','H_2'); ylabel('molar fraction'); axis([ ]); Main script

48
**Fsolve function to solve nonlinear equation**

function F = nlfunc(x,T) %coefficient values K1=9.73*10^(-12)*exp(-10835/T+36.36); K2=9.92*10^(-22)*exp(-20740/T+69.60); K3=8.00*10^8*exp(8973/T-30.11); %three column vectors F=zeros(1,3); %functions F(1)=4*(x(1)-x(3))^2*(x(1)-x(2))-K1*(1-2*x(1))^2*(1+x(1)+x(2)-x(3)); F(2)=4*x(2)^2-K2*(x(1)-x(2))*(1+x(1)+x(2)-x(3)); F(3)=x(3)*(1+x(1)+x(2)-x(3))-4*K3*(x(1)-x(3))^2; end

49
Results

Similar presentations

OK

Metabolic Flux Analysis by MATLAB Xueyang Feng Dept. of Energy, Environmental & Chemical Engineering Washington University in St. Louis.

Metabolic Flux Analysis by MATLAB Xueyang Feng Dept. of Energy, Environmental & Chemical Engineering Washington University in St. Louis.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on ocean food chain Ppt on e-library system Ppt on ip address classes and subnet Ppt on op amp circuits applications Download ppt on history and sport the story of cricket Ppt on communication Ppt on chapter 3 atoms and molecules wikipedia Ppt on arunachal pradesh cultured Flexible display ppt online Bcd to 7 segment display ppt online