Testing the I_ab model

The I_ab_T model is the simplest two-state isomerization model with the temperature dependence

Contents

close all
clear all

Here you will find all figures

figures_folder='I_ab_T_testing_figures';

Test Computation of Equilibrium Concentrations

Set some meaningful parameters

R_gas=8.314510; % Gas constant J /mol /K
Rtotal=1; % Receptor concentration, M

% these are the constants we want to create
K_array=[0.25 0.5  1 2  4 ];

dH= 20000;  % J/mol
dS= 80; % J/mol/K

T_array=[];
for counter=1:length(K_array)
    % compute temperature
    T= dH./(dS-R_gas*log(K_array(counter)));
    T_array = [T_array ; T];
end
figure_handle=equilibrium_thermodynamic_equations.plot_populations(...
    T_array, K_array, {'K'}, 'K vs. T', ...
    [min(T_array) max(T_array) ], [0 max(K_array) ]);
xlabel('Temperature, K','FontSize',14);
ylabel('Equilibrium constant','FontSize',14);
% save it
results_output.output_figure(figure_handle, figures_folder, 'K_plot');

Set appropriate options for the model (see model file for details)

model_numeric_solver='analytical'  ;
model_numeric_options='n/a';

concentrations_array=[];
for counter=1:length(T_array)
    % compute
    [concentrations species_names] = equilibrium_thermodynamic_equations.I_ab_T_model(...
        Rtotal, T_array(counter), dH, dS,...
        model_numeric_solver, model_numeric_options);
    % collect
    concentrations_array = [concentrations_array ; concentrations];
end

Plot

Figure_title= 'I_ab_T model';
X_range=[min(T_array) max(T_array)+0.1 ]; % extend X just a bit past last point
Y_range=[0 Rtotal ]; % keep automatic scaling for Y
% display figure
figure_handle=equilibrium_thermodynamic_equations.plot_populations(...
    T_array, concentrations_array, species_names, Figure_title, X_range, Y_range);
xlabel('Temperature, K','FontSize',14);
% save it
results_output.output_figure(figure_handle, figures_folder, 'Concentrations_plot');

Observations

The ratio between Ra and Rb forms changes appropriately with K_A value.

Conclusion

The model equilibrium_thermodynamic_equations.I_ab_model() works well.