9 TAcousticTurbine::TAcousticTurbine(
iVector InletPipeID,
iVector VoluteID,
int OutletPipeID) {
11 FInletPipeID.resize(InletPipeID.size());
12 FVoluteID.resize(InletPipeID.size());
13 FInletPipe.resize(InletPipeID.size());
14 FVolute.resize(InletPipeID.size());
16 for(
int i = 0; i < InletPipeID.size(); i++) {
17 FInletPipeID[i] = InletPipeID[i];
18 FVoluteID[i] = VoluteID[i];
20 FOutletPipeID = OutletPipeID;
23 TAcousticTurbine::TAcousticTurbine() {
26 TAcousticTurbine::~TAcousticTurbine() {
29 double TAcousticTurbine::T3(
int i) {
31 double a = FInletPipe[i]->GetAsonido(0) * __cons::ARef;
32 double g = FInletPipe[i]->GetGamma(0);
33 double R = FInletPipe[i]->GetRMezcla(0);
38 double TAcousticTurbine::T3() {
43 for(
int i = 0; i < FInletPipe.size(); i++) {
47 for(
int i = 0; i < FInletPipe.size(); i++) {
50 T3Sum /= FInletPipe.size();
52 for(
int i = 0; i < FInletPipe.size(); i++) {
53 T3Sum += T3(i) * MassIn(i);
60 double TAcousticTurbine::P3(
int i) {
62 return FInletPipe[i]->GetPresion(0);
65 double TAcousticTurbine::P3() {
68 for(
int i = 0; i < FInletPipe.size(); i++) {
71 P3Sum /= FInletPipe.size();
76 double TAcousticTurbine::P30(
int i) {
78 double p = FInletPipe[i]->GetPresion(0);
79 double a = FInletPipe[i]->GetAsonido(0) * __cons::ARef;
80 double v = FInletPipe[i]->GetVelocidad(0) * __cons::ARef;
81 double g = FInletPipe[i]->GetGamma(0);
83 double p3 = p * pow(1 + (g - 1) / 2 *
pow2(v / a), g / (g - 1));
88 double TAcousticTurbine::T30(
int i) {
89 double p = FInletPipe[i]->GetPresion(0);
90 double a = FInletPipe[i]->GetAsonido(0) * __cons::ARef;
91 double v = FInletPipe[i]->GetVelocidad(0) * __cons::ARef;
92 double g = FInletPipe[i]->GetGamma(0);
93 double R = FInletPipe[i]->GetRMezcla(0);
95 double T0 = (
pow2(a) + (g - 1) / 2 *
pow2(v)) / g / R;
100 double TAcousticTurbine::DiabEfficiency(
int i) {
101 double g = FInletPipe[i]->GetGamma(0);
102 double eff = (T30(i) - T4()) / (T30(i) * (1 - pow(1 / ExpRatio(i), (g - 1) / g)));
107 double TAcousticTurbine::ExpRatio(
int i) {
109 return P30(i) / P4();
113 double TAcousticTurbine::ExpRatio() {
116 for(
int i = 0; i < FInletPipe.size(); i++) {
117 ERSum += ExpRatio(i);
119 ERSum /= FInletPipe.size();
125 double TAcousticTurbine::P4() {
127 int n = FOutletPipe->getNin() - 1;
133 double TAcousticTurbine::T4() {
135 int n = FOutletPipe->getNin() - 1;
141 double TAcousticTurbine::MassIn(
int i) {
143 return FInletPipe[i]->GetDensidad(0) * FInletPipe[i]->GetVelocidad(0) * __cons::ARef * SIn(i);
146 double TAcousticTurbine::MassIn() {
149 for(
int i = 0; i < FInletPipe.size(); i++) {
156 double TAcousticTurbine::MassOut() {
158 int n = FOutletPipe->getNin() - 1;
163 double TAcousticTurbine::DIn() {
166 for(
int i = 0; i < FInletPipe.size(); i++) {
167 DInSum +=
pow2(DIn(i));
173 #pragma package(smart_init)