Exemple #1
0
 def test_plant(self):
     pendulum = PendulumPlant()
     self.assertEqual(pendulum.get_input_port(), pendulum.get_input_port(0))
     self.assertEqual(pendulum.get_state_output_port(),
                      pendulum.get_output_port(0))
     context = pendulum.CreateDefaultContext()
     self.assertIsInstance(pendulum.get_state(context=context),
                           PendulumState)
     self.assertIsInstance(pendulum.get_mutable_state(context=context),
                           PendulumState)
     self.assertIsInstance(pendulum.get_parameters(context=context),
                           PendulumParams)
     self.assertIsInstance(pendulum.get_mutable_parameters(context=context),
                           PendulumParams)
Exemple #2
0
    def test_simulation(self):
        # Basic constant-torque pendulum simulation.
        pendulum = PendulumPlant()

        # Create the simulator.
        simulator = Simulator(pendulum)
        context = simulator.get_mutable_context()

        # Set an input torque.
        input = PendulumInput()
        input.set_tau(1.)
        pendulum.get_input_port().FixValue(context, input)

        # Set the initial state.
        state = context.get_mutable_continuous_state_vector()
        state.set_theta(1.)
        state.set_thetadot(0.)

        # Simulate (and make sure the state actually changes).
        initial_state = state.CopyToVector()
        simulator.AdvanceTo(1.0)
        self.assertFalse((state.CopyToVector() == initial_state).any())
Exemple #3
0
 def test_plant(self):
     pendulum = PendulumPlant()
     self.assertEqual(pendulum.get_input_port(), pendulum.get_input_port(0))
     self.assertEqual(pendulum.get_state_output_port(),
                      pendulum.get_output_port(0))