SecondOrder
IconSecondOrder
A second-order filter with gain k
, a bandwidth of w
rad/s and relative damping d
. The transfer function is given by Y(s)/U(s) =
k*w^2
─────────────────
s² + 2d*w*s + w^2
Critical damping corresponds to d=1
, which yields the fastest step response without overshoot, d < 1
results in an underdamped filter while d > 1
results in an overdamped filter. d = 1/√2
corresponds to a Butterworth filter of order 2 (maximally flat frequency response).
This component extends from SISO
Usage
SecondOrder(k=1.0, w=1.0, d=1.0)
Parameters:
Name | Description | Units | Default value |
---|---|---|---|
k | Gain | – | 1 |
w | Bandwidth (angular frequency) | – | 1 |
d | Relative damping | – | 1 |
Connectors
u
- This connector represents a real signal as an input to a component (RealInput
)y
- This connector represents a real signal as an output from a component (RealOutput
)
Variables
Name | Description | Units |
---|---|---|
x | State of SecondOrder filter | – |
xd | Derivative state of SecondOrder filter | – |
Behavior
\[ \begin{align} \frac{\mathrm{d} x\left( t \right)}{\mathrm{d}t} &= \mathtt{xd}\left( t \right) \\ \frac{\mathrm{d} \mathtt{xd}\left( t \right)}{\mathrm{d}t} &= \left( - 2 d \mathtt{xd}\left( t \right) + \left( - x\left( t \right) + k u\left( t \right) \right) w \right) w \\ y\left( t \right) &= x\left( t \right) \end{align} \]
Source
# A second-order filter with gain `k`, a bandwidth of `w` rad/s and relative damping `d`. The transfer function
# is given by `Y(s)/U(s) = `
#
# ```
# k*w^2
# ─────────────────
# s² + 2d*w*s + w^2
# ```
#
# Critical damping corresponds to `d=1`, which yields the fastest step response without overshoot, `d < 1` results in an underdamped filter while `d > 1` results in an overdamped filter.
# `d = 1/√2` corresponds to a Butterworth filter of order 2 (maximally flat frequency response).
component SecondOrder
extends SISO
# State of SecondOrder filter
variable x::Real
# Derivative state of SecondOrder filter
variable xd::Real
# Gain
parameter k::Real = 1.0
# Bandwidth (angular frequency)
parameter w::Real = 1.0
# Relative damping
parameter d::Real = 1.0
relations
der(x) = xd
der(xd) = w*(w*(k*u-x)-2*d*xd)
y = x
metadata {"JuliaSim": {"icons": {"default": "jsml://BlockComponents/SecondOrder.svg"}}}
end
Flattened Source
# A second-order filter with gain `k`, a bandwidth of `w` rad/s and relative damping `d`. The transfer function # is given by `Y(s)/U(s) = ` # # ``` # k*w^2 # ───────────────── # s² + 2d*w*s + w^2 # ``` # # Critical damping corresponds to `d=1`, which yields the fastest step response without overshoot, `d < 1` results in an underdamped filter while `d > 1` results in an overdamped filter. # `d = 1/√2` corresponds to a Butterworth filter of order 2 (maximally flat frequency response). component SecondOrder u = RealInput() [{ "JuliaSim": { "placement": {"icon": {"iconName": "input", "x1": -50, "y1": 450, "x2": 50, "y2": 550}} } }] y = RealOutput() [{ "JuliaSim": { "placement": {"icon": {"iconName": "output", "x1": 950, "y1": 450, "x2": 1050, "y2": 550}} } }] # State of SecondOrder filter variable x::Real # Derivative state of SecondOrder filter variable xd::Real # Gain parameter k::Real = 1.0 # Bandwidth (angular frequency) parameter w::Real = 1.0 # Relative damping parameter d::Real = 1.0 relations der(x) = xd der(xd) = w*(w*(k*u-x)-2*d*xd) y = x metadata {"JuliaSim": {"icons": {"default": "jsml://BlockComponents/SecondOrder.svg"}}} end
Test Cases
Related
- Examples
- Experiments
- Analyses