# Solving simultaneous thermodynamic equations

9 visualizzazioni (ultimi 30 giorni)
Risposto: Pavan Guntha il 17 Nov 2021
I am trying to find out Xb and Xl for a range of Temperatures (800-1400) while simultaneosly solving the two equations. I am having problems since I figured I would need to do it in a for loop to be able to get more temperatures into the mix. this is however causing errors since I tried defining the xbs, and xbl variables as an array with the same number of elements as a temperature array but it keeps saying reference to non existent field xbs.
tr=[800:50:1400];
xbs=sym('a',[1 length(tr)]);
xbl=sym('b',[1 length(tr)]);
Aol=-5000;
for i=1:length(tr)
gma=10000-10*tr;
gmb=12000-10*tr;
eqa=gma+(8.3144*tr(1,i)*log((1-xbl(1,i))/(1-xbs(1,i))))+Aol*(xbl(1,i)^2)==0
eqb=gmb+(8.3144*tr(1,i)*log((xbl(1,i)/xbs(1,i))))+Aol*((1-xbl(1,i))^2)==0
sol=solve([eqa,eqb],[xbs(1,i),xbl(1,i)])
xbs(1,i)=sol.xbs
sbl(1,i)=sol.xbl
end
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposte (1)

Pavan Guntha il 17 Nov 2021
Hello Shreyas,
In the code attached, 'sol' is struct with fields 'a1' and 'b1'. There's no field named 'xbs' or 'xbl' in 'sol' due to which the error pops out stating reference to non existent field xbs. The modified code is as follows:
tr=[800:50:1400];
xbs=sym('a',[1 length(tr)]);
xbl=sym('b',[1 length(tr)]);
Aol=-5000;
gma=10000-10*tr; % Take this out of for loop since it's a one-time calculation.
gmb=12000-10*tr; % Take this out of for loop since it's a one-time calculation.
for i=1:length(tr)
eqa=gma(1,i)+(8.3144*tr(1,i)*log((1-xbl(1,i))/(1-xbs(1,i))))+Aol*(xbl(1,i)^2)==0;
eqb=gmb(1,i)+(8.3144*tr(1,i)*log((xbl(1,i)/xbs(1,i))))+Aol*((1-xbl(1,i))^2)==0;
sol=solve([eqa,eqb],[xbs(1,i),xbl(1,i)]);
fields = fieldnames(sol); % Get the field names from a structure.
xbs(1,i)= getfield(sol,fields{1}); % Use 'getfield' to get the value of a particular field from a structure.
xbl(1,i)= getfield(sol,fields{2});
end
Hope this helps!
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

R2019b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by