Skip to content

Commit 474bfb8

Browse files
refactor: replace ODESystem with System
1 parent 150771d commit 474bfb8

File tree

18 files changed

+77
-77
lines changed

18 files changed

+77
-77
lines changed

src/Blocks/analysis_points.jl

+3-3
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ using ModelingToolkitStandardLibrary.Blocks
8181
t = ModelingToolkit.get_iv(P)
8282
eqs = [connect(P.output, C.input)
8383
connect(C.output, :plant_input, P.input)]
84-
sys = ODESystem(eqs, t, systems = [P, C], name = :feedback_system)
84+
sys = System(eqs, t, systems = [P, C], name = :feedback_system)
8585
8686
matrices_S, _ = get_sensitivity(sys, :plant_input) # Compute the matrices of a state-space representation of the (input) sensitivity function.
8787
matrices_T, _ = get_comp_sensitivity(sys, :plant_input)
@@ -131,8 +131,8 @@ function Base.show(io::IO, ::MIME"text/plain", ap::AnalysisPoint)
131131
end
132132
end
133133

134-
_isinput(x) = x isa ODESystem && endswith(string(nameof(x)), "input")
135-
_isoutput(x) = x isa ODESystem && endswith(string(nameof(x)), "output")
134+
_isinput(x) = x isa System && endswith(string(nameof(x)), "input")
135+
_isoutput(x) = x isa System && endswith(string(nameof(x)), "output")
136136
function ap_warning(n)
137137
@warn "The $(n == 1 ? "first" : "third") argument to a connection with an analysis point was a $(n == 1 ? "RealInput" : "RealOutput"). This is supported in order to handle inverse models, but may not be what you intended. If you are building a forward model (causal), you may want to swap the first and the third arguments to connect. Learn more about the causality of analysis points in the docstring for AnalysisPoint. Silence this message by connect(out, :name, in; verbose = false)"
138138
end

src/Blocks/continuous.jl

+5-5
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ See also [`LimPID`](@ref)
312312
else
313313
push!(eqs, connect(Dzero.output, addPID.input3))
314314
end
315-
ODESystem(eqs, t, [], pars; name = name, systems = sys)
315+
System(eqs, t, [], pars; name = name, systems = sys)
316316
end
317317

318318
"""
@@ -372,7 +372,7 @@ The simplified expression above is given without the anti-windup protection.
372372
connect(addTrack.output, int.input),
373373
connect(int.output, addPI.input2)
374374
]
375-
ODESystem(eqs, t, [], pars; name = name, systems = sys)
375+
System(eqs, t, [], pars; name = name, systems = sys)
376376
end
377377

378378
"""
@@ -514,7 +514,7 @@ where the transfer function for the derivative includes additional filtering, se
514514
push!(eqs, connect(Dzero.output, addPID.input2))
515515
end
516516

517-
ODESystem(eqs, t, [], pars; name = name, systems = sys)
517+
System(eqs, t, [], pars; name = name, systems = sys)
518518
end
519519

520520
"""
@@ -579,7 +579,7 @@ linearized around the operating point `x₀, u₀`, we have `y0, u0 = h(x₀, u
579579
sum(D[j, k] * (input.u[k] - u0[k]) for k in 1:nu) + y0[j]
580580
for j in 1:ny]...
581581
]
582-
compose(ODESystem(eqs, t, vcat(x...), [], name = name), [input, output])
582+
compose(System(eqs, t, vcat(x...), [], name = name), [input, output])
583583
end
584584

585585
StateSpace(A, B, C, D = nothing; kwargs...) = StateSpace(; A, B, C, D, kwargs...)
@@ -664,5 +664,5 @@ See also [`StateSpace`](@ref) which handles MIMO systems, as well as [ControlSys
664664
end
665665
push!(eqs, input.u ~ u)
666666
push!(eqs, output.u ~ y)
667-
compose(ODESystem(eqs, t, sts, pars; name = name), input, output)
667+
compose(System(eqs, t, sts, pars; name = name), input, output)
668668
end

src/Blocks/nonlinear.jl

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Limit the range of a signal.
2727
eqs = [
2828
y ~ _clamp(u, y_min, y_max)
2929
]
30-
extend(ODESystem(eqs, t, [], pars; name = name), siso)
30+
extend(System(eqs, t, [], pars; name = name), siso)
3131
end
3232

3333
"""
@@ -118,5 +118,5 @@ Initial value of state `Y` can be set with `int.y`
118118
y ~ y_start
119119
]
120120

