Ejemplo n.º 1
0
    def test_integrate_work_balance_comp_turbine_ker_wcool(self):
        """Соврадение работы, определенной на разности входной и выходной энтальпий, заданной величине."""
        work_fluid = KeroseneCombustionProducts()

        T_g_stag = self.comp_turbine_ker_wcool.T_g_stag
        T_t_stag = self.comp_turbine_ker_wcool.last.T_st_stag
        alpha = self.comp_turbine_ker_wcool.first.alpha_air_in

        c_p = work_fluid.c_p_av_int_func(T_g_stag, T_t_stag, alpha=alpha)
        L_t = c_p * (T_g_stag - T_t_stag)
        L_t_res = abs(L_t - self.comp_turbine_ker_wcool.L_t_cycle) / self.comp_turbine_ker_wcool.L_t_cycle
        self.assertAlmostEqual(L_t_res, 0, places=3)
Ejemplo n.º 2
0
 def setUp(self):
     self.turbine = Turbine(TurbineType.WORK,
                            T_g_stag=1400,
                            p_g_stag=300e3,
                            G_turbine=25,
                            work_fluid=KeroseneCombustionProducts(),
                            G_fuel=1,
                            l1_D1_ratio=0.25,
                            n=15e3,
                            T_t_stag_cycle=1150,
                            stage_number=2,
                            eta_t_stag_cycle=0.91,
                            k_n=6.8,
                            eta_m=0.99,
                            auto_compute_heat_drop=True,
                            precise_heat_drop=False,
                            auto_set_rho=True,
                            H01_init=120e3,
                            c21_init=250,
                            alpha11=np.radians([17])[0],
                            gamma_av=np.radians([4])[0],
                            gamma_sum=np.radians([10])[0])
     self.turbine.compute_geometry()
     self.turbine.compute_stages_gas_dynamics()
     self.turbine.compute_integrate_turbine_parameters()
     self.stage_prof = StageProfiler(
         profiling_type=ProfilingType.ConstantCirculation,
         p0_stag=lambda r: self.turbine[0].p0_stag,
         T0_stag=lambda r: self.turbine[0].T0_stag,
         c0=lambda r: 100,
         alpha0=lambda r: np.radians([90])[0],
         c_p=self.turbine.c_p_gas,
         k=self.turbine.k_gas,
         D1_in=self.turbine.geom[0].D1 - self.turbine.geom[0].l1,
         D1_av=self.turbine.geom[0].D1,
         D1_out=self.turbine.geom[0].D1 + self.turbine.geom[0].l1,
         n=self.turbine.n,
         c1_av=self.turbine[0].c1,
         alpha1_av=self.turbine[0].alpha1,
         L_u_av=self.turbine[0].L_u,
         c2_a_av=self.turbine[0].c2_a,
         c2_u_av=self.turbine[0].c2_u,
         b_a_sa=self.turbine.geom[0].b_sa,
         b_a_rk=self.turbine.geom[0].b_rk,
         delta_a_sa=self.turbine.geom[0].delta_a_sa,
         delta_a_rk=self.turbine.geom[0].delta_a_rk,
         t_rel_av_sa=0.8,
         t_rel_av_rk=0.7,
         center=True,
         section_num=3,
         x0=0.,
         y0=0.,
         pnt_cnt=35,
         gamma1_k_rel_rk=lambda r_rel: 0.5,
         gamma1_rk=None,
         gamma1_sa=None,
         center_point_rk=lambda r_rel: 0.46 + 0.02 * r_rel,
         center_point_sa=lambda r_rel: 0.51 + 0.02 * r_rel)
Ejemplo n.º 3
0
 def __init__(self, unit_arr: typing.List[Unit], relax_coef=1, precision=0.01, max_iter_number=50,
              cold_work_fluid: IdealGas=Air(), hot_work_fluid: IdealGas=KeroseneCombustionProducts()):
     self._connection_arr: typing.List[ConnectionSet] = []
     self._unit_arr = unit_arr
     self.cold_work_fluid = cold_work_fluid
     self.hot_work_fluid = hot_work_fluid
     self.relax_coef = relax_coef
     self.precision = precision
     self.max_iter_number = max_iter_number
     self._iter_number = 0
     self._residual_arr = []
