예제 #1
0
    def test_convert_force(self):
        force = 1.0
        
        expected_force = 4.44822

        converted_force = convert_jsbsim_force(force)

        self.assertAlmostEqual(expected_force, converted_force, 3)
예제 #2
0
    def thrust(self):
        """Return the engine thrust in newtons"""
        thrust = self.fdmexec.GetPropulsion()\
                             .GetEngine(0)\
                             .GetThruster()\
                             .GetThrust()

        return convert_jsbsim_force(thrust)
예제 #3
0
    def test_engine(self):
        huginn_data_path = configuration.get_data_path()

        fdm_builder = FDMBuilder(huginn_data_path)
        fdm_builder.aircraft = "Rascal"
        fdmexec = fdm_builder.create_fdm()

        engine = Engine(fdmexec)

        self.assertAlmostEqual(engine.thrust, convert_jsbsim_force(fdmexec.GetPropulsion().GetEngine(0).GetThruster().GetThrust()))
        self.assertAlmostEqual(engine.throttle, fdmexec.GetFCS().GetThrottleCmd(0))
예제 #4
0
    def test_get_forces(self):
        huginn_data_path = configuration.get_data_path()

        fdm_builder = FDMBuilder(huginn_data_path)
        fdmexec = fdm_builder.create_fdm()

        forces = Forces(fdmexec)

        self.assertAlmostEqual(
            forces.x_body,
            convert_jsbsim_force(fdmexec.GetAerodynamics().GetForces(1)), 3)

        self.assertAlmostEqual(
            forces.y_body,
            convert_jsbsim_force(fdmexec.GetAerodynamics().GetForces(2)), 3)

        self.assertAlmostEqual(
            forces.z_body,
            convert_jsbsim_force(fdmexec.GetAerodynamics().GetForces(3)), 3)

        self.assertAlmostEqual(
            forces.x_wind,
            convert_jsbsim_force(fdmexec.GetAerodynamics().GetvFw(1)), 3)

        self.assertAlmostEqual(
            forces.y_wind,
            convert_jsbsim_force(fdmexec.GetAerodynamics().GetvFw(2)), 3)

        self.assertAlmostEqual(
            forces.z_wind,
            convert_jsbsim_force(fdmexec.GetAerodynamics().GetvFw(3)), 3)

        self.assertAlmostEqual(
            forces.x_total,
            convert_jsbsim_force(fdmexec.GetAccelerations().GetForces(1)), 3)

        self.assertAlmostEqual(
            forces.y_total,
            convert_jsbsim_force(fdmexec.GetAccelerations().GetForces(2)), 3)

        self.assertAlmostEqual(
            forces.z_total,
            convert_jsbsim_force(fdmexec.GetAccelerations().GetForces(3)), 3)
예제 #5
0
    def z_total(self):
        """Return the total force along the z axis in the body frame. The
        value is in Newtons"""
        force = self.fdmexec.GetAccelerations().GetForces(3)

        return convert_jsbsim_force(force)
예제 #6
0
    def z_wind(self):
        """Return the force along the z axis in the wind frame. The value
        is in Newtons"""
        force = self.fdmexec.GetAerodynamics().GetvFw(3)

        return convert_jsbsim_force(force)
예제 #7
0
    def y_body(self):
        """Return the force along the y axis in the body frame. The value
        is in Newtons"""
        force = self.fdmexec.GetAerodynamics().GetForces(2)

        return convert_jsbsim_force(force)