31 #include "TTurbineMap.h"
34 TTurbineMap::TTurbineMap() {
36 FFixedTurbine =
false;
40 TTurbineMap::~TTurbineMap() {
42 FTurbPosition.clear();
45 void TTurbineMap::LoadTurbineMap(FILE *Input,
double Diam1,
double Diam2,
double Diam3,
double Diam4,
46 double CriticalAngle) {
48 int rows = 0, Adiab = 0;
49 double pos = 0., ang = 0.;
50 double Area = __geom::Circle_area(Diam4);
51 double n_limit = 1.165;
52 bool CalculaGR =
false;
55 fscanf(Input,
"%d ", &Adiab);
58 fscanf(Input,
"%lf ", &FTempMeasure);
62 fscanf(Input,
"%d ", &FNumPositions);
63 FTurbPosition.resize(FNumPositions);
64 for(
int i = 0; i < FNumPositions; i++) {
65 fscanf(Input,
"%d %lf %lf", &rows, &pos, &ang);
66 FTurbPosition[i].ReadTurbinPosition(Input, rows, pos, ang);
67 if(ang > CriticalAngle)
71 FTurbPosition[i].EffectiveArea(Area, CalculaGR, Diam1, Diam2, Diam3, n_limit);
73 FTurbPosition[i].SearchMapLimits();
80 if(FNumPositions == 1)
84 void TTurbineMap::CurrentEffectiveSection(
double n,
double er,
double rack,
double T10T00) {
86 FTurbPosition[0].InterpolaPosicion(n, er);
87 FStatorES = FTurbPosition[0].StatorSec();
88 FRotorES = FTurbPosition[0].RotorSec() * sqrt(T10T00);
89 FEffTurb = FTurbPosition[0].Efficiency();
92 while(rack > FTurbPosition[i].Rack() && i < FNumPositions) {
96 FTurbPosition[i].InterpolaPosicion(n, er);
97 FStatorES = FTurbPosition[i].StatorSec();
98 FRotorES = FTurbPosition[i].RotorSec();
99 FEffTurb = FTurbPosition[i].Efficiency();
101 FTurbPosition[i].InterpolaPosicion(n, er);
102 FTurbPosition[i - 1].InterpolaPosicion(n, er);
103 double DeltaRack = (rack - FTurbPosition[i - 1].Rack()) / (FTurbPosition[i].Rack() - FTurbPosition[i - 1].Rack());
104 FStatorES = FTurbPosition[i - 1].StatorSec() * (1 - DeltaRack) + FTurbPosition[i].StatorSec() * DeltaRack;
105 FRotorES = (FTurbPosition[i - 1].RotorSec() * (1 - DeltaRack) + FTurbPosition[i].RotorSec() * DeltaRack) * sqrt(T10T00);
106 FEffTurb = FTurbPosition[i - 1].Efficiency() * (1 - DeltaRack) + FTurbPosition[i].Efficiency() * DeltaRack;
112 void TTurbineMap::PrintFinalMap(FILE *fich) {
113 for(
int i = 0; i < FNumPositions; ++i) {
114 fprintf(fich,
"%lf\n", FTurbPosition[i].Rack());
115 FTurbPosition[i].PrintTurbinePosition(fich);
119 void TTurbineMap::CalculateAdiabaticEfficiency(
TTC_HTM *HTM,
double TinC) {
121 for(
int i = 0; i < FNumPositions; ++i) {
122 FTurbPosition[i].AdiabaticEfficiency(HTM, FTempMeasure, TinC);
128 #pragma package(smart_init)