Ejemplo n.º 4
0
    def setUp(self):
        self.turbine = Turbine(TurbineType.WORK,
                               T_g_stag=1450,
                               p_g_stag=400e3,
                               G_turbine=25,
                               work_fluid=KeroseneCombustionProducts(),
                               G_fuel=2.5,
                               l1_D1_ratio=0.25,
                               n=15e3,
                               T_t_stag_cycle=1050,
                               stage_number=2,
                               eta_t_stag_cycle=0.91,
                               k_n=6.8,
                               eta_m=0.99,
                               auto_compute_heat_drop=False,
                               precise_heat_drop=False,
                               auto_set_rho=False,
                               rho_list=[0.4, 0.20],
                               H0_list=[235e3, 200e3],
                               alpha11=np.radians([17])[0],
                               gamma_av=np.radians([4])[0],
                               gamma_sum=np.radians([10])[0])
        self.turbine.compute_geometry()
        self.turbine.compute_stages_gas_dynamics()
        self.turbine.compute_integrate_turbine_parameters()

        self.turbine_profiler = TurbineProfiler(turbine=self.turbine,
                                                p_in_stag=lambda r: self.turbine[0].p0_stag,
                                                T_in_stag=lambda r: self.turbine[0].T0_stag,
                                                c_in=lambda r: 90,
                                                alpha_in=lambda r: np.radians([90])[0],
                                                center=True)
        self.turbine_profiler[0].profiling_type = ProfilingType.ConstantAngle
        self.turbine_profiler[0].gamma1_k_rel_rk = lambda r_rel: 0.5
        self.turbine_profiler[1].profiling_type = ProfilingType.ConstantAngle
        self.turbine_profiler[1].auto_sections_par = False
        self.turbine_profiler[1].rk_sections[0].gamma1_s = np.radians([15])[0]
        self.turbine_profiler[1].rk_sections[0].gamma1_k = np.radians([7])[0]
        self.turbine_profiler.compute_stage_profiles()

        stage_prof = self.turbine_profiler[0]
        lam_blade_arr = np.array([17, 19, 22, 24, 27, 29])
        T_wall_arr = np.array([200, 600, 700, 800, 900, 1200]) + 273
        lam_blade_int = interp1d(T_wall_arr, lam_blade_arr, bounds_error=False, fill_value='extrapolate')
        x_hole_rel = [-0.8, -0.5, -0.15, 0.1, 0.35, 0.6]

        self.theta = get_theta(0.5 * stage_prof.D1_in, 0.5 * stage_prof.D1_out, 0.5, 1.12)
        self.T_gas_stag = get_T_gas(self.theta, 650, self.turbine[0].T0_stag)
        self.G_cool0 = 0.018
        self.g_cool0 = get_g_cool(self.theta, 2 * self.G_cool0 / (stage_prof.D1_out - stage_prof.D1_in))

        self.film_blade = FilmBladeCooler(sections=stage_prof.sa_sections,
                                          channel_width=0.001,
                                          wall_thickness=0.001,
                                          D_in=stage_prof.D1_in,
                                          D_out=stage_prof.D1_out,
                                          T_wall_out_av_init=1123,
                                          lam_blade=lambda T: lam_blade_int(T).__float__(),
                                          x_hole_rel=x_hole_rel,
                                          hole_num=[20 for _ in x_hole_rel],
                                          d_hole=[0.5e-3 for _ in x_hole_rel],
                                          phi_hole=[0.9 for _ in x_hole_rel],
                                          mu_hole=[0.86 for _ in x_hole_rel],
                                          T_gas_stag=self.T_gas_stag,
                                          p_gas_stag=stage_prof.p0_stag,
                                          c_p_gas_av=stage_prof.c_p,
                                          lam_gas_in=stage_prof.lam_c0,
                                          lam_gas_out=stage_prof.lam_c1,
                                          work_fluid=type(self.turbine.work_fluid)(),
                                          T_cool0=650,
                                          p_cool_stag0=self.turbine.p_g_stag + 20e3,
                                          g_cool0=self.g_cool0,
                                          cool_fluid=Air())
