@@ -21,18 +21,18 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
2121 double s_C_Wc = u [9 ]; /* Wc map scalar [NA] */
2222 double s_C_PR = u [10 ]; /* PR map scalar [NA] */
2323 double s_C_Eff = u [11 ]; /* Eff map scalar [NA] */
24-
24+
2525 int uWidth1 = prm -> CustBldNm ;
2626 int uWidth2 = prm -> FracBldNm ;
27-
27+
2828 /*--------Define Constants-------*/
2929 double WOut , htOut , TtOut , PtOut , FARcOut , TorqueOut , NErrorOut ;
3030 double C_Nc , C_Wc , C_PR , C_Eff ;
3131 double htin , Sin , Wcin , WcCalcin , WcMap , theta ,delta , Pwrout , Wbleeds ;
3232 double TtIdealout , htIdealout , Test , Sout , NcMap , Nc , PRMap , PR , EffMap , Eff ;
3333 double Wb4bleed , Pwrb4bleed , PwrBld ;
3434 double SPR , SPRMap , SMavail , SMMap ;
35-
35+
3636 /* Define Arrays for bleed calcs */
3737 int MaxNumberBleeds = 100 ;
3838 double WcustOut [500 ];
@@ -45,44 +45,44 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
4545 double TtbldOut [500 ];
4646 double htbldOut [500 ];
4747 double htcustOut [500 ];
48-
48+
4949 double SMWcVec [500 ];
5050 double SMPRVec [500 ];
51-
51+
5252 int interpErr = 0 ;
5353 int i ;
54-
54+
5555 /*-- Compute output Fuel to Air Ratio ---*/
5656 FARcOut = FARcIn ;
57-
57+
5858 /*-- Compute Input enthalpy --------*/
59-
59+
6060 htin = t2hc (TtIn ,FARcIn );
61-
61+
6262 /*-- Compute Input entropy --------*/
63-
63+
6464 Sin = pt2sc (PtIn ,TtIn ,FARcIn );
65-
65+
6666 /*---- calculate misc. fluid condition related variables and corrected Flow --*/
6767 delta = PtIn / C_PSTD ;
6868 theta = TtIn / C_TSTD ;
6969 Wcin = WIn * sqrtT (theta )* divby (delta );
70-
70+
7171 /*------ Calculate corrected speed ---------*/
7272 Nc = Nmech * divby (sqrtT (theta ));
7373 if (prm -> IDes < 0.5 )
7474 C_Nc = Nc * divby (prm -> NcDes ) ;
7575 else
7676 C_Nc = s_C_Nc ;
77-
77+
7878 NcMap = Nc * divby (C_Nc );
79-
79+
8080 /*-- Compute Total Flow input (from Compressor map) --------*/
8181 if (prm -> C > 1 )
8282 WcMap = interp3Ac (prm -> X_C_RlineVec ,prm -> Y_C_Map_NcVec ,prm -> Z_C_AlphaVec ,prm -> T_C_Map_WcArray ,Rline ,NcMap ,Alpha ,prm -> B ,prm -> A ,prm -> C ,& interpErr );
8383 else
8484 WcMap = interp2Ac (prm -> X_C_RlineVec ,prm -> Y_C_Map_NcVec ,prm -> T_C_Map_WcArray ,Rline ,NcMap ,prm -> B ,prm -> A ,& interpErr );
85-
85+
8686 if ((prm -> WcMapCol != prm -> B || prm -> WcMapRw != prm -> A || prm -> WcMapLay != prm -> C ) && * (prm -> IWork + Er1 )== 0 ){
8787 #ifdef MATLAB_MEX_FILE
8888 printf ("Warning in %s, Error calculating WcMap. Table size does not match axis vector lengths.\n" , prm -> BlkNm );
@@ -95,20 +95,20 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
9595 #endif
9696 * (prm -> IWork + Er1 ) = 1 ;
9797 }
98-
98+
9999 if (prm -> IDes < 0.5 )
100100 C_Wc = Wcin * divby (WcMap );
101101 else
102102 C_Wc = s_C_Wc ;
103-
103+
104104 WcCalcin = WcMap * C_Wc ;
105-
105+
106106 /*-- Compute Pressure Ratio (from Compressor map) --------*/
107107 if (prm -> C > 1 )
108108 PRMap = interp3Ac (prm -> X_C_RlineVec ,prm -> Y_C_Map_NcVec ,prm -> Z_C_AlphaVec ,prm -> T_C_Map_PRArray ,Rline ,NcMap ,Alpha ,prm -> B ,prm -> A ,prm -> C ,& interpErr );
109109 else
110110 PRMap = interp2Ac (prm -> X_C_RlineVec ,prm -> Y_C_Map_NcVec ,prm -> T_C_Map_PRArray ,Rline ,NcMap ,prm -> B ,prm -> A ,& interpErr );
111-
111+
112112 if ((prm -> PRMapCol != prm -> B || prm -> PRMapRw != prm -> A || prm -> PRMapLay != prm -> C ) && * (prm -> IWork + Er2 )== 0 ){
113113 #ifdef MATLAB_MEX_FILE
114114 printf ("Warning in %s, Error calculating PRMap. Table size does not match axis vector lengths.\n" , prm -> BlkNm );
@@ -121,20 +121,20 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
121121 #endif
122122 * (prm -> IWork + Er2 ) = 1 ;
123123 }
124-
124+
125125 if (prm -> IDes < 0.5 )
126126 C_PR = (prm -> PRDes - 1 )* divby (PRMap - 1 );
127127 else
128128 C_PR = s_C_PR ;
129-
129+
130130 PR = C_PR * (PRMap - 1 ) + 1 ;
131-
131+
132132 /*-- Compute Efficiency (from Compressor map) ---*/
133133 if (prm -> C > 1 )
134134 EffMap = interp3Ac (prm -> X_C_RlineVec ,prm -> Y_C_Map_NcVec ,prm -> Z_C_AlphaVec ,prm -> T_C_Map_EffArray ,Rline ,NcMap ,Alpha ,prm -> B ,prm -> A ,prm -> C ,& interpErr );
135135 else
136136 EffMap = interp2Ac (prm -> X_C_RlineVec ,prm -> Y_C_Map_NcVec ,prm -> T_C_Map_EffArray ,Rline ,NcMap ,prm -> B ,prm -> A ,& interpErr );
137-
137+
138138 if ((prm -> EffMapCol != prm -> B || prm -> EffMapRw != prm -> A || prm -> EffMapLay != prm -> C ) && * (prm -> IWork + Er3 )== 0 ){
139139 #ifdef MATLAB_MEX_FILE
140140 printf ("Warning in %s, Error calculating EffMap. Table size does not match axis vector lengths.\n" , prm -> BlkNm );
@@ -147,40 +147,40 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
147147 #endif
148148 * (prm -> IWork + Er3 ) = 1 ;
149149 }
150-
150+
151151 if (prm -> IDes < 0.5 )
152152 C_Eff = prm -> EffDes * divby (EffMap );
153153 else
154154 C_Eff = s_C_Eff ;
155-
155+
156156 Eff = EffMap * C_Eff ;
157-
157+
158158 /*------ Compute pressure output --------*/
159-
159+
160160 PtOut = PtIn * PR ;
161-
162-
161+
162+
163163 /*------ enthalpy calculations ---------*/
164-
164+
165165 /* ---- Ideal enthalpy ----*/
166166 Sout = Sin ;
167167 TtIdealout = sp2tc (Sout ,PtOut ,FARcIn );
168168 htIdealout = t2hc (TtIdealout ,FARcIn );
169-
170-
169+
170+
171171 /* ---- Final enthalpy output ----*/
172-
172+
173173 htOut = ((htIdealout - htin )* divby (Eff )) + htin ;
174-
174+
175175 /*------ Compute Temperature output ---------*/
176-
176+
177177 TtOut = h2tc (htOut ,FARcIn );
178-
179-
178+
179+
180180 /* initalize Bleed sums components */
181181 Wbleeds = 0 ;
182182 PwrBld = 0 ;
183-
183+
184184 /* compute customer Bleed components */
185185 for (i = 0 ; i < uWidth1 ; i ++ )
186186 {
@@ -209,9 +209,9 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
209209 * (prm -> IWork + Er4 ) = 1 ;
210210 }
211211 }
212-
212+
213213 /*----Disable Fractional bleed when requested----*/
214-
214+
215215 for (i = 0 ; i < uWidth2 ; i ++ )
216216 {
217217 if (FracWbld [i ] <= 0 || prm -> FBldEn < 0.5 ){
@@ -221,7 +221,7 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
221221 TtbldOut [i ] = 0 ;
222222 PtbldOut [i ] = 0 ;
223223 }
224-
224+
225225 else {
226226 /*-- Compute sum of Fractional Bleed Flow output --------*/
227227 Wbleeds = Wbleeds + FracWbld [i ]* WIn ; /* add to total bleed value */
@@ -239,19 +239,19 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
239239 * (prm -> IWork + Er4 ) = 1 ;
240240 }
241241 }
242-
242+
243243 /*-- Compute Flows --------*/
244244 Wb4bleed = WIn ;
245245 WOut = WIn - Wbleeds ;
246-
246+
247247 /*------ Compute Powers ---------*/
248-
248+
249249 Pwrb4bleed = Wb4bleed * (htin - htOut ) * C_BTU_PER_SECtoHP ;
250250 Pwrout = Pwrb4bleed - PwrBld ;
251-
251+
252252 /*----- Compute output Torque to shaft ----*/
253253 TorqueOut = C_HP_PER_RPMtoFT_LBF * Pwrout * divby (Nmech );
254-
254+
255255 /* ----- Compute Normalized Flow Error ----- */
256256 if (prm -> IDes < 0.5 && Rline == 0 )
257257 NErrorOut = 100 ;
@@ -261,7 +261,7 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
261261 NErrorOut = 100 ;
262262 else
263263 NErrorOut = (Wcin - WcCalcin )* divby (Wcin );
264-
264+
265265 /* Compute Stall Margin */
266266 if (prm -> C > 1 ){
267267 /* Define 1-prm->D surge margin vectors based on alpha */
@@ -281,7 +281,7 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
281281 * (prm -> IWork + Er5 ) = 1 ;
282282 }
283283 }
284- SPRMap = interp1Ac (SMWcVec , SMPRVec ,WcMap ,prm -> A ,& interpErr );
284+ SPRMap = interp1Ac (SMWcVec , SMPRVec ,WcMap ,prm -> D / prm -> C ,& interpErr );
285285 if (interpErr == 1 && * (prm -> IWork + Er5 )== 0 ){
286286 #ifdef MATLAB_MEX_FILE
287287 printf ("Warning in %s, Error calculating 2D SPR. Vector definitions may need to be adjusted.\n" , prm -> BlkNm );
@@ -291,7 +291,7 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
291291 }
292292 else
293293 SPRMap = interp1Ac (prm -> X_C_Map_WcSurgeVec ,prm -> T_C_Map_PRSurgeVec ,WcMap ,prm -> D ,& interpErr );
294-
294+
295295 if (interpErr == 1 && * (prm -> IWork + Er5 )== 0 ){
296296 #ifdef MATLAB_MEX_FILE
297297 printf ("Warning in %s, Error calculating SPR. Vector definitions may need to be expanded.\n" , prm -> BlkNm );
@@ -301,10 +301,10 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
301301 SPR = C_PR * (SPRMap - 1 ) + 1 ;
302302 SMavail = (SPR - PR )* divby (PR ) * 100 ;
303303 SMMap = (SPRMap - PRMap )* divby (PRMap ) * 100 ;
304-
304+
305305 /* Test variable */
306306 Test = SPRMap ;
307-
307+
308308 /*------Assign output values port1------------*/
309309 y [0 ] = WOut ; /* Outlet Total Flow [pps] */
310310 y [1 ] = htOut ; /* Output Enthalpy [BTU/lbm] */
@@ -333,7 +333,7 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
333333 y [24 ] = SMMap ; /* Stall margin calculated from map values [%]*/
334334 y [25 ] = SPRMap ; /* Map stall pressure ratio*/
335335 y [26 ] = Test ; /* test signal */
336-
336+
337337 /*------Assign output values port2------------*/
338338 /* Customer or flow based bleed*/
339339 for (i = 0 ; i < uWidth1 ; i ++ )
@@ -344,7 +344,7 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
344344 * y1 ++ = PtcustOut [i ];
345345 * y1 ++ = FARcustOut [i ];
346346 }
347-
347+
348348 /*------Assign output values port3------------*/
349349 /* fractional bleed, typically used for turbine cooling flow */
350350 for (i = 0 ; i < uWidth2 ; i ++ )
@@ -355,5 +355,5 @@ void Compressor_TMATS_body(double* y, double* y1, double* y2, const double* u, c
355355 * y2 ++ = PtbldOut [i ];
356356 * y2 ++ = FARbldOut [i ];
357357 }
358-
358+
359359}
0 commit comments