(据我了解)
我正在尝试使用 matlab 在等式右侧的一组不同的独立值处求解四阶多项式的根(如果您熟悉,NASA 多项式的焓 T)。
我正在做(简化版!)的热力学项目:针对一系列不同的进气温度找到锅炉的绝热火焰温度并考虑可变比热。
对于这个特定的代码迭代,错误是:
"Unable to perform assignment because the indices on the left side are not
compatible with the size of the right side.
Error in sym/privsubsasgn (line 1307)
L_tilde2 = builtin('subsasgn',L_tilde,struct('type','()','subs',{varargin}),R_tilde);
Error in indexing (line 1138)
C = privsubsasgn(L,R,inds{:});
Error in MCHE362_FinalProject_Pr2D_William_Rhinehart (line 39)
Tab(i) = vpa(T2);"
我用的是Matlab r2022a学生版。
clear
clc
syms tab2
Ti = (298:25:873);
%low temperature coefficients
A_CO2l = [2.35677352e+00 8.98459677e-03 -7.12356269e-06 2.45919022e-09 -1.43699548e-13 -4.83719697E+04 9.90105222e+00];
A_H2Ol = [4.19864056e+00 -2.03643410e-03 6.52040211e-06 -5.48797062e-09 1.77197817e-12 -3.02937267e+04 -8.49032208e-01];
A_N2l = [0.02926640E+02 0.14879768E-02 -0.05684760E-05 0.10097038E-09 -0.06753351E-13 -0.09227977E+04 0.05980528E+02];
%high temperature coefficients
A_CO2h = [3.85746029e+00 4.41437026e-03 -2.21481404e-06 5.23490188e-10 -4.72084164e-14 -4.87591660e+04 2.27163806e+00];
A_H2Oh = [3.03399249e+00 2.17691804e-03 -1.64072518e-07 -9.70419870e-11 1.68200992e-14 -3.00042971e+04 4.96677010e+00];
A_N2h = [0.02926640e+02 0.14879768e-02 -0.05684760e-05 0.10097038e-09 -0.06753351e-13 -0.09227977e+04 0.05980528e+02];
hfCO2 = -393520 ;
hfH2O = -241820 ;
hfN2 = 0 ;
hfCH4 = -74850;
RCO2 = 0.1889; % W
RH2O = 0.4615; % X
RN2 = 0.2968; % Y
for i = 1:length(Ti)
EQ = ( 1*(hfCO2+(RCO2*tab2*(A_CO2h(1) + A_CO2h(2)*tab2/2 +A_CO2h(3)*(tab2^2)/3 + A_CO2h(4)*(tab2^3)/4 + A_CO2h(5)*(tab2^4)/5 + A_CO2h(6)/tab2))-(RCO2*Ti(i)*(A_CO2l(1) + A_CO2l(2)*Ti(i)/2 +A_CO2l(3)*(Ti(i)^2)/3 + A_CO2l(4)*(Ti(i)^3)/4 + A_CO2l(5)*(Ti(i)^4)/5 + A_CO2l(6)/Ti(i))))...
+ 2*(hfH2O+(RH2O*tab2*(A_H2Oh(1) + A_H2Oh(2)*tab2/2 +A_H2Oh(3)*(tab2^2)/3 + A_H2Oh(4)*(tab2^3)/4 + A_H2Oh(5)*(tab2^4)/5 + A_H2Oh(6)/tab2)-(RH2O*Ti(i)*(A_H2Ol(1) + A_H2Ol(2)*Ti(i)/2 +A_H2Ol(3)*(Ti(i)^2)/3 + A_H2Ol(4)*(Ti(i)^3)/4 + A_H2Ol(5)*(Ti(i)^4)/5 + A_H2Ol(6)/Ti(i))))...
+ 7.52*(RN2*tab2*(A_N2h(1) + A_N2h(2)*tab2/2 +A_N2h(3)*(tab2^2)/3 + A_N2h(4)*(tab2^3)/4 + A_N2h(5)*(tab2^4)/5 + A_N2h(6)/tab2)-(RN2*Ti(i)*(A_N2l(1) + A_N2l(2)*Ti(i)/2 +A_N2l(3)*(Ti(i)^2)/3 + A_N2l(4)*(Ti(i)^3)/4 + A_N2l(5)*(Ti(i)^4)/5 + A_N2l(6)/Ti(i)))))...
- hfCH4 ...
== 0 );
T2 = solve(EQ,tab2);
Tab(i) = vpa(T2);
end