Ejemplo n.º 5
0
    def setUp(self):
        self.bs = BladeSection(angle1=np.radians([90])[0],
                               angle2=np.radians([21])[0],
                               delta1=np.radians([2])[0],
                               delta2=np.radians([2])[0],
                               b_a=0.07,
                               r1=0.01 / 2,
                               convex='left',
                               pnt_count=30,
                               s2=0.0003)
        self.bs.compute_profile()
        lam_blade_arr = np.array([19, 22, 24, 27])
        T_wall_arr = np.array([600, 700, 800, 900]) + 273
        lam_blade_int = interp1d(T_wall_arr, lam_blade_arr, bounds_error=False, fill_value='extrapolate')
        self.conv_cooler = SectorCooler(section=self.bs,
                                        height=67.6e-3,
                                        T_gas_stag=1223,
                                        G_gas=439,
                                        D_av=0.6476,
                                        wall_thickness=1.8e-3,
                                        T_wall_av=980,
                                        T_cool_fluid0=600,
                                        G_cool=0.144,
                                        lam_blade=lambda T: lam_blade_int(T).__float__(),
                                        cool_fluid=Air(),
                                        work_fluid=KeroseneCombustionProducts(),
                                        node_num=250,
                                        channel_width=0.001
                                        )
        mu_gas, lam_gas, Re_gas, Nu_gas, alpha_gas_av = GasBladeHeatExchange.get_alpha_gas_av(self.conv_cooler.section,
                                                                                              self.conv_cooler.height,
                                                                                              self.conv_cooler.T_gas_stag,
                                                                                              self.conv_cooler.G_gas,
                                                                                              self.conv_cooler.D_av,
                                                                                              self.conv_cooler.work_fluid)
        self.ave_param = DeflectorAverageParamCalculator(self.conv_cooler.section,
                                                         self.conv_cooler.height,
                                                         self.conv_cooler.D_av,
                                                         self.conv_cooler.wall_thickness,
                                                         1023,
                                                         self.conv_cooler.T_cool_fluid0,
                                                         self.conv_cooler.T_gas_stag,
                                                         alpha_gas_av,
                                                         self.conv_cooler.G_cool,
                                                         self.conv_cooler.lam_blade,
                                                         self.conv_cooler.cool_fluid
                                                         )

        self.x_hole1 = [-0.06, -0.04, -0.015, 0, 0.008, 0.015, 0.04]
        self.film1 = FilmCalculator(x_hole=self.x_hole1,
                                    hole_num=[15 for _ in self.x_hole1],
                                    d_hole=[0.001 for _ in self.x_hole1],
                                    phi_hole=[0.9 for _ in self.x_hole1],
                                    mu_hole=[0.85 for _ in self.x_hole1],
                                    T_gas_stag=self.conv_cooler.T_gas_stag,
                                    p_gas_stag=9.5e5,
                                    v_gas=lambda x: 100,
                                    c_p_gas_av=1150,
                                    work_fluid=KeroseneCombustionProducts(),
                                    alpha_gas=lambda x: 4500,
                                    T_cool=lambda x: 650,
                                    G_cool0=0.25,
                                    p_cool_stag0=10e5,
                                    c_p_cool_av=1100,
                                    cool_fluid=Air(),
                                    height=0.03)

        self.x_hole2 = [-0.015, 0.025]
        self.film2 = FilmCalculator(x_hole=self.x_hole2,
                                    hole_num=[15 for _ in self.x_hole2],
                                    d_hole=[0.001 for _ in self.x_hole2],
                                    phi_hole=[0.9 for _ in self.x_hole2],
                                    mu_hole=[0.85 for _ in self.x_hole2],
                                    T_gas_stag=self.conv_cooler.T_gas_stag,
                                    p_gas_stag=9.5e5,
                                    v_gas=lambda x: 100,
                                    c_p_gas_av=1150,
                                    work_fluid=KeroseneCombustionProducts(),
                                    alpha_gas=lambda x: 4500,
                                    T_cool=lambda x: 650,
                                    G_cool0=0.25,
                                    p_cool_stag0=10e5,
                                    c_p_cool_av=1100,
                                    cool_fluid=Air(),
                                    height=0.03)

        self.x_hole_rel = [-0.8, -0.6, -0.2, 0.2, 0.4, 0.7]
        self.film_cooler = FilmSectorCooler(section=self.bs,
                                            height=self.conv_cooler.height,
                                            channel_width=1e-3,
                                            wall_thickness=self.conv_cooler.wall_thickness,
                                            D_av=self.conv_cooler.D_av,
                                            lam_blade=lambda T: lam_blade_int(T).__float__(),
                                            T_wall_av=1000,
                                            x_hole_rel=self.x_hole_rel,
                                            hole_num=[15 for _ in self.x_hole_rel],
                                            d_hole=[1.5e-3 for _ in self.x_hole_rel],
                                            phi_hole=[0.9 for _ in self.x_hole_rel],
                                            mu_hole=[0.85 for _ in self.x_hole_rel],
                                            T_gas_stag=self.conv_cooler.T_gas_stag,
                                            p_gas_stag=9.5e5,
                                            G_gas=self.conv_cooler.G_gas,
                                            c_p_gas_av=1150,
                                            lam_gas_in=0.1,
                                            lam_gas_out=0.2,
                                            work_fluid=KeroseneCombustionProducts(),
                                            T_cool0=self.conv_cooler.T_cool_fluid0,
                                            p_cool_stag0=10e5,
                                            G_cool0=self.conv_cooler.G_cool,
                                            c_p_cool_av=1100,
                                            cool_fluid=Air(),
                                            node_num=250,
                                            g_cool0_s=0.6)
