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. | |
| TransferFunction (MatrixX< symbolic::RationalFunction > H, double time_step=0.0) | |
| Constructs a transfer function from the symbolic form. | |
| TransferFunction (symbolic::RationalFunction H, double time_step=0.0) | |
| Convenience overload for single-input, single-output (SISO) systems. | |
| ~TransferFunction ()=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. | |
| double | time_step () const |
| Returns the time step. | |
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. | |
| 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. | |
| static symbolic::RationalFunction | z () |
| Returns a symbolic::RationalFunction s which can be used to build a discrete-time transfer function symbolically. | |
| 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. | |
|
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.