# LinearSystem_3_2_3

class wpimath.system.LinearSystem_3_2_3(A: numpy.ndarray[numpy.float64[3, 3]], B: numpy.ndarray[numpy.float64[3, 2]], C: numpy.ndarray[numpy.float64[3, 3]], D: numpy.ndarray[numpy.float64[3, 2]])

Bases: `pybind11_object`

A plant defined using state-space notation.

A plant is a mathematical model of a system’s dynamics.

For more on the underlying math, read https://file.tavsys.net/control/controls-engineering-in-frc.pdf.

@tparam States Number of states. @tparam Inputs Number of inputs. @tparam Outputs Number of outputs.

Constructs a discrete plant with the given continuous system coefficients.

Parameters:
• A – System matrix.

• B – Input matrix.

• C – Output matrix.

• D – Feedthrough matrix. @throws std::domain_error if any matrix element isn’t finite.

A(*args, **kwargs)

1. A(self: wpimath._controls._controls.system.LinearSystem_3_2_3) -> numpy.ndarray[numpy.float64[3, 3]]

Returns the system matrix A.

1. A(self: wpimath._controls._controls.system.LinearSystem_3_2_3, i: int, j: int) -> float

Returns an element of the system matrix A.

Parameters:
• i – Row of A.

• j – Column of A.

B(*args, **kwargs)

1. B(self: wpimath._controls._controls.system.LinearSystem_3_2_3) -> numpy.ndarray[numpy.float64[3, 2]]

Returns the input matrix B.

1. B(self: wpimath._controls._controls.system.LinearSystem_3_2_3, i: int, j: int) -> float

Returns an element of the input matrix B.

Parameters:
• i – Row of B.

• j – Column of B.

C(*args, **kwargs)

1. C(self: wpimath._controls._controls.system.LinearSystem_3_2_3) -> numpy.ndarray[numpy.float64[3, 3]]

Returns the output matrix C.

1. C(self: wpimath._controls._controls.system.LinearSystem_3_2_3, i: int, j: int) -> float

Returns an element of the output matrix C.

Parameters:
• i – Row of C.

• j – Column of C.

D(*args, **kwargs)

1. D(self: wpimath._controls._controls.system.LinearSystem_3_2_3) -> numpy.ndarray[numpy.float64[3, 2]]

Returns the feedthrough matrix D.

1. D(self: wpimath._controls._controls.system.LinearSystem_3_2_3, i: int, j: int) -> float

Returns an element of the feedthrough matrix D.

Parameters:
• i – Row of D.

• j – Column of D.

calculateX(x: numpy.ndarray[numpy.float64[3, 1]], clampedU: numpy.ndarray[numpy.float64[2, 1]], dt: wpimath.units.seconds) numpy.ndarray[numpy.float64[3, 1]]

Computes the new x given the old x and the control input.

This is used by state observers directly to run updates based on state estimate.

Parameters:
• x – The current state.

• clampedU – The control input.

• dt – Timestep for model update.

calculateY(x: numpy.ndarray[numpy.float64[3, 1]], clampedU: numpy.ndarray[numpy.float64[2, 1]]) numpy.ndarray[numpy.float64[3, 1]]

Computes the new y given the control input.

This is used by state observers directly to run updates based on state estimate.

Parameters:
• x – The current state.

• clampedU – The control input.