Ejemplo n.º 6
0
    def setUp(self):
        self.comp_turb_2st = Turbine(TurbineType.WORK,
                                     T_g_stag=1400,
                                     p_g_stag=5.5e5,
                                     G_turbine=25,
                                     G_fuel=1,
                                     work_fluid=KeroseneCombustionProducts(),
                                     alpha_air=2.87,
                                     l1_D1_ratio=0.25,
                                     n=15e3,
                                     T_t_stag_cycle=1200,
                                     stage_number=2,
                                     eta_t_stag_cycle=0.91,
                                     k_n=6.8,
                                     eta_m=0.99,
                                     auto_compute_heat_drop=True,
                                     auto_set_rho=True,
                                     precise_heat_drop=False,
                                     H01_init=150e3,
                                     c21_init=250,
                                     alpha11=np.radians([17])[0],
                                     gamma_av=np.radians([4])[0],
                                     gamma_sum=np.radians([10])[0])
        self.comp_turb_2st.geom[0].g_cool = 0.004
        self.comp_turb_2st.geom[1].g_cool = 0.003
        self.comp_turb_2st.compute_geometry()
        self.comp_turb_2st.compute_stages_gas_dynamics()
        self.comp_turb_2st.compute_integrate_turbine_parameters()

        self.turb_profiler = TurbineProfiler(
            turbine=self.comp_turb_2st,
            p_in_stag=lambda r: self.comp_turb_2st[0].p0_stag,
            T_in_stag=lambda r: self.comp_turb_2st[0].T0_stag,
            c_in=lambda r: 100,
            alpha_in=lambda r: np.radians([90])[0],
            section_num=3,
            center=True
        )
        self.turb_profiler[0].profiling_type = ProfilingType.ConstantAngle
        self.turb_profiler[1].profiling_type = ProfilingType.ConstantAngle
        self.turb_profiler.compute_stage_profiles()

        x_hole_rel = [-0.5, -0.25, 0., 0.2, 0.6]
        G_cool0 = 0.2
        g_cool0 = G_cool0 * 2 / (self.turb_profiler[0].D1_out - self.turb_profiler[0].D1_in)

        self.cooler = get_sa_cooler(
            self.turb_profiler[0],
            channel_width=0.001,
            wall_thickness=0.001,
            T_wall_out_av_init=1000,
            lam_blade=lambda T: 24,
            x_hole_rel=x_hole_rel,
            hole_num=[35 for _ in x_hole_rel],
            d_hole=[0.5e-3 for _ in x_hole_rel],
            phi_hole=[0.98 for _ in x_hole_rel],
            mu_hole=[0.95 for _ in x_hole_rel],
            work_fluid=KeroseneCombustionProducts(),
            T_cool0=650,
            p_cool_stag0=0.99 * self.comp_turb_2st[0].p0_stag,
            g_cool0=lambda r: g_cool0,
            cool_fluid=Air(),
            cover_thickness=0,
        )
Ejemplo n.º 7
0
    def setUp(self):
        self.turbine = Turbine(TurbineType.WORK,
                               T_g_stag=1450,
                               p_g_stag=400e3,
                               G_turbine=25,
                               work_fluid=KeroseneCombustionProducts(),
                               G_fuel=1,
                               l1_D1_ratio=0.25,
                               n=15e3,
                               T_t_stag_cycle=1050,
                               stage_number=2,
                               eta_t_stag_cycle=0.91,
                               k_n=6.8,
                               eta_m=0.99,
                               auto_compute_heat_drop=False,
                               precise_heat_drop=False,
                               auto_set_rho=False,
                               rho_list=[0.4, 0.20],
                               H0_list=[235e3, 200e3],
                               alpha11=np.radians([17])[0],
                               gamma_av=np.radians([4])[0],
                               gamma_sum=np.radians([10])[0])
        self.turbine.compute_geometry()
        self.turbine.compute_stages_gas_dynamics()
        self.turbine.compute_integrate_turbine_parameters()

        def get_theta_gas(r_in, r_out, r_max_rel, theta_max):
            r_max = r_max_rel * (r_out - r_in) + r_in
            a = 3 * (r_out - r_in - theta_max *
                     (r_out - r_in)) / ((r_out - r_max)**3 - (r_in - r_max)**3)
            return lambda r: a * (r - r_max)**2 + theta_max

        def get_T_gas(theta_gas, T_c_stag, T_gas_stag_av):
            return lambda r: T_c_stag + theta_gas(r) * (T_gas_stag_av -
                                                        T_c_stag)

        # Внутренний радиус
        r_in = 0.5 * (self.turbine.geom[0].D1 - self.turbine.geom[0].l1)
        # Периферийный радиус
        r_out = 0.5 * (self.turbine.geom[0].D1 + self.turbine.geom[0].l1)
        # Относительное положение мксимума
        r_max_rel = 0.5
        # Максимальная неравномерность
        theta_max = 1.1
        # Температура после компрессора
        T_c_stag = 685
        # Средняя температура газа
        T_gas_stag_av = self.turbine[0].T0_stag

        # Функция неравномерности
        theta_gas = get_theta_gas(r_in, r_out, r_max_rel, theta_max)

        # Функция температуры газа от радиуса
        T_g_stag = get_T_gas(theta_gas, T_c_stag, T_gas_stag_av)

        self.turbine_profiler = TurbineProfiler(
            turbine=self.turbine,
            p_in_stag=lambda r: self.turbine[0].p0_stag,
            T_in_stag=T_g_stag,
            c_in=lambda r: 90,
            alpha_in=lambda r: np.radians([90])[0],
            center=True)
        self.turbine_profiler[0].profiling_type = ProfilingType.ConstantAngle
        self.turbine_profiler[0].gamma1_k_rel_rk = lambda r_rel: 0.5
        self.turbine_profiler[1].profiling_type = ProfilingType.ConstantAngle
        self.turbine_profiler[1].auto_sections_par = False
        self.turbine_profiler[1].rk_sections[0].gamma1_s = np.radians([15])[0]
        self.turbine_profiler[1].rk_sections[0].gamma1_k = np.radians([7])[0]
        self.turbine_profiler.compute_stage_profiles()
