rcognita.systems.SysInvertedPendulum

class rcognita.systems.SysInvertedPendulum(*args, **kwargs)

System class: mathematical pendulum

__init__(*args, **kwargs)
Parameters
  • sys_type (: string) –

    Type of system by description:

    diff_eqn : differential equation \(\mathcal D state = f(state, action, disturb)\)
    discr_fnc : difference equation \(state^+ = f(state, action, disturb)\)
    discr_prob : by probability distribution \(X^+ \sim P_X(state^+| state, action, disturb)\)

  • where

    \(state\) : state
    \(action\) : input
    \(disturb\) : disturbance

  • time variable time is commonly used by ODE solvers (The) –

  • you shouldn't have it explicitly referenced in the definition (and) –

  • your system is non-autonomous. (unless) –

  • the latter case (For) –

  • however

  • already have the input and disturbance at your disposal. (you) –

  • of the system are contained in pars attribute. (Parameters) –

  • dim_state (: integer) – System dimensions

  • dim_input (: integer) – System dimensions

  • dim_output (: integer) – System dimensions

  • dim_disturb (: integer) – System dimensions

  • pars (: list) – List of fixed parameters of the system

  • action_bounds (: array of shape [dim_input, 2]) – Box control constraints. First element in each row is the lower bound, the second - the upper bound. If empty, control is unconstrained (default)

  • is_dynamic_controller (: 0 or 1) – If 1, the controller (a.k.a. agent) is considered as a part of the full state vector

  • is_disturb (: 0 or 1) – If 0, no disturbance is fed into the system

  • pars_disturb (: list) – Parameters of the disturbance model

Methods

__init__(*args, **kwargs)

param sys_type

Type of system by description:

compute_closed_loop_rhs(time, state_full)

Right-hand side of the closed-loop system description.

compute_dynamics(time, state, action[, disturb])

Description of the system internal dynamics.

out(state[, time, action])

System output.

receive_action(action)

Receive exogeneous control action to be fed into the system.

reset()