121-
return extend(ODESystem(eqs, t, [], pars; name, initialization_eqs), siso)
121+
return extend(System(eqs, t, [], pars; name, initialization_eqs), siso)
122122
end

src/Blocks/sources.jl

+12-12
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ Generate sine signal.
151151
output.u ~ equation
152152
]
153153

154-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
154+
compose(System(eqs, t, [], pars; name = name), [output])
155155
end
156156

157157
"""
@@ -192,7 +192,7 @@ Generate cosine signal.
192192
output.u ~ equation
193193
]
194194

195-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
195+
compose(System(eqs, t, [], pars; name = name), [output])
196196
end
197197

198198
"""
@@ -216,7 +216,7 @@ Generate current time signal.
216216
output.u ~ offset + ifelse(t < start_time, zero(t), t - start_time)
217217
]
218218

219-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
219+
compose(System(eqs, t, [], pars; name = name), [output])
220220
end
221221

222222
"""
@@ -258,7 +258,7 @@ Generate ramp signal.
258258
output.u ~ equation
259259
]
260260

261-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
261+
compose(System(eqs, t, [], pars; name = name), [output])
262262
end
263263

264264
"""
@@ -300,7 +300,7 @@ Generate smooth square signal.
300300
output.u ~ equation
301301
]
302302

303-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
303+
compose(System(eqs, t, [], pars; name = name), [output])
304304
end
305305

306306
"""
@@ -344,7 +344,7 @@ Generate step signal.
344344
output.u ~ equation
345345
]
346346

347-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
347+
compose(System(eqs, t, [], pars; name = name), [output])
348348
end
349349

350350
"""
@@ -392,7 +392,7 @@ Exponentially damped sine signal.
392392
output.u ~ equation
393393
]
394394

395-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
395+
compose(System(eqs, t, [], pars; name = name), [output])
396396
end
397397

398398
"""
@@ -435,7 +435,7 @@ Generate smooth triangular signal for frequencies less than or equal to 25 Hz
435435
output.u ~ equation
436436
]
437437

438-
compose(ODESystem(eqs, t, [], pars; name = name), [output])
438+
compose(System(eqs, t, [], pars; name = name), [output])
439439
end
440440

441441
# TODO:
@@ -672,7 +672,7 @@ data input component.
672672
eqs = [
673673
output.u ~ get_sampled_data(t, p)
674674
]
675-
return ODESystem(eqs, t, vars, [pars; p]; name, systems)
675+
return System(eqs, t, vars, [pars; p]; name, systems)
676676
end
677677

678678
"""
@@ -698,7 +698,7 @@ data input component.
698698
eqs = [
699699
output.u ~ get_sampled_data(t, buffer)
700700
]
701-
return ODESystem(eqs, t, vars, pars; name, systems)
701+
return System(eqs, t, vars, pars; name, systems)
702702
end
703703

704704
SampledData(x::SampledDataType.Option; kwargs...) = SampledData(Val(x); kwargs...)
@@ -765,7 +765,7 @@ function Interpolation(itp; name)
765765

766766
eqs = [output.u ~ interpolator(input.u)]
767767

