示例#1
0
    def setup(self):
        
        
        indeps = self.add_subsystem('indeps', IndepVarComp(), promotes=['*'])
        indeps.add_output('Diameter_stage_1',4.6)
        indeps.add_output('Diameter_stage_2',4.6)
        indeps.add_output('Mass_flow_rate_stage_1',219.)
        indeps.add_output('Mass_flow_rate_stage_2',219.)
        indeps.add_output('Thrust_stage_1',1000.)
        indeps.add_output('Thrust_stage_2',1150.)
        indeps.add_output('Pc_stage_1',100.)
        indeps.add_output('Pc_stage_2',100.)
        indeps.add_output('Pe_stage_1',1.)
        indeps.add_output('Pe_stage_2',1.)
        indeps.add_output('OF_stage_1',2.7)
        indeps.add_output('OF_stage_2',2.7)
        indeps.add_output('N_eng_stage_1',7.)
        indeps.add_output('N_eng_stage_2',1.)
        indeps.add_output('Prop_mass_stage_1',350000.)
        indeps.add_output('Prop_mass_stage_2',75000.)
        indeps.add_output('Pdyn_max_dim',40.)
        indeps.add_output('thetacmd_i',2.72)
        indeps.add_output('thetacmd_f',20.)
        indeps.add_output('ksi',0.293)
        indeps.add_output('Pitch_over_duration',5.)
        indeps.add_output('Exit_nozzle_area_stage_1',0.5)
        indeps.add_output('Exit_nozzle_area_stage_2',0.5)
        indeps.add_output('Delta_vertical_phase',10.)
        indeps.add_output('Delta_theta_pitch_over',1.)
        indeps.add_output('is_fallout',1.)        
        
        indeps.add_output('command_stage_1_exo',np.array([1.,1.]))

        
        cycle = self.add_subsystem('cycle', Group(), promotes=['*'])
        
        

        Propu = cycle.add_subsystem('Propu', Propulsion.Propulsion_Comp(),promotes_inputs=['Pc_stage_1','Pe_stage_1',
                                    'OF_stage_1','Pc_stage_2','Pe_stage_2','OF_stage_2'],
                                    promotes_outputs=['Isp_stage_1','Isp_stage_2'])
           
        Struct_1 = cycle.add_subsystem('Struct_1', Dry_Mass_stage_1.Dry_Mass_stage_1_Comp(),
                                       promotes_inputs=['Diameter_stage_1','OF_stage_1',
                                    'N_eng_stage_1','Diameter_stage_2','Isp_stage_1','Prop_mass_stage_1',
                                    'Thrust_stage_1','Pdyn_max_dim'],
                                    promotes_outputs=['Dry_mass_stage_1'])
        
        Struct_2 = cycle.add_subsystem('Struct_2', Dry_Mass_stage_2.Dry_Mass_stage_1_Comp(),
                                       promotes_inputs=['Prop_mass_stage_2'],promotes_outputs=['Dry_mass_stage_2'])

        Aero = cycle.add_subsystem('Aero', Aerodynamics.Aerodynamics_Comp(),promotes_outputs=['Table_CX_complete_ascent',
                                   'Mach_table','AoA_table','CX_fallout_stage_1','CZ_fallout_stage_1',])

        Traj = cycle.add_subsystem('Traj', Trajectory.Trajectory_comp(),
                                   promotes_inputs=['Diameter_stage_1','Diameter_stage_2','Mass_flow_rate_stage_1',
                                                    'Mass_flow_rate_stage_2','N_eng_stage_1','N_eng_stage_2',
                                                    'OF_stage_1','OF_stage_2','Isp_stage_1','Isp_stage_2',
                                                    'Prop_mass_stage_1','Prop_mass_stage_2','Dry_mass_stage_1',
                                                    'Dry_mass_stage_2','Pitch_over_duration','thetacmd_i',
                                                    'thetacmd_f','ksi','Exit_nozzle_area_stage_1','Exit_nozzle_area_stage_2',
                                                    'Delta_vertical_phase','Delta_theta_pitch_over','Table_CX_complete_ascent',
                                                    'Mach_table','AoA_table','command_stage_1_exo','CX_fallout_stage_1','CZ_fallout_stage_1','is_fallout'],
                                   promotes_outputs=['T_ascent','alt_ascent','flux_ascent','r_ascent',
                                                     'V_ascent','theta_ascent','alpha_ascent','nx_ascent','alpha_cont',
                                                     'Nb_pt_ascent','m_ascent','CX_ascent','GLOW',
                                                     'lat_ascent','gamma_ascent','longi_ascent','thrust_ascent',
                                                     'mass_flow_rate_ascent','Mach_ascent','pdyn_ascent',
                                                     'rho_ascent','distance_ascent','state_separation_stage_1',
                                                     'max_pdyn_load_ascent_stage_1',\
                                                     'T_fallout','alt_fallout','flux_fallout','r_fallout',
                                                     'V_fallout','theta_fallout','alpha_fallout','nx_fallout',
                                                     'Nb_pt_fallout','m_fallout','CX_fallout',
                                                     'lat_fallout','gamma_fallout','longi_fallout','thrust_fallout',
                                                     'mass_flow_rate_fallout','Mach_fallout','pdyn_fallout',
                                                     'rho_fallout','distance_fallout',])