Ejemplo n.º 8
0
    def __init__(
            self,
            x_hole: typing.List[float] = None,
            hole_num: typing.List[float] = None,
            d_hole: typing.List[float] = None,
            phi_hole: typing.List[float] = None,
            mu_hole: typing.List[float] = None,
            T_gas_stag=None,
            p_gas_stag=None,
            v_gas: typing.Callable[[float], float] = None,
            c_p_gas_av=None,
            work_fluid: IdealGas = KeroseneCombustionProducts(),
            alpha_gas: typing.Callable[[float], float] = None,
            T_cool: typing.Callable[[float], float] = None,
            G_cool0=None,
            p_cool_stag0=None,
            c_p_cool_av=None,
            cool_fluid: IdealGas = Air(),
            height=None,
            g_cool0_s=0.5,
    ):
        """
        :param x_hole: Координаты рядов отверстий.
        :param hole_num:  Число отверстий в рядах.
        :param d_hole: Диаметры отверстий в рядах.
        :param phi_hole: Коэффициенты скорости в рядах отверстий.
        :param mu_hole: Коэффициенты расхода в рядах отверстий.
        :param T_gas_stag: Температура торможения газа.
        :param p_gas_stag: Давление тороможения газа.
        :param v_gas: Распределение скорости газа по профилю.
        :param c_p_gas_av: Средняя теплоемкость газа
        :param work_fluid: Рабочее тело турбины.
        :param alpha_gas: Распределение коэффициента теплоотдачи со стророны газа.
        :param T_cool: Распределение температуры торможения охлаждающего воздуха вдоль профиля.
        :param G_cool0: Расход охлаждающего воздуха на входе в канал.
        :param p_cool_stag0: Полное давление охлаждающего воздуха на входе в канал.
        :param c_p_cool_av: Средняя теплоемкость охлаждающего воздуха.
        :param cool_fluid: Охлаждающее тело.
        :param height: Высота участка лопатки
        :param g_cool0_s: Относительный расход охлаждающего воздуха на входе в канал спинки.
        """
        self.x_hole = np.array(x_hole)
        self.hole_num = np.array(hole_num)
        self.d_hole = np.array(d_hole)
        self.phi_hole = np.array(phi_hole)
        self.mu_hole = np.array(mu_hole)

        self._modify_hole_data()

        self.T_gas_stag = T_gas_stag
        self.p_gas_stag = p_gas_stag
        self.v_gas = v_gas
        self.c_p_gas_av = c_p_gas_av
        self.work_fluid = work_fluid
        self.alpha_gas = alpha_gas
        self.T_cool = T_cool
        self.p_cool_stag0 = p_cool_stag0
        self.G_cool0 = G_cool0
        self.c_p_cool_av = c_p_cool_av
        self.cool_fluid = cool_fluid
        self.height = height
        self.g_coo0_s = g_cool0_s

        self.k_gas_av = self.work_fluid.k_func(self.c_p_gas_av)
        self.k_cool_av = self.cool_fluid.k_func(self.c_p_cool_av)

        self.hole_step = np.zeros(self.x_hole.shape[0])
        self.s = np.zeros(self.x_hole.shape[0])
        self.T_cool_hole = np.zeros(self.x_hole.shape[0])
        "Температура торможения охлаждающей среды у входа в отверстия"
        self.v_gas_hole = np.zeros(self.x_hole.shape[0])
        "Скорость газа у отверстий"
        self.T_gas_hole = np.zeros(self.x_hole.shape[0])
        "Статическая температура газа у отверстий"
        self.p_gas_hole = np.zeros(self.x_hole.shape[0])
        "Статическое давление газа у отверстий"
        self.rho_gas_hole = np.zeros(self.x_hole.shape[0])
        "Статичекая плотность газа у отверстий"
        self.v_cool_hole_out = np.zeros(self.x_hole.shape[0])
        "Скорость истечения охлаждающей среды из отвестий"
        self.rho_cool_stag_hole = np.zeros(self.x_hole.shape[0])
        "Плотность охлаждающей среды по параметрам торможения на входе в отверстия"
        self.rho_cool_hole_out = np.zeros(self.x_hole.shape[0])
        "Статическая плотность охлаждающей среды на выходе из отверстия"
        self.m = np.zeros(self.x_hole.shape[0])
        "Параметры вдува на отверстиях"
        self.Re_s = np.zeros(self.x_hole.shape[0])
        "Число Рейнольдса по ширине щели на отверстиях"
        self.phi_temp = np.zeros(self.x_hole.shape[0])
        "Температурный фактор на отверстиях"
        self.G_cool_hole = np.zeros(self.x_hole.shape[0])
        "Расход охлаждающей среды в сечении канала перед отверстиями"
        self.dG_cool_hole = np.zeros(self.x_hole.shape[0])
        "Расход охлаждающей среды перед отверстиями"
        self.film_eff_list = []
        "Список функций эффективности пленок от каждого ряда отверстий"
