Skip to content

Commit 9640a8f

Browse files
Merge pull request #417 from SciML/baggepinnen-patch-1
Replace custom clamp function with Base.clamp
2 parents 0e75c63 + eb51bde commit 9640a8f

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

src/Blocks/nonlinear.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
_clamp(u, u_min, u_max) = max(min(u, u_max), u_min)
21
_dead_zone(u, u_min, u_max) = ifelse(u > u_max, u - u_max, ifelse(u < u_min, u - u_min, 0))
32

43
"""
@@ -25,7 +24,7 @@ Limit the range of a signal.
2524
description="Minimum allowed output of Limiter $name"
2625
]
2726
eqs = [
28-
y ~ _clamp(u, y_min, y_max)
27+
y ~ clamp(u, y_min, y_max)
2928
]
3029
extend(System(eqs, t, [], pars; name = name), siso)
3130
end
@@ -111,7 +110,7 @@ Initial value of state `Y` can be set with `int.y`
111110
@unpack y, u = siso
112111

113112
eqs = [
114-
D(y) ~ max(min((u - y) / Td, rising), falling)
113+
D(y) ~ clamp((u - y) / Td, falling, rising)
115114
]
116115

117116
initialization_eqs = [

test/Blocks/nonlinear.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using ModelingToolkit, OrdinaryDiffEq
22
using ModelingToolkitStandardLibrary.Blocks
33
using ModelingToolkit: t_nounits as t
4-
using ModelingToolkitStandardLibrary.Blocks: _clamp, _dead_zone
4+
using ModelingToolkitStandardLibrary.Blocks: _dead_zone
55
using OrdinaryDiffEq: ReturnCode.Success
66

77
@testset "Limiter" begin
@@ -44,12 +44,12 @@ using OrdinaryDiffEq: ReturnCode.Success
4444
sol = solve(prob, Rodas4())
4545
@test SciMLBase.successful_retcode(sol)
4646
@test all(abs.(sol[lim.output.u]) .<= 0.5)
47-
@test all(isapprox.(sol[lim.output.u], _clamp.(sol[source.output.u], y_min, y_max),
47+
@test all(isapprox.(sol[lim.output.u], clamp.(sol[source.output.u], y_min, y_max),
4848
atol = 1e-2))
4949

5050
# Plots.plot(sol; vars=[source.output.u, lim.output.u])
5151
# Plots.scatter(sol[source.output.u], sol[lim.output.u])
52-
# Plots.scatter!(sol[source.output.u], _clamp.(sol[source.output.u], y_min, y_max))
52+
# Plots.scatter!(sol[source.output.u], clamp.(sol[source.output.u], y_min, y_max))
5353
end
5454
end
5555

0 commit comments

Comments
 (0)