Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Cokle bed catalytic reactor case study 1. Select a higher order approximation an

ID: 2267409 • Letter: C

Question

Cokle bed catalytic reactor case study 1. Select a higher order approximation and derive the new TF 2. How does the new TF compare in complexity? How will that affect microcontroller implementation? 3. Using MATLAB, plot three step responses on the same axes: original, Ist order approximation, higher order approximation Identify and draw a schematic for two additional time delayed systems Describe how you expect the time delay to impact performance 4. 5. Recall that the system model including time delays was given by G1(s) 6. Solve for the poles of the transfer function. Hint: Recall that the poles are the roots of the denominator. The poles then are the solution of Assuming that the poles are of the form Then This can be split into two equations, the real and imaginary components It is now possible to solve for and numerically

Explanation / Answer

if true % code %% main clear all close all %% konstante Parameter % Katwerte Werte V=0.00206*0.8; % Katalysator volumen Theta_g=3; % Max storage capacity in g M_NH3=17; % Molar Mass NH3 g/mol Theta=Theta_g/M_NH3; % NH3 storage capacity [mol] %% Stoff / umgebung % Mgas=0.030; % Molar mass of exhaust gas [kg mol?-1] Pin=102000; % inlet pressure [Pa] Tin = 573; % Temperatur [K] % naturkostanten R=8.3144598; % ideal gas constant [J K?-1 mol?-1] % Umrechnung PRT=Pin/(R*Tin); np=1.51787; F=np/PRT; % Volumenstromberechnung % Reaction preconstant and Activation Energy A_ads=8e2; E_ads=0; % Adsortion A_des=10e10; E_des=1.7e5; % Desorption A_std=2.1e8; E_std=95e3; % standard SCR A_fast=1.9e12; E_fast=85.1e3; % fast SCR A_NOoxi=2e6; E_NOoxi=88e3; % NO oxi A_NH3oxi=1.2e11; E_NH3oxi=162.4e3; % NH3 Oxidation x0=[ 0.0021; 0.0062; 0; 0]; % FileName = 'p03_theta_v1'; % ODE Funtkion auswählen Order = [4 1 4]; % Model orders [ny nu nx]. Parameters = [... % Initial parameters. A_ads; E_ads; ... % Adsortion A_des; E_des; ... % Desorption A_std; E_std; ... % standard SCR A_fast; E_fast; ... % fast SCR A_NOoxi; E_NOoxi; ... % NO oxi A_NH3oxi; E_NH3oxi; ... % Oxidation Theta; F; ... % PRT; R; ... % V; Tin ... ]; InitialStates = [x0]; % Initial initial states. Tss = 0; % Time-continuous system. nlgr = idnlgrey(FileName, Order, Parameters, InitialStates, Tss, 'Name', ... 'Stirred tank reactor', ... 'TimeUnit', 'second'); % nlgr.InputName = {'C_{NH3_{in}}' ... % u()-- Input. }; nlgr.InputUnit = {'mol/m^3' ... }; nlgr = setinit(nlgr, 'Name', { 'C_{N0}' 'C_{N02}' 'C_{NH3}' 'thetaNH3' ... % x()-- State. }); ... nlgr = setinit(nlgr, 'Unit', {'mol/m^3' 'mol/m^3' 'mol/m^3' '-' }); nlgr = setinit(nlgr, 'Fixed', {false false false false}); % nlgr = setinit(nlgr, 'Fixed', {true true true true}); for i=1:size(x0) nlgr.InitialStates(i).Fixed=true(size(x0)); end nlgr.OutputName = { 'C_{N0}^{ppm}' 'C_{N02}^{ppm}' 'C_{NH3}^{ppm}' 'thetaNH3' ... % y()--- Output }; nglr.OutputUnit = {'ppm' 'ppm' 'ppm' '-'... }; nlgr = setpar(nlgr, 'Name', {... 'Pre-exponential constant of adsoption reaction' ... % A_ads. 'Activation energy of adsoption reaction' ... % E_ads. 'Pre-exponential constant of desoption reaction' ... % A_des. 'Activation energy of desoption reaction' ... % E_des. 'Pre-exponential constant of standart SCR reaction' ... % A_std. 'Activation energy of standart SCR reaction' ... % E_std. 'Pre-exponential constant of fast SCR reaction' ... % A_fast. 'Activation energy of fast SCR reaction' ... % E_fast. 'Pre-exponential constant of NO oxidation reaction' ... % A_slow. 'Activation energy of NO oxidation reaction' ... % E_slow. 'Pre-exponential constant of NH3 oxidation reaction' ... % A_oxi. 'Activation energy of NH3 oxidation reaction' ... % E_oxi. 'Storage capacity' ... % M 'FLow' ... % Mgas 'PRT' ... % P 'Gaskonstante' 'Volumen' 'Temperatur'}); ... % R V T nlgr = setpar(nlgr, 'Unit', { ... 'm^3/(mol*s)' 'J/mol' 'm^3/(mol*s)' 'J/mol' ... 'm^3/(mol*s)' 'J/mol' 'm^3/(mol*s)' 'J/mol' ... 'm^3/(mol*s)' 'J/mol' 'm^3/(mol*s)' 'J/mol' ... 'mol/m^3' 'g/mol' '[P/(RT)]' 'J/(K mol)' 'm^3' 'K'}); %% Solver hier ode15s geeignet, ode45 nicht! nlgr.SimulationOptions.Solver = 'ode15s'; nlgr.SimulationOptions.AbsTol= 1e-1; nlgr.SimulationOptions.RelTol= 1e-3; %% nlgr.Parameters(2).Fixed = true; for j=13:18 nlgr.Parameters(j).Fixed = true; end for w=1:18 nlgr.Parameters(w).Minimum=0; end % present(nlgr); % Input-Output Data % Import the data [~, ~, raw] = xlsread('Gaszusammensetzung.xlsx','Tabelle1','A3:I250'); % ende der messung A3:I576 %% Create output variable data = reshape([raw{:}],size(raw)); % time = data(:,1); cNH3US = data(:,2); cNOUS = data(:,3); cNO2US = data(:,4); cNH3DS = data(:,5); cNODS = data(:,6); cNO2DS = data(:,7); massbilance = data(:,8); thetaNH3 = data(:,9); null=zeros(size(time)); clearvars data raw; um=[cNH3US]; ym=[cNODS cNO2DS cNH3DS thetaNH3]; % Resample measurement data to one "fix time increment" (sampling time Ts). Ts = 3; % seconds ze = iddata(ym, um, Ts, 'Name', 'Estimation data'); ze.InputName = nlgr.InputName; ze.InputUnit = nlgr.InputUnit; ze.OutputName = nlgr.OutputName; ze.OutputUnit = nlgr.OutputUnit; ze.Tstart = 0; ze.TimeUnit = 'second'; ze.ExperimentName = 'Estimation'; %% Output figure('Name', [ze.Name ': output data']); for i = 1:ze.Ny subplot(ze.Ny, 1, i); plot(ze.SamplingInstants, ze.OutputData(:,i)); title(['Output #' num2str(i) ': ' ze.OutputName{i}]); xlabel(''); axis tight; end xlabel([ze.Domain ' (' ze.TimeUnit ')']); %% Performance of the Initial CSTR Model tic clf compare(ze,nlgr) toc end if true function [dx, y] = p03_theta_v1(t, x, u, ... A_ads, E_ads, ... A_des, E_des, ... A_std, E_std, ... A_fast, E_fast, ... A_NOoxi, E_NOoxi, ... A_NH3oxi, E_NH3oxi, ... Theta, F, ... PRT, R, ... V, Tin,... varargin) % Benötigte Zusatzwerte / Umrechnungen % Vol.%/ppm in mol/m^3 cO2_in=1.3792; % 6.44195842e-2*PRT cNO_in=0.0021; % 99e-6*PRT cNO2_in=0.0062; % 291e-6*PRT % Zustände cNO = x(1); cNO2 = x(2); cNH3 = x(3); thetaNH3 = x(4); cNO = max (0, cNO); cNO2 = max (0, cNO2); cNH3 = max (0, cNH3); thetaNH3 = max(0, thetaNH3); thetaNH3 = min(1, thetaNH3); %% Eingangsgrößen ci in mol/m^3 cNH3_in = u(1).*PRT.*1e-6; %% Reaktionsrate Ahrrenius % k = @(A, E, R, T) A*exp(-E/R/T); % r1 = k( A_std, E_std, R, Tin); % standard SCR r2 = k( A_fast, E_fast, R, Tin); % fast SCR r3 = k( A_NH3oxi, E_NH3oxi, R, Tin); % nh3 oxi r4F = k( A_ads, E_ads, R, Tin); % ads r4R = k( A_des, E_des, R, Tin); % des r5 = k( A_NOoxi, E_NOoxi, R, Tin); % NO oxi %% Ausgabe y = [cNO/PRT*1e6; ... % Concentration of substance A in the reactor. cNO2/PRT*1e6; ... cNH3/PRT*1e6; ... thetaNH3]; %% Zustandsgleichungen % State equations. dx = ones(4,1); dx(1) = -r1*cNO*cO2_in*thetaNH3*Theta*V-0.5*r2*cNO*cNO2*thetaNH3*Theta*V-r5*cNO*cO2_in*V-F/V*cNO+F/V*cNO_in; dx(2) = -0.5*r2*cNO*cNO2*thetaNH3*Theta*V+r5*cNO*cO2_in*V-F/V*cNO2+F/V*cNO2_in; dx(3) = -cNH3*(Theta*r4F*(1-thetaNH3)+F/V)+1/V*r4R*Theta*thetaNH3+F/V*cNH3_in; dx(4) = -thetaNH3*(r4F*cNH3*V+r3*cO2_in*V+r4R+r1*cNO*cO2_in*V^2+r2*cNO*cNO2*V^2)+r4F*cNH3*V; end end