Ejemplo n.º 9
0
    def setUp(self):
        self.precision = 0.00001
        self.comp_turbine_ker_wcool = Turbine(
            TurbineType.WORK,
            T_g_stag=1523,
            p_g_stag=16e5,
            G_turbine=40,
            G_fuel=0.8,
            work_fluid=KeroseneCombustionProducts(),
            l1_D1_ratio=0.25,
            n=13e3,
            T_t_stag_cycle=1000,
            stage_number=3,
            eta_t_stag_cycle=0.90,
            k_n=6.8,
            eta_m=0.99,
            auto_compute_heat_drop=False,
            auto_set_rho=True,
            precise_heat_drop=True,
            precision=self.precision,
            H0_list=[290e3, 290e3, 290e3],
            alpha11=np.radians([17])[0],
            gamma_av=np.radians([4])[0],
            gamma_sum=np.radians([10])[0]
        )
        self.comp_turbine_ker_wcool.compute_geometry()
        self.comp_turbine_ker_wcool.compute_stages_gas_dynamics()
        self.comp_turbine_ker_wcool.compute_integrate_turbine_parameters()

        self.comp_turbine_ngas_wcool = Turbine(
            TurbineType.WORK,
            T_g_stag=1523,
            p_g_stag=16e5,
            G_turbine=40,
            G_fuel=0.8,
            work_fluid=NaturalGasCombustionProducts(),
            l1_D1_ratio=0.25,
            n=13e3,
            T_t_stag_cycle=1000,
            stage_number=3,
            eta_t_stag_cycle=0.90,
            k_n=6.8,
            eta_m=0.99,
            auto_compute_heat_drop=False,
            auto_set_rho=True,
            precise_heat_drop=True,
            precision=self.precision,
            H0_list=[290e3, 290e3, 290e3],
            alpha11=np.radians([17])[0],
            gamma_av=np.radians([4])[0],
            gamma_sum=np.radians([10])[0]
        )
        self.comp_turbine_ngas_wcool.compute_geometry()
        self.comp_turbine_ngas_wcool.compute_stages_gas_dynamics()
        self.comp_turbine_ngas_wcool.compute_integrate_turbine_parameters()

        self.power_turbine_ngas_wcool = Turbine(
            TurbineType.PRESSURE,
            T_g_stag=1523,
            p_g_stag=16e5,
            G_turbine=40,
            G_fuel=0.8,
            work_fluid=NaturalGasCombustionProducts(),
            l1_D1_ratio=0.25,
            n=13e3,
            T_t_stag_cycle=1000,
            stage_number=3,
            eta_t_stag_cycle=0.90,
            k_n=6.8,
            eta_m=0.99,
            auto_compute_heat_drop=False,
            auto_set_rho=True,
            precise_heat_drop=True,
            precision=self.precision,
            H0_list=[290e3, 290e3, 290e3],
            alpha11=np.radians([17])[0],
            gamma_av=np.radians([4])[0],
            gamma_sum=np.radians([10])[0]
        )
        eta_t_res = 1
        eta_t_stag_new = self.power_turbine_ngas_wcool.eta_t_stag_cycle
        self.precision_eta_t = 0.0001
        while eta_t_res >= self.precision_eta_t:
            self.power_turbine_ngas_wcool.eta_t_stag_cycle = eta_t_stag_new
            self.power_turbine_ngas_wcool.compute_geometry()
            self.power_turbine_ngas_wcool.compute_stages_gas_dynamics()
            self.power_turbine_ngas_wcool.compute_integrate_turbine_parameters()
            eta_t_stag_new = self.power_turbine_ngas_wcool.eta_t_stag
            eta_t_stag_old = self.power_turbine_ngas_wcool.eta_t_stag_cycle
            eta_t_res = abs(eta_t_stag_old - eta_t_stag_new) / eta_t_stag_old

        self.comp_turbine_ngas_cool = Turbine(
            TurbineType.WORK,
            T_g_stag=1523,
            p_g_stag=16e5,
            G_turbine=40,
            G_fuel=0.8,
            work_fluid=NaturalGasCombustionProducts(),
            l1_D1_ratio=0.25,
            n=13e3,
            T_t_stag_cycle=1000,
            stage_number=3,
            eta_t_stag_cycle=0.90,
            k_n=6.8,
            eta_m=0.99,
            auto_compute_heat_drop=False,
            auto_set_rho=True,
            precise_heat_drop=True,
            precision=self.precision,
            H0_list=[290e3, 290e3, 290e3],
            alpha11=np.radians([17])[0],
            gamma_av=np.radians([4])[0],
            gamma_sum=np.radians([10])[0]
        )
        self.comp_turbine_ngas_cool.geom[0].g_cool = 0.05
        self.comp_turbine_ngas_cool.geom[1].g_cool = 0.05
        self.comp_turbine_ngas_cool.geom[2].g_cool = 0.01
        self.comp_turbine_ngas_cool.compute_geometry()
        self.comp_turbine_ngas_cool.compute_stages_gas_dynamics()
        self.comp_turbine_ngas_cool.compute_integrate_turbine_parameters()
