How to get values from a struct?
Show older comments
Hello, I want to extract the ksi1 and ksi2 values from S structure to that I can evaluate yCO, yCO2, etc. to plot them vs Temperature. But I could not do it. I tried to use A = S.ksi1 but even though I can see every value in the command window, workshop only gives me the final value of A in sym type. So I was wandering How can I extract ksi1 and ksi2 so that I can evaluate yCO, yCO2, etc.with them. Thank you in advance.
clc;
clear;
nCO = 1; %starting mol
nCO2 = 1; %starting mol
nH2 = 2; %starting mol
nCH3OH = 0; %starting mol
nH2O = 1; %starting mol
R = 8.314;%J/molK
deltaGrxn1 = -24.8; %kJ/mol
deltaHrxn1 = -90.2; %kJ/mol
deltaSrxn1 = -0.2; %(deltaGrxn1 - deltaHrxn1)/(-T)
deltaGrxn2 = -28.6; %kJ/mol
deltaHrxn2 = -41.2; %kJ/mol
deltaSrxn2 = 0.042; %(deltaGrxn2 - deltaHrxn2)/(-T)
T = 298:10:800; %Temperature Values
for i = 1:size(T,2)
dG1(i) = deltaHrxn1 - T(i) * deltaSrxn1;
Ka1(i) = exp(-dG1(i)/(R*T(i)));
dG2(i) = deltaHrxn2 - T(i) * deltaSrxn2;
Ka2(i) = exp(-dG2(i)/(R*T(i)));
syms ksi1 ksi2
eqn = (((ksi1)./(1-ksi1-ksi2))./((2-2*ksi1-ksi2)/(4-2*ksi1))^2)==Ka1(i);(((1+ksi2).*(2-2*ksi1-ksi2))./((1-ksi2).*(1+ksi2)))==Ka2(i);
S = vpasolve(eqn,ksi1,ksi2);
yCO = ((1 - ksi1 - ksi2)./(4 - 2*ksi1));
yCO2 = ((1 + ksi2)./(4 - 2*ksi1));
yH2 = ((2 - 2*ksi1 - ksi2)./(4 - 2*ksi1));
yCH3OH = ((ksi1)./(4-2*ksi1));
yH2O = ((1-ksi2)./(4-2*ksi1));
end
Accepted Answer
More Answers (0)
Categories
Find more on Programming in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!