cpsim.models.linear package

Submodules

cpsim.models.linear.F16 module

class cpsim.models.linear.F16.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.F16.F16(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (4,)

x[0]: velocity V[ft/sec] x[1]: angle of attack [rad] x[2]: pitch angle [rad] x[3]: pitch rate [rad/sec]

Control Input: (1,)

u[0]: elevator deflection [deg]

Output: (1,)

y[0]: pitch angle * 57.3 Output Feedback

Controller: PID

cpsim.models.linear.aircraft_pitch module

class cpsim.models.linear.aircraft_pitch.AircraftPitch(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (3,)

x[0]: Angle of attack x[1]: Pitch rate x[2]: Pitch angle

Control Input: (1,)

u[0]: the elevator deflection angle

Output: (1,)

y[0]: the pitch angle of the aircraft Output Feedback

Controller: PID

class cpsim.models.linear.aircraft_pitch.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]

cpsim.models.linear.boeing747 module

class cpsim.models.linear.boeing747.Boeing(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (5,)

x[0]: Yaw angle x[1]: Side-slip angle x[2]: Yaw rate x[3]: roll rate x[4]: roll angle

Control Input: (1,)

u[0]: Rudder

Output: (2,)

y[0]: Yaw angle Output Feedback

Controller: PID

class cpsim.models.linear.boeing747.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]

cpsim.models.linear.heat module

class cpsim.models.linear.heat.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.heat.Heat(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (N,)

x[i]: temperature on the i’th field

Control Input: (1,)

heat source to heat the a point of the rod located at 1/3 of the length

Output: (1,)

record the temperature at 2/3 of the length Output Feedback

Controller: PID

cpsim.models.linear.lane_keeping module

class cpsim.models.linear.lane_keeping.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.lane_keeping.LaneKeeping(name, dt, max_index, noise=None)[source]

Bases: Simulator

cpsim.models.linear.motor_speed module

class cpsim.models.linear.motor_speed.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.motor_speed.MotorSpeed(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (2,)

x[0]: the rotational speed of the shaft x[1]: electric current

Control Input: (1,)

u[0]: voltage source

Output: (1,)

y[0]: the rotational speed of the shaft Output Feedback

Controller: PID

cpsim.models.linear.platoon module

class cpsim.models.linear.platoon.Controller(dt, control_limit=None)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.platoon.Platoon(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (7,)

x[0]: e12 relative distance error with car 1 and 2 x[1]: e23 relative distance error with car 2 and 3 x[2]: e34 relative distance error with car 3 and 4 x[3]: velocity of car 1 x[4]: velocity of car 2 x[5]: velocity of car 3 x[6]: velocity of car 4

Control Input: (4,)

u[0]: acceleration of car 1 u[1]: acceleration of car 2 u[2]: acceleration of car 3 u[3]: acceleration of car 4 State Feedback

Controller: PID

cpsim.models.linear.quadrotor module

class cpsim.models.linear.quadrotor.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.quadrotor.Quadrotor(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (12,)

x[0], x[1], x[2]: Roll, Pitch, Yaw x[9], x[10], x[11]: relative position x[11]: altitude

Control Input: (4,)

u[0]: vertical thrust u[1], u[2], u[3]: one for each of the angular motions

Output: (6,)

y[5]: the altitude of the quadrotor Output Feedback

Controller: PID

cpsim.models.linear.quadruple_tank module

class cpsim.models.linear.quadruple_tank.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.quadruple_tank.QuadrupleTank(name, dt, max_index, noise=None)[source]

Bases: Simulator

States: (4,)

x[i-1]: hi - hi_0 i=1,2,3,4 hi: water level of the i-th tank

Control Input: (2,)

u[i-1]: vi - vi_0 i=1,2 vi: input voltages to the i-th pumps

Output: (2,)

y[i]: kc*x[i] i=0,1 y[i]: voltages from (i+1)-th level measurement devices Output Feedback

Controller: PID

cpsim.models.linear.rlc_circuit module

class cpsim.models.linear.rlc_circuit.Controller(dt)[source]

Bases: object

clear()[source]
set_control_limit(control_lo, control_up)[source]
update(ref: ndarray, feedback_value: ndarray, current_time) ndarray[source]
class cpsim.models.linear.rlc_circuit.RlcCircuit(name, dt, max_index, noise=None)[source]

Bases: Simulator

Module contents