Ejemplo n.º 10
0
    def setUp(self):
        self.precision = 0.0005
        self.comp_turb_h0_auto = Turbine(TurbineType.WORK,
                                         T_g_stag=1523,
                                         p_g_stag=16e5,
                                         G_turbine=40,
                                         G_fuel=0.8,
                                         work_fluid=KeroseneCombustionProducts(),
                                         l1_D1_ratio=0.25,
                                         n=13e3,
                                         T_t_stag_cycle=1100,
                                         stage_number=2,
                                         eta_t_stag_cycle=0.91,
                                         k_n=6.8,
                                         eta_m=0.99,
                                         auto_compute_heat_drop=True,
                                         auto_set_rho=True,
                                         precise_heat_drop=False,
                                         precision=self.precision,
                                         H01_init=150e3,
                                         c21_init=250,
                                         alpha11=np.radians([17])[0],
                                         gamma_av=np.radians([4])[0],
                                         gamma_sum=np.radians([10])[0])
        self.comp_turb_h0_auto.geom[0].g_cool = 0.03
        self.comp_turb_h0_auto.geom[0].g_lb = 0.00
        self.comp_turb_h0_auto.geom[0].g_lk = 0.00
        self.comp_turb_h0_auto.geom[0].g_ld = 0.00
        self.comp_turb_h0_auto.geom[0].T_cool = 750
        self.comp_turb_h0_auto.geom[1].g_cool = 0.03
        self.comp_turb_h0_auto.compute_geometry()
        self.comp_turb_h0_auto.compute_stages_gas_dynamics()
        self.comp_turb_h0_auto.compute_integrate_turbine_parameters()

        self.comp_turb_h0_hand = Turbine(TurbineType.WORK,
                                         T_g_stag=1523,
                                         p_g_stag=16e5,
                                         G_turbine=40,
                                         G_fuel=0.8,
                                         work_fluid=NaturalGasCombustionProducts(),
                                         l1_D1_ratio=0.12,
                                         n=13e3,
                                         T_t_stag_cycle=1100,
                                         stage_number=2,
                                         eta_t_stag_cycle=0.91,
                                         k_n=6.8,
                                         eta_m=0.99,
                                         auto_compute_heat_drop=False,
                                         auto_set_rho=True,
                                         precise_heat_drop=False,
                                         H0_list=[160e3, 140e3],
                                         alpha11=np.radians([17])[0],
                                         gamma_av=np.radians([4])[0],
                                         gamma_sum=np.radians([10])[0])
        self.comp_turb_h0_hand.compute_geometry()
        self.comp_turb_h0_hand.compute_stages_gas_dynamics()
        self.comp_turb_h0_hand.compute_integrate_turbine_parameters()

        self.comp_turb_rho_hand = Turbine(TurbineType.WORK,
                                          T_g_stag=1400,
                                          p_g_stag=5.5e5,
                                          G_turbine=25,
                                          G_fuel=1,
                                          work_fluid=KeroseneCombustionProducts(),
                                          l1_D1_ratio=0.25,
                                          n=15e3,
                                          T_t_stag_cycle=1200,
                                          stage_number=2,
                                          eta_t_stag_cycle=0.91,
                                          k_n=6.8,
                                          eta_m=0.99,
                                          auto_compute_heat_drop=True,
                                          auto_set_rho=False,
                                          precise_heat_drop=False,
                                          rho_list=[0.45, 0.4],
                                          H01_init=150e3,
                                          c21_init=250,
                                          alpha11=np.radians([17])[0],
                                          gamma_av=np.radians([4])[0],
                                          gamma_sum=np.radians([10])[0])
        self.comp_turb_rho_hand.compute_geometry()
        self.comp_turb_rho_hand.compute_stages_gas_dynamics()
        self.comp_turb_rho_hand.compute_integrate_turbine_parameters()

        self.power_turb_h0_auto = Turbine(TurbineType.PRESSURE,
                                          T_g_stag=1400,
                                          p_g_stag=5.5e5,
                                          G_turbine=25,
                                          G_fuel=1,
                                          work_fluid=NaturalGasCombustionProducts(),
                                          l1_D1_ratio=0.25,
                                          n=15e3,
                                          T_t_stag_cycle=1200,
                                          stage_number=3,
                                          eta_t_stag_cycle=0.91,
                                          k_n=6.8,
                                          eta_m=0.99,
                                          auto_compute_heat_drop=True,
                                          auto_set_rho=True,
                                          precise_heat_drop=False,
                                          H01_init=150e3,
                                          c21_init=250,
                                          alpha11=np.radians([17])[0],
                                          gamma_in=np.radians([0])[0],
                                          gamma_out=np.radians([10])[0])
        self.power_turb_h0_auto.compute_geometry()
        self.power_turb_h0_auto.compute_stages_gas_dynamics()
        self.power_turb_h0_auto.compute_integrate_turbine_parameters()
