double_pendulum.controller.friction_compensation
Submodules
double_pendulum.controller.friction_compensation.friction_compensation_controller
- class double_pendulum.controller.friction_compensation.friction_compensation_controller.FrictionCompensationController(mass=[1.0, 1.0], length=[0.5, 0.5], com=[0.5, 0.5], damping=[0.1, 0.1], coulomb_fric=[0.0, 0.0], gravity=9.81, inertia=[None, None], torque_limit=[0.0, 1.0], model_pars=None)
Bases:
AbstractController
Friction compensation controller.
- Parameters:
- massarray_like, optional
shape=(2,), dtype=float, default=[1.0, 1.0] masses of the double pendulum, [m1, m2], units=[kg]
- lengtharray_like, optional
shape=(2,), dtype=float, default=[0.5, 0.5] link lengths of the double pendulum, [l1, l2], units=[m]
- comarray_like, optional
shape=(2,), dtype=float, default=[0.5, 0.5] center of mass lengths of the double pendulum links [r1, r2], units=[m]
- dampingarray_like, optional
shape=(2,), dtype=float, default=[0.5, 0.5] damping coefficients of the double pendulum actuators [b1, b2], units=[kg*m/s]
- gravityfloat, optional
default=9.81 gravity acceleration (pointing downwards), units=[m/s²]
- coulomb_fricarray_like, optional
shape=(2,), dtype=float, default=[0.0, 0.0] coulomb friction coefficients for the double pendulum actuators [cf1, cf2], units=[Nm]
- inertiaarray_like, optional
shape=(2,), dtype=float, default=[None, None] inertia of the double pendulum links [I1, I2], units=[kg*m²] if entry is None defaults to point mass m*l² inertia for the entry
- torque_limitarray_like, optional
shape=(2,), dtype=float, default=[0.0, 1.0] torque limit of the motors [tl1, tl2], units=[Nm, Nm]
- model_parsmodel_parameters object, optional
object of the model_parameters class, default=None Can be used to set all model parameters above If provided, the model_pars parameters overwrite the other provided parameters
- get_control_output_(x, t=None)
The function to compute the control input for the double pendulum’s actuator(s). Compensates the actuator friction.
- Parameters:
- xarray_like, shape=(4,), dtype=float,
state of the double pendulum, order=[angle1, angle2, velocity1, velocity2], units=[rad, rad, rad/s, rad/s]
- tfloat, optional
time, unit=[s] (Default value=None)
- Returns:
- array_like
shape=(2,), dtype=float actuation input/motor torque, order=[u1, u2], units=[Nm]
- save_(save_dir)
Save controller parameters
- Parameters:
- save_dirstring or path object
directory where the parameters will be saved