Skip to content

Commit 4ec8af3

Browse files
Merge pull request #271 from AayushSabharwal/as/mtk-v9
refactor: update for compatibility with MTKv9
2 parents 2da69d3 + 27c1a1d commit 4ec8af3

37 files changed

+71
-124
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ DataInterpolations = "4"
1919
DiffEqBase = "6.103"
2020
IfElse = "0.1"
2121
LinearAlgebra = "1.10"
22-
ModelingToolkit = "8.69"
22+
ModelingToolkit = "9"
2323
OrdinaryDiffEq = "6.33"
2424
SafeTestsets = "0.1"
2525
Symbolics = "5.2"

docs/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ ControlSystemsBase = "1.1"
1313
DifferentialEquations = "7.6"
1414
Documenter = "1"
1515
IfElse = "0.1"
16-
ModelingToolkit = "8.67"
16+
ModelingToolkit = "9"
1717
OrdinaryDiffEq = "6.31"
1818
Plots = "1.36"

docs/src/connectors/connections.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,9 @@ As can be seen, this will give a 1 equation model matching our energy dissipatio
9090

9191
```@example connections
9292
using ModelingToolkitStandardLibrary.Electrical, ModelingToolkit, DifferentialEquations
93+
using ModelingToolkit: t_nounits as t
9394
using Plots
9495
95-
@parameters t
96-
9796
@named resistor = Resistor(R = 1)
9897
@named capacitor = Capacitor(C = 1)
9998
@named ground = Ground()

docs/src/tutorials/custom_component.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ First, we need to make some imports.
88

99
```@example components
1010
using ModelingToolkit
11+
using ModelingToolkit: t_nounits as t
1112
using ModelingToolkitStandardLibrary.Electrical
1213
using ModelingToolkitStandardLibrary.Electrical: OnePort
1314
using OrdinaryDiffEq
@@ -35,8 +36,6 @@ end NonlinearResistor;
3536
this can almost be directly translated to the syntax of `ModelingToolkit`.
3637

3738
```@example components
38-
@parameters t
39-
4039
function NonlinearResistor(; name, Ga, Gb, Ve)
4140
@named oneport = OnePort()
4241
@unpack v, i = oneport

docs/src/tutorials/dc_motor_pi.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@ First, the needed packages are imported and the parameters of the model defined.
1414

1515
```@example dc_motor_pi
1616
using ModelingToolkit
17+
using ModelingToolkit: t_nounits as t
1718
using ModelingToolkitStandardLibrary.Electrical
1819
using ModelingToolkitStandardLibrary.Mechanical.Rotational
1920
using ModelingToolkitStandardLibrary.Blocks
2021
using OrdinaryDiffEq
2122
using Plots
2223
23-
@parameters t
24-
2524
R = 0.5 # [Ohm] armature resistance
2625
L = 4.5e-3 # [H] armature inductance
2726
k = 0.5 # [N.m/A] motor constant

docs/src/tutorials/input_component.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,11 @@ The `ModelingToolkitStandardLibrary.Blocks.TimeVaryingFunction` component is eas
1414

1515
```julia
1616
using ModelingToolkit
17+
using ModelingToolkit: t_nounits as t, D_nounits as D
1718
using ModelingToolkitStandardLibrary.Blocks
1819
using DataInterpolations
1920
using OrdinaryDiffEq
2021

21-
@parameters t
22-
D = Differential(t)
23-
2422
function System(f; name)
2523
src = TimeVaryingFunction(f)
2624

docs/src/tutorials/rc_circuit.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ rc_eqs = [connect(constant.output, source.V)
2929
@named rc_model = ODESystem(rc_eqs, t,
3030
systems = [resistor, capacitor, constant, source, ground])
3131
sys = structural_simplify(rc_model)
32-
prob = ODAEProblem(sys, Pair[], (0, 10.0))
32+
prob = ODEProblem(sys, Pair[], (0, 10.0))
3333
sol = solve(prob, Tsit5())
3434
plot(sol, idxs = [capacitor.v, resistor.i],
3535
title = "RC Circuit Demonstration",

docs/src/tutorials/thermal_model.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ from dividing the total initial energy in the system by the sum of the heat capa
88

99
```@example
1010
using ModelingToolkitStandardLibrary.Thermal, ModelingToolkit, OrdinaryDiffEq, Plots
11-
12-
@parameters t
11+
using ModelingToolkit: t_nounits as t
1312
1413
C1 = 15
1514
C2 = 15

src/Blocks/Blocks.jl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ module Blocks
55
using ModelingToolkit, Symbolics
66
import IfElse: ifelse
77
import ..@symcheck
8-
using ModelingToolkit: getdefault
9-
10-
@parameters t
11-
D = Differential(t)
8+
using ModelingToolkit: getdefault, t_nounits as t, D_nounits as D
129

1310
export RealInput, RealOutput, SISO
1411
include("utils.jl")

