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)
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())
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))