SlewRateLimiterTest
IconSlewRateLimiterTest
Usage
SlewRateLimiterTest()
Behavior
\[ \begin{align} \mathtt{in.y}\left( t \right) &= \mathtt{limiter.u}\left( t \right) \\ \frac{\mathrm{d} \mathtt{limiter.y}\left( t \right)}{\mathrm{d}t} &= max\left( min\left( \frac{\mathtt{limiter.u}\left( t \right) - \mathtt{limiter.y}\left( t \right)}{\mathtt{limiter.td}}, \mathtt{limiter.rising} \right), \mathtt{limiter.falling} \right) \\ \mathtt{in.y}\left( t \right) &= ifelse\left( \mathtt{in.start\_time} < t, \mathtt{in.offset} + \mathtt{in.amplitude} \sin\left( \mathtt{in.phase} + 6.2832 \mathtt{in.frequency} \left( - \mathtt{in.start\_time} + t \right) \right), \mathtt{in.offset} \right) \end{align} \]
Source
component SlewRateLimiterTest
limiter = SlewRateLimiter(rising=1, falling=-1, td=0.001)
in = Sine(amplitude=2, frequency=2)
relations
connect(in.y, limiter.u)
metadata {
"JuliaSim": {
"tests": {
"case1": {
"stop": 1,
"expect": {"signals": ["limiter.y"], "final": {"limiter.y": -0.040642769}}
}
}
}
}
end
Flattened Source
component SlewRateLimiterTest limiter = SlewRateLimiter(rising=1, falling=-1, td=0.001) in = Sine(amplitude=2, frequency=2) relations connect(in.y, limiter.u) metadata { "JuliaSim": { "tests": { "case1": { "stop": 1, "expect": {"signals": ["limiter.y"], "final": {"limiter.y": -0.040642769}} } } } } end