768-
ODESystem(
768+
System(
769769
eqs, t, [], [interpolator]; name, systems = [input, output])
770770
end
771771

@@ -860,7 +860,7 @@ function ParametrizedInterpolation(
860860

861861
eqs = [output.u ~ interpolator(input.u)]
862862

863-
ODESystem(eqs, ModelingToolkit.t_nounits, [],
863+
System(eqs, ModelingToolkit.t_nounits, [],
864864
[data, ts, interpolation_type, interpolator];
865865
parameter_dependencies = [
866866
interpolator ~ build_interpolation(data, ts, args)

src/Blocks/utils.jl

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
]
1818
u = collect(u)
1919
end
20-
ODESystem(Equation[], t, [u;], []; name = name, guesses = [(u .=> guess);])
20+
System(Equation[], t, [u;], []; name = name, guesses = [(u .=> guess);])
2121
end
2222
@doc """
2323
RealInput(;name, guess)
@@ -41,7 +41,7 @@ Connector with one input signal of type Real.
4141
input = true,
4242
description = "Inner variable in RealInputArray $name"
4343
]
44-
ODESystem(Equation[], t, [u], []; name = name, guesses = [u => guess])
44+
System(Equation[], t, [u], []; name = name, guesses = [u => guess])
4545
end
4646
@doc """
4747
RealInputArray(;name, nin, guess)
@@ -75,7 +75,7 @@ Connector with an array of input signals of type Real.
7575
]
7676
u = collect(u)
7777
end
78-
ODESystem(Equation[], t, [u;], []; name = name, guesses = [(u .=> guess);])
78+
System(Equation[], t, [u;], []; name = name, guesses = [(u .=> guess);])
7979
end
8080
@doc """
8181
RealOutput(;name, guess)
@@ -99,7 +99,7 @@ Connector with one output signal of type Real.
9999
output = true,
100100
description = "Inner variable in RealOutputArray $name"
101101
]
102-
ODESystem(Equation[], t, [u], []; name = name, guesses = [u => guess])
102+
System(Equation[], t, [u], []; name = name, guesses = [u => guess])
103103
end
104104
@doc """
105105
RealOutputArray(;name, nout, guess)
@@ -165,5 +165,5 @@ Base class for a multiple input multiple output (MIMO) continuous system block.
165165
[u[i] ~ input.u[i] for i in 1:nin]...,
166166
[y[i] ~ output.u[i] for i in 1:nout]...
167167
]
168-
return ODESystem(eqs, t, vcat(u..., y...), []; name = name, systems = [input, output])
168+
return System(eqs, t, vcat(u..., y...), []; name = name, systems = [input, output])
169169
end

src/Electrical/Digital/components.jl

+6-6
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Takes two bits as input, and outputs the sum and the carry
3333
y2.val ~ _and(x1.val, x2.val)
3434
sum ~ y1.val
3535
carry ~ y2.val]
36-
ODESystem(eqs, t, [sum, carry], [], systems = [x1, x2, y1, y2], name = name)
36+
System(eqs, t, [sum, carry], [], systems = [x1, x2, y1, y2], name = name)
3737
end
3838

3939
"""
@@ -71,7 +71,7 @@ Takes three bits as input, and outputs the sum and the carry
7171
y2.val ~ _or(_and(x3.val, _xor(x1.val, x2.val)), _and(x1.val, x2.val))
7272
sum ~ y1.val
7373
carry ~ y2.val]
74-
ODESystem(eqs, t, [sum, carry], [], systems = [x1, x2, x3, y1, y2], name = name)
74+
System(eqs, t, [sum, carry], [], systems = [x1, x2, x3, y1, y2], name = name)
7575
end
7676

7777
# Multiplexers
@@ -126,7 +126,7 @@ of `i`.
126126

127127
eqs = Equation[y.val ~ _or(nodes...)]
128128

129-
ODESystem(eqs, t, [], [], systems = [d..., s..., y], name = name)
129+
System(eqs, t, [], [], systems = [d..., s..., y], name = name)
130130
end
131131

132132
# This selects one of the `N` output ports (`y₀` to `yₙ₋₁`)
@@ -178,7 +178,7 @@ representation of `i`.
178178
push!(eqs, y[i].val ~ _and(statelist..., d.val))
179179
end
180180

181-
ODESystem(eqs, t, [], [], systems = [d, s..., y...], name = name)
181+
System(eqs, t, [], [], systems = [d, s..., y...], name = name)
182182
end
183183

184184
# Encoder-Decoder
@@ -236,7 +236,7 @@ If the `i`th input is `1`, then the output corresponds to the binary representat
236236
push!(eqs, y[i].val ~ _or(nodes[i]...))
237237
end
238238

239-
ODESystem(eqs, t, [], [], systems = [d..., y...], name = name)
239+
System(eqs, t, [], [], systems = [d..., y...], name = name)
240240
end
241241

242242
# Decodes `n` inputs to `N` outputs, where `N = 2^n`
@@ -281,5 +281,5 @@ the select lines correspond to the binary representation of `1`.
281281
push!(eqs, y[i].val ~ _and(nodes[i]...))
282282
end
283283

284-
ODESystem(eqs, t, [], [], systems = [d..., y...], name = name)
284+
System(eqs, t, [], [], systems = [d..., y...], name = name)
285285
end

src/Electrical/Digital/gates.jl

+7-7
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function Not(; name)
1818

1919
eqs = [x.i ~ y.i
2020
y.val ~ _not(x.val)]
21-
ODESystem(eqs, t, [], [], systems = [x, y], name = name)
21+
System(eqs, t, [], [], systems = [x, y], name = name)
2222
end
2323

2424
"""
@@ -44,7 +44,7 @@ function And(; name, N = 2)
4444
vals = [k.val for k in x]
4545
eqs = [y.val ~ _and(vals...)
4646
y.i ~ sum(k -> k.i, x)]
47-
ODESystem(eqs, t, [], [], systems = [x..., y], name = name)
47+
System(eqs, t, [], [], systems = [x..., y], name = name)
4848
end
4949

5050
"""
@@ -70,7 +70,7 @@ function Nand(; name, N = 2)
7070
vlist = [k.val for k in x]
7171
eqs = [y.val ~ _not(_and(vlist...))
7272
y.i ~ sum(k -> k.i, x)]
73-
ODESystem(eqs, t, [], [], systems = [x..., y], name = name)
73+
System(eqs, t, [], [], systems = [x..., y], name = name)
7474
end
7575

7676
"""
@@ -96,7 +96,7 @@ function Or(; name, N = 2)
9696
vals = [k.val for k in x]
9797
eqs = [y.val ~ _or(vals...)
9898
y.i ~ sum(k -> k.i, x)]
99-
ODESystem(eqs, t, [], [], systems = [x..., y], name = name)
99+
System(eqs, t, [], [], systems = [x..., y], name = name)
100100
end
101101

102102
"""
@@ -122,7 +122,7 @@ function Nor(; name, N = 2)
122122
vlist = [k.val for k in x]
123123
eqs = [y.val ~ _not(_or(vlist...))
124124
y.i ~ sum(k -> k.i, x)]
125-
ODESystem(eqs, t, [], [], systems = [x..., y], name = name)
125+
System(eqs, t, [], [], systems = [x..., y], name = name)
126126
end
127127

128128
"""
@@ -148,7 +148,7 @@ function Xor(; name, N = 2)
148148
vals = [k.val for k in x]
149149
eqs = [y.val ~ _xor(vals...)
150150
y.i ~ sum(k -> k.i, x)]
151-
ODESystem(eqs, t, [], [], systems = [x..., y], name = name)
151+
System(eqs, t, [], [], systems = [x..., y], name = name)
152152
end
153153

154154
"""
@@ -174,5 +174,5 @@ function Xnor(; name, N = 2)
174174
vlist = [k.val for k in x]
175175
eqs = [y.val ~ _not(_xor(vlist...))
176176
y.i ~ sum(k -> k.i, x)]
177-
ODESystem(eqs, t, [], [], systems = [x..., y], name = name)
177+
System(eqs, t, [], [], systems = [x..., y], name = name)
178178
end

src/Electrical/Digital/sources.jl

+4-4
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function PulseDiff(; name, Val = 1, dt = 0.1)
2121
eqs = [D(val) ~ Val
2222
val ~ d.val]
2323

24-
ODESystem(eqs, t, [val], [], systems = [d], defaults = Dict(Val => 0), name = name)
24+
System(eqs, t, [val], [], systems = [d], defaults = Dict(Val => 0), name = name)
2525
end
2626

2727
"""
@@ -42,7 +42,7 @@ function Set(; name)
4242
eqs = [
4343
d.val ~ 1
4444
]
45-
ODESystem(eqs, t, [], [], systems = [d], name = name)
45+
System(eqs, t, [], [], systems = [d], name = name)
4646
end
4747

4848
"""
@@ -63,7 +63,7 @@ function Reset(; name)
6363
eqs = [
6464
d.val ~ 0
6565
]
66-
ODESystem(eqs, t, [], [], systems = [d], name = name)
66+
System(eqs, t, [], [], systems = [d], name = name)
6767
end
6868

6969
"""
@@ -84,5 +84,5 @@ function Pulse(; name, duty_cycle = 0.5, T = 1.0)
8484
eqs = [
8585
d.val ~ IfElse.ifelse(t % T > duty_cycle * T, 1, 0)
8686
]
87-
ODESystem(eqs, t, [], [], systems = [d], name = name)
87+
System(eqs, t, [], [], systems = [d], name = name)
8888
end

src/Electrical/utils.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ end
9191
val ~ IfElse.ifelse((0.0 <= v) & (v <= 0.8) | (2.0 <= v) & (v <= 5.0),
9292
IfElse.ifelse(v > 2.0, 1, 0), X)
9393
]
94-
ODESystem(Equation[], t, [val, v, i], [], guesses = Dict(val => 0, i => 0),
94+
System(Equation[], t, [val, v, i], [], guesses = Dict(val => 0, i => 0),
9595
name = name)
9696
end
9797
@doc """

0 commit comments

Comments
 (0)