Represents a linear-time-invariant (LTI) system in transfer function form, e.g.
complex rational functions corresponding to the Laplace transform or z-transform of the impulse response (https://en.wikipedia.org/wiki/Transfer_function).
For example, to create the transfer function H(s) = 1/(s + 1), you can write:
To create the transfer function H(z) = 1/(z - 0.5), you can write:
Note that TransferFunction is not a LeafSystem. To use it in the Systems framework, you must convert it to state-space form, represented by LinearSystem.
#include <drake/systems/primitives/transfer_function.h>
Public Member Functions | |
TransferFunction () | |
Constructs a zero-input, zero-output (continuous-time) transfer function. More... | |
TransferFunction (MatrixX< symbolic::RationalFunction > H, double time_step=0.0) | |
Constructs a transfer function from the symbolic form. More... | |
TransferFunction (symbolic::RationalFunction H, double time_step=0.0) | |
Convenience overload for single-input, single-output (SISO) systems. More... | |
~TransferFunction ()=default | |
TODO(russt): Construct a TransferFunction from a LinearSystem once we have more symbolic support for complex numbers (#20159). More... | |
const MatrixX< symbolic::RationalFunction > & | H () const |
Returns the transfer function matrix. More... | |
double | time_step () const |
Returns the time step. More... | |
Does not allow copy, move, or assignment | |
TransferFunction (const TransferFunction &)=delete | |
TransferFunction & | operator= (const TransferFunction &)=delete |
TransferFunction (TransferFunction &&)=delete | |
TransferFunction & | operator= (TransferFunction &&)=delete |
Static Public Member Functions | |
static symbolic::RationalFunction | s () |
Returns a symbolic::RationalFunction s which can be used to build a continuous-time transfer function symbolically. More... | |
static symbolic::Variable | s_var () |
Returns the singleton symbolic::Variable denoting the complex frequency (σ+jω) used in the Laplace transform for continuous-time transfer functions. More... | |
static symbolic::RationalFunction | z () |
Returns a symbolic::RationalFunction s which can be used to build a discrete-time transfer function symbolically. More... | |
static symbolic::Variable | z_var () |
Returns the singleton symbolic::Variable denoting the complex frequency (σ+jω) used in the Z transform for discrete-time transfer functions. More... | |
|
delete |
|
delete |
TransferFunction | ( | ) |
Constructs a zero-input, zero-output (continuous-time) transfer function.
|
explicit |
|
explicit |
Convenience overload for single-input, single-output (SISO) systems.
|
default |
TODO(russt): Construct a TransferFunction from a LinearSystem once we have more symbolic support for complex numbers (#20159).
const MatrixX<symbolic::RationalFunction>& H | ( | ) | const |
Returns the transfer function matrix.
|
delete |
|
delete |
|
static |
Returns a symbolic::RationalFunction s
which can be used to build a continuous-time transfer function symbolically.
|
static |
Returns the singleton symbolic::Variable denoting the complex frequency (σ+jω) used in the Laplace transform for continuous-time transfer functions.
double time_step | ( | ) | const |
Returns the time step.
|
static |
Returns a symbolic::RationalFunction s
which can be used to build a discrete-time transfer function symbolically.
|
static |
Returns the singleton symbolic::Variable denoting the complex frequency (σ+jω) used in the Z transform for discrete-time transfer functions.