src/Blocks/continuous.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,7 @@ See also [`StateSpace`](@ref) which handles MIMO systems, as well as [ControlSys
620620

621621
x = collect(x)
622622
x_scaled = collect(x_scaled)
623+
bb = collect(bb)
623624

624625
sts = [x; x_scaled; y; u]
625626

src/Blocks/sources.jl

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ function Base.show(io::IO, m::MIME"text/plain", p::Parameter)
521521
end
522522

523523
get_sample_time(memory::Parameter) = memory.ref
524-
Symbolics.@register_symbolic get_sample_time(memory)
524+
Symbolics.@register_symbolic get_sample_time(memory::Parameter)
525525

526526
Base.convert(::Type{T}, x::Parameter{T}) where {T <: Real} = x.ref
527527
function Base.convert(::Type{<:Parameter{T}}, x::Number) where {T <: Real}
@@ -603,8 +603,9 @@ end
603603
function get_sampled_data(t, buffer)
604604
get_sampled_data(t, buffer.data, buffer.ref, buffer.circular_buffer)
605605
end
606-
Symbolics.@register_symbolic get_sampled_data(t, buffer)
607-
Symbolics.@register_symbolic get_sampled_data(t, buffer, dt, circular_buffer) false
606+
Symbolics.@register_symbolic Parameter(data::Vector, ref, circular_buffer::Bool)
607+
Symbolics.@register_symbolic get_sampled_data(t, buffer::Parameter)
608+
Symbolics.@register_symbolic get_sampled_data(t, buffer::Vector, dt, circular_buffer) false
608609

609610
function Symbolics.derivative(::typeof(get_sampled_data), args::NTuple{2, Any}, ::Val{1})
610611
t = @inbounds args[1]
@@ -655,21 +656,23 @@ data input component.
655656
buffer,
656657
sample_time,
657658
circular_buffer = true)
659+
T = eltype(buffer)
658660
pars = @parameters begin
659-
buffer = buffer #::Vector{Real}
660-
sample_time = sample_time #::Real
661-
circular_buffer = circular_buffer #::Bool
661+
buffer::Vector{T} = buffer #::Vector{Real}
662+
sample_time::T = sample_time #::Real
663+
circular_buffer::Bool = circular_buffer #::Bool
662664
end
665+
@parameters p::Parameter{T} = Parameter(buffer, sample_time, circular_buffer)
663666
vars = []
664667
systems = @named begin
665668
output = RealOutput()
666669
end
667670
eqs = [
668-
output.u ~ get_sampled_data(t, buffer, sample_time, circular_buffer)
671+
output.u ~ get_sampled_data(t, p)
669672
]
670-
return ODESystem(eqs, t, vars, pars; name, systems,
673+
return ODESystem(eqs, t, vars, [pars; p]; name, systems,
671674
defaults = [
672-
output.u => get_sampled_data(0.0, buffer, sample_time, circular_buffer)
675+
output.u => get_sampled_data(0.0, p)
673676
])
674677
end
675678

@@ -684,9 +687,10 @@ data input component.
684687
# Connectors:
685688
- `output`
686689
"""
687-
@component function SampledData(::Val{SampledDataType.struct_based}; name, buffer)
690+
@component function SampledData(
691+
::Val{SampledDataType.struct_based}; name, buffer::Parameter)
688692
pars = @parameters begin
689-
buffer = buffer #::Parameter
693+
buffer::typeof(buffer) = buffer #::Parameter
690694
end
691695
vars = []
692696
systems = @named begin

src/Electrical/Electrical.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@ This library contains electrical components to build up analog circuits.
55
module Electrical
66

77
using ModelingToolkit, Symbolics, IfElse
8+
using ModelingToolkit: t_nounits as t, D_nounits as D
89
using ..Thermal: HeatPort
910
using ..Mechanical.Rotational: Flange, Support
1011
using ..Blocks: RealInput, RealOutput
1112

12-
@parameters t
13-
D = Differential(t)
14-
1513
export Pin, OnePort
1614
include("utils.jl")
1715

src/Hydraulic/IsothermalCompressible/IsothermalCompressible.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ Library to model iso-thermal compressible liquid fluid flow
44
module IsothermalCompressible
55

66
using ModelingToolkit, Symbolics
7+
using ModelingToolkit: t_nounits as t, D_nounits as D
78

89
using ...Blocks: RealInput, RealOutput
910
using ...Mechanical.Translational: MechanicalPort, Mass
1011

1112
using IfElse: ifelse
1213

13-
@parameters t
14-
D = Differential(t)
15-
1614
export HydraulicPort, HydraulicFluid
1715
include("utils.jl")
1816

src/Magnetic/FluxTubes/FluxTubes.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
module FluxTubes
22
using ModelingToolkit
3+
using ModelingToolkit: t_nounits as t, D_nounits as D
34
using ...Electrical: Pin
45

5-
@parameters t
6-
D = Differential(t)
7-
86
export PositiveMagneticPort, NegativeMagneticPort, TwoPort
97
include("utils.jl")
108

src/Mechanical/MultiBody2D/MultiBody2D.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
module MultiBody2D
22

33
using ModelingToolkit, Symbolics, IfElse
4+
using ModelingToolkit: t_nounits as t, D_nounits as D
45
using ..TranslationalPosition
56

6-
@parameters t
7-
D = Differential(t)
8-
97
export Link
108
include("components.jl")
119

src/Mechanical/Rotational/Rotational.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ Library to model 1-dimensional, rotational mechanical systems
44
module Rotational
55

66
using ModelingToolkit, Symbolics, IfElse
7+
using ModelingToolkit: t_nounits as t, D_nounits as D
78
using ...Blocks: RealInput, RealOutput
89
import ...@symcheck
910

10-
@parameters t
11-
D = Differential(t)
12-
1311
export Flange, Support
1412
include("utils.jl")
1513

src/Mechanical/Translational/Translational.jl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@ Library to model 1-dimensional, translational mechanical systems
44
module Translational
55

66
using ModelingToolkit, Symbolics
7-
using ModelingToolkit: getdefault
7+
using ModelingToolkit: getdefault, t_nounits as t, D_nounits as D
88

99
using ModelingToolkitStandardLibrary.Blocks: RealInput, RealOutput
1010
using IfElse: ifelse
1111

12-
@parameters t
13-
D = Differential(t)
14-
1512
export MechanicalPort
1613
include("utils.jl")
1714

src/Mechanical/TranslationalModelica/TranslationalModelica.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ Library to model 1-dimensional, translational mechanical components.
44
module TranslationalModelica
55

66
using ModelingToolkit, Symbolics, IfElse
7+
using ModelingToolkit: t_nounits as t, D_nounits as D
78
using ...Blocks: RealInput, RealOutput
89

9-
@parameters t
10-
D = Differential(t)
11-
1210
export Flange
1311
include("utils.jl")
1412

src/Mechanical/TranslationalPosition/TranslationalPosition.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ Library to model 1-dimensional, translational mechanical components.
44
module TranslationalPosition
55

66
using ModelingToolkit, Symbolics, IfElse
7+
using ModelingToolkit: t_nounits as t, D_nounits as D
78
using ...Blocks: RealInput, RealOutput
89

9-
@parameters t
10-
D = Differential(t)
11-
1210
export Flange
1311
include("utils.jl")
1412

src/Thermal/Thermal.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ Library of thermal system components to model heat transfer.
33
"""
44
module Thermal
55
using ModelingToolkit, Symbolics, IfElse
6+
using ModelingToolkit: t_nounits as t, D_nounits as D
67
using ...Blocks: RealInput, RealOutput
78

8-
@parameters t
9-
D = Differential(t)
10-
119
export HeatPort, Element1D
1210
include("utils.jl")
1311

test/Blocks/continuous.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
using ModelingToolkit, ModelingToolkitStandardLibrary, OrdinaryDiffEq
22
using ModelingToolkitStandardLibrary.Blocks
3+
using ModelingToolkit: t_nounits as t
34
using OrdinaryDiffEq: ReturnCode.Success
45
using Test
56

6-
@parameters t
7-
87
#=
98
Testing strategy:
109
The general strategy is to test systems using simple inputs where the solution

test/Blocks/math.jl

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

7-
@parameters t
8-
97
@testset "Gain" begin
108
@named c = Constant(; k = 1)
119
@named gain = Gain(; k = 1)

test/Blocks/nonlinear.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
using ModelingToolkit, OrdinaryDiffEq
22
using ModelingToolkitStandardLibrary.Blocks
3+
using ModelingToolkit: t_nounits as t
34
using ModelingToolkitStandardLibrary.Blocks: _clamp, _dead_zone
45
using OrdinaryDiffEq: ReturnCode.Success
56

6-
@parameters t
7-
87
@testset "Limiter" begin
98
@testset "Constant" begin
109
@named c = Constant(; k = 1)

test/Blocks/sources.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
using ModelingToolkit, ModelingToolkitStandardLibrary, OrdinaryDiffEq
22
using ModelingToolkitStandardLibrary.Blocks
3+
using ModelingToolkit: t_nounits as t, D_nounits as D
34
using ModelingToolkitStandardLibrary.Blocks: smooth_sin, smooth_cos, smooth_damped_sin,
45
smooth_square, smooth_step, smooth_ramp,
56
smooth_triangular, triangular, square
67
using OrdinaryDiffEq: ReturnCode.Success
78

8-
@parameters t
9-
D = Differential(t)
10-
119
@testset "Constant" begin
1210
@named src = Constant(k = 2)
1311
@named int = Integrator()

0 commit comments

Comments
 (0)