Ejemplo n.º 11
0
    def setUp(self):
        self.precision = 0.001
        self.heat_drop_stage = StageGasDynamics(
            T0_stag=1400,
            p0_stag=10e5,
            T0_stag_ad_t=1400,
            G_stage_in=30,
            G_turbine=29.5,
            G_fuel=0.7,
            work_fluid=KeroseneCombustionProducts(),
            rho=0.3,
            phi=0.97,
            psi=0.97,
            l1=0.06,
            l2=0.068,
            D1=0.3,
            D2=0.3,
            delta_r_rk=0.01,
            n=11e3,
            epsilon=1,
            g_lb=0,
            g_lk=0,
            g_ld=0,
            g_cool=0,
            precision=self.precision,
            H0=120e3
        )
        self.heat_drop_stage.compute()

        self.work_stage = StageGasDynamics(
            T0_stag=1400,
            p0_stag=10e5,
            T0_stag_ad_t=1400,
            G_stage_in=30,
            G_turbine=29.5,
            G_fuel=0.7,
            work_fluid=KeroseneCombustionProducts(),
            rho=0.3,
            phi=0.97,
            psi=0.97,
            l1=0.06,
            l2=0.068,
            D1=0.3,
            D2=0.3,
            delta_r_rk=0.01,
            n=11e3,
            epsilon=1,
            g_lb=0,
            g_lk=0,
            g_ld=0,
            g_cool=0,
            precision=self.precision,
            L_t=50e3,
            eta_t0=0.9
        )
        self.work_stage.compute()

        self.press_stage = StageGasDynamics(
            T0_stag=1400,
            p0_stag=10e5,
            T0_stag_ad_t=1400,
            G_stage_in=30,
            G_turbine=29.5,
            G_fuel=0.7,
            work_fluid=KeroseneCombustionProducts(),
            rho=0.3,
            phi=0.97,
            psi=0.97,
            l1=0.06,
            l2=0.068,
            D1=0.3,
            D2=0.3,
            delta_r_rk=0.01,
            n=11e3,
            epsilon=1,
            g_lb=0,
            g_lk=0,
            g_ld=0,
            g_cool=0,
            precision=self.precision,
            p2_stag=7.9e5
        )
        self.press_stage.compute()