コード例 #1
0
ファイル: network_tests.py プロジェクト: FranziPl/tespy
    def setup_network_individual_offdesign(self):
        """
        Set up network for individual offdesign tests.
        """
        self.nw = network(['H2O'], T_unit='C', p_unit='bar', v_unit='m3 / s')

        so = basics.source('source')
        sp = nodes.splitter('splitter', num_out=2)
        self.pump1 = turbomachinery.pump('pump 1')
        self.sc1 = heat_exchangers.solar_collector('collector field 1')
        v1 = piping.valve('valve1')
        self.pump2 = turbomachinery.pump('pump 2')
        self.sc2 = heat_exchangers.solar_collector('collector field 2')
        v2 = piping.valve('valve2')
        me = nodes.merge('merge', num_in=2)
        si = basics.sink('sink')

        self.pump1.set_attr(eta_s=0.8,
                            design=['eta_s'],
                            offdesign=['eta_s_char'])
        self.pump2.set_attr(eta_s=0.8,
                            design=['eta_s'],
                            offdesign=['eta_s_char'])
        self.sc1.set_attr(pr=0.95,
                          lkf_lin=3.33,
                          lkf_quad=0.011,
                          A=1252,
                          E=700,
                          Tamb=20,
                          eta_opt=0.92,
                          design=['pr'],
                          offdesign=['zeta'])
        self.sc2.set_attr(pr=0.95,
                          lkf_lin=3.5,
                          lkf_quad=0.011,
                          A=700,
                          E=800,
                          Tamb=20,
                          eta_opt=0.92,
                          design=['pr'],
                          offdesign=['zeta'])

        fl = {'H2O': 1}
        inlet = connection(so, 'out1', sp, 'in1', T=50, p=3, fluid=fl)
        outlet = connection(me, 'out1', si, 'in1', p=3)

        self.sp_p1 = connection(sp, 'out1', self.pump1, 'in1')
        self.p1_sc1 = connection(self.pump1, 'out1', self.sc1, 'in1')
        self.sc1_v1 = connection(self.sc1, 'out1', v1, 'in1', p=3.1, T=90)
        v1_me = connection(v1, 'out1', me, 'in1')

        self.sp_p2 = connection(sp, 'out2', self.pump2, 'in1')
        self.p2_sc2 = connection(self.pump2, 'out1', self.sc2, 'in1')
        self.sc2_v2 = connection(self.sc2, 'out1', v2, 'in1', p=3.1, m=0.1)
        v2_me = connection(v2, 'out1', me, 'in2')

        self.nw.add_conns(inlet, outlet, self.sp_p1, self.p1_sc1, self.sc1_v1,
                          v1_me, self.sp_p2, self.p2_sc2, self.sc2_v2, v2_me)
コード例 #2
0
ファイル: heat_exchanger_tests.py プロジェクト: cboysen/tespy
    def test_solar_collector(self):
        """
        Test component properties of solar collector.
        """
        instance = solar_collector('solar collector')
        self.setup_heat_exchanger_simple_network(instance)
        fl = {'Ar': 0, 'H2O': 1}
        self.c1.set_attr(fluid=fl, p=10, T=30)
        self.c2.set_attr(T=70)

        # test grouped parameter settings with missing parameters
        instance.hydro_group.is_set = True
        instance.energy_group.is_set = True
        self.nw.solve('design', init_only=True)
        msg = ('Hydro group must no be set, if one parameter is missing!')
        eq_(instance.hydro_group.is_set, False, msg)
        msg = ('Energy group must no be set, if one parameter is missing!')
        eq_(instance.energy_group.is_set, False, msg)

        # test solar collector params as system variables
        instance.set_attr(E=1e3,
                          lkf_lin=1.0,
                          lkf_quad=0.005,
                          A='var',
                          eta_opt=0.9,
                          Q=1e5,
                          Tamb=20,
                          pr=0.99)
        self.nw.solve('design')
        # heat loss must be identical to Q - E * A (internal heat loss
        # calculation)
        T_diff = (self.c2.T.val + self.c1.T.val) / 2 - instance.Tamb.val
        Q_loss = round(
            instance.A.val *
            (instance.E.val *
             (1 - instance.eta_opt.val) + T_diff * instance.lkf_lin.val +
             T_diff**2 * instance.lkf_quad.val), 0)
        msg = ('Value for heat loss of solar collector must be ' +
               str(Q_loss) + ', is ' + str(round(instance.Q_loss.val, 0)) +
               '.')
        eq_(Q_loss, round(instance.Q_loss.val, 0), msg)

        # test all parameters of the energy group: E
        instance.set_attr(A=instance.A.val, E='var')
        self.nw.solve('design')
        eq_(Q_loss, round(instance.Q_loss.val, 0), msg)

        # test all parameters of the energy group: eta_opt
        instance.set_attr(E=instance.E.val, eta_opt='var')
        self.nw.solve('design')
        eq_(Q_loss, round(instance.Q_loss.val, 0), msg)

        # test all parameters of the energy group: lkf_lin
        instance.set_attr(eta_opt=instance.eta_opt.val, lkf_lin='var')
        self.nw.solve('design')
        eq_(Q_loss, round(instance.Q_loss.val, 0), msg)

        # test all parameters of the energy group: lkf_quad
        instance.set_attr(lkf_lin=instance.lkf_lin.val, lkf_quad='var')
        self.nw.solve('design')
        eq_(Q_loss, round(instance.Q_loss.val, 0), msg)

        # test all parameters of the energy group: Tamb
        instance.set_attr(lkf_lin=instance.lkf_lin.val, lkf_quad='var')
        self.nw.solve('design')
        eq_(Q_loss, round(instance.Q_loss.val, 0), msg)