double_pendulum.controller.lqr.roa

Submodules

double_pendulum.controller.lqr.roa.check

class double_pendulum.controller.lqr.roa.check.lqr_check_ctg(p, c, tf=5, dt=0.01)

Bases: object

sim_callback(x0)

Callback that is passed to the probabilitic RoA estimation class

double_pendulum.controller.lqr.roa.check.lqr_check_ctg_verification(dpar, cpar, x0, grid, idx1, idx2)
class double_pendulum.controller.lqr.roa.check.lqr_check_epsilon(p, c, tf=5, dt=0.01, goal=array([3.14159265, 0., 0., 0.]), eps_p=0.01, eps_v=0.05)

Bases: object

sim_callback(x0)
double_pendulum.controller.lqr.roa.check.lqr_check_epsilon_verification(dpar, cpar, x0, grid, idx1, idx2, eps_p=0.01, eps_v=0.05)

double_pendulum.controller.lqr.roa.coopt_interface

double_pendulum.controller.lqr.roa.ellipsoid

double_pendulum.controller.lqr.roa.ellipsoid.directSphere(d, r_i=0, r_o=1)

Implementation: Krauth, Werner. Statistical Mechanics: Algorithms and Computations. Oxford Master Series in Physics 13. Oxford: Oxford University Press, 2006. page 42

double_pendulum.controller.lqr.roa.ellipsoid.getEllipseParamsFromQuad(s0Idx, s1Idx, rho, S)

Returns ellipses in the plane defined by the states matching the indices s0Idx and s1Idx for funnel plotting.

double_pendulum.controller.lqr.roa.ellipsoid.getEllipsePatch(x0, x1, s0Idx, s1Idx, rho, S)

just return the patches object. I.e. for more involved plots… x0 and x1 -> centerpoint

double_pendulum.controller.lqr.roa.ellipsoid.getEllipsePatches(x0, x1, s0Idx, s1Idx, rhoHist, S)
double_pendulum.controller.lqr.roa.ellipsoid.plotEllipse(x0, x1, s0Idx, s1Idx, rho, S, save_to=None, show=True)
double_pendulum.controller.lqr.roa.ellipsoid.quadForm(M, x)

Helper function to compute quadratic forms such as x^TMx

double_pendulum.controller.lqr.roa.ellipsoid.sampleFromEllipsoid(S, rho, rInner=0, rOuter=1)
double_pendulum.controller.lqr.roa.ellipsoid.volEllipsoid(rho, M)

Calculate the Volume of a Hyperellipsoid Volume of the Hyperllipsoid according to https://math.stackexchange.com/questions/332391/volume-of-hyperellipsoid/332434 Intuition: https://textbooks.math.gatech.edu/ila/determinants-volumes.html Volume of n-Ball https://en.wikipedia.org/wiki/Volume_of_an_n-ball

double_pendulum.controller.lqr.roa.prob_roa

double_pendulum.controller.lqr.roa.prob_roa.check_x0(simulator, controller, x0, dt, t_final, integrator='runge_kutta', goal=array([3.14159265, 0., 0., 0.]), eps=array([1., 1., 10., 10.]))
double_pendulum.controller.lqr.roa.prob_roa.compute_roa_prob(simulator, controller, dt, t_final, integrator='runge_kutta', goal=array([3.14159265, 0., 0., 0.]), eps=array([1., 1., 10., 10.]), n_iter=1000, n_check_sims=5, xbar_max=array([1., 1., 1., 1.]))
class double_pendulum.controller.lqr.roa.prob_roa.roa_prob_loss(simulator, controller, dt, t_final, integrator, bounds, goal=array([3.14159265, 0., 0., 0.]), eps=array([1., 1., 10., 10.]), n_iter=1000, n_check_sims=5)

Bases: object

rescale_pars(pars)
unscale_pars(pars)

double_pendulum.controller.lqr.roa.roa_estimation

double_pendulum.controller.lqr.roa.roa_paropt