Skip to content

Commit 4db9d0f

Browse files
Merge branch 'master' into Girsanov_trafo
2 parents 8196f16 + 45bbd5b commit 4db9d0f

36 files changed

+901
-711
lines changed

Project.toml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ModelingToolkit"
22
uuid = "961ee093-0014-501f-94e3-6117800e7a78"
33
authors = ["Chris Rackauckas <[email protected]>"]
4-
version = "8.14.1"
4+
version = "8.16.0"
55

66
[deps]
77
AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
@@ -11,16 +11,17 @@ ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9"
1111
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
1212
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
1313
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
14-
DiffEqJump = "c894b116-72e5-5b58-be3c-e6d8d4ac2b12"
1514
DiffRules = "b552c78f-8df3-52c6-915a-8e097449b14b"
1615
Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b"
1716
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
1817
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
1918
DomainSets = "5b8099bc-c8ec-5219-889f-1d9e522a28bf"
19+
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
2020
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
2121
IfElse = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173"
2222
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
2323
JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899"
24+
JumpProcesses = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5"
2425
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
2526
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
2627
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
@@ -30,7 +31,6 @@ NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
3031
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
3132
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
3233
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
33-
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
3434
RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47"
3535
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
3636
Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
@@ -51,29 +51,29 @@ ConstructionBase = "1"
5151
DataStructures = "0.17, 0.18"
5252
DiffEqBase = "6.83.0"
5353
DiffEqCallbacks = "2.16"
54-
DiffEqJump = "7.0, 8"
5554
DiffRules = "0.1, 1.0"
5655
Distributions = "0.23, 0.24, 0.25"
5756
DocStringExtensions = "0.7, 0.8, 0.9"
5857
DomainSets = "0.5"
58+
ForwardDiff = "0.10.3"
5959
Graphs = "1.5.2"
6060
IfElse = "0.1"
6161
JuliaFormatter = "1"
62+
JumpProcesses = "9"
6263
LabelledArrays = "1.3"
6364
Latexify = "0.11, 0.12, 0.13, 0.14, 0.15"
6465
MacroTools = "0.5"
6566
NaNMath = "0.3, 1"
6667
NonlinearSolve = "0.3.8"
6768
RecursiveArrayTools = "2.3"
6869
Reexport = "0.2, 1"
69-
Requires = "1.0"
7070
RuntimeGeneratedFunctions = "0.4.3, 0.5"
7171
SciMLBase = "1.26.2"
7272
Setfield = "0.7, 0.8, 1"
7373
SpecialFunctions = "0.7, 0.8, 0.9, 0.10, 1.0, 2"
7474
StaticArrays = "0.10, 0.11, 0.12, 1.0"
7575
SymbolicUtils = "0.19"
76-
Symbolics = "4.5"
76+
Symbolics = "4.9"
7777
UnPack = "0.1, 1.0"
7878
Unitful = "1.1"
7979
julia = "1.6"
@@ -84,6 +84,7 @@ BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
8484
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
8585
Ipopt = "b6b21f68-93f8-5de0-b562-5493be1d77c9"
8686
Ipopt_jll = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7"
87+
ModelingToolkitStandardLibrary = "16a59e39-deab-5bd0-87e4-056b12336739"
8788
Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
8889
OptimizationMOI = "fd9f6733-72f4-499f-8506-86b2bdd0dea1"
8990
OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e"
@@ -98,4 +99,4 @@ Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4"
9899
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
99100

100101
[targets]
101-
test = ["AmplNLWriter", "BenchmarkTools", "ForwardDiff", "Ipopt", "Ipopt_jll", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "Random", "ReferenceTests", "SafeTestsets", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials"]
102+
test = ["AmplNLWriter", "BenchmarkTools", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "Random", "ReferenceTests", "SafeTestsets", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials"]

docs/pages.jl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ pages = [
88
"tutorials/nonlinear.md",
99
"tutorials/optimization.md",
1010
"tutorials/stochastic_diffeq.md",
11-
"tutorials/nonlinear_optimal_control.md",
1211
"tutorials/parameter_identifiability.md"],
1312
"ModelingToolkitize Tutorials" => Any["mtkitize_tutorials/modelingtoolkitize.md",
1413
"mtkitize_tutorials/modelingtoolkitize_index_reduction.md",
@@ -25,7 +24,6 @@ pages = [
2524
"systems/JumpSystem.md",
2625
"systems/NonlinearSystem.md",
2726
"systems/OptimizationSystem.md",
28-
"systems/ControlSystem.md",
2927
"systems/PDESystem.md"],
3028
"comparison.md",
3129
"internals.md",

docs/src/basics/Variable_metadata.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ isdisturbance(u)
3434
```
3535

3636
## Mark parameter as tunable
37-
Indicate that a parameter can be automatically tuned by automatic control tuning apps.
37+
Indicate that a parameter can be automatically tuned by parameter optimization or automatic control tuning apps.
3838

3939
```@example metadata
4040
@parameters Kp [tunable=true]

docs/src/systems/ControlSystem.md

Lines changed: 0 additions & 23 deletions
This file was deleted.

docs/src/tutorials/nonlinear_optimal_control.md

Lines changed: 0 additions & 95 deletions
This file was deleted.

docs/src/tutorials/spring_mass.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ D = Differential(t)
1313
1414
function Mass(; name, m = 1.0, xy = [0., 0.], u = [0., 0.])
1515
ps = @parameters m=m
16-
sts = @variables pos[1:2](t)=xy v[1:2](t)=u
16+
sts = @variables pos(t)[1:2]=xy v(t)[1:2]=u
1717
eqs = scalarize(D.(pos) .~ v)
1818
ODESystem(eqs, t, [pos..., v...], ps; name)
1919
end
2020
2121
function Spring(; name, k = 1e4, l = 1.)
2222
ps = @parameters k=k l=l
23-
@variables x(t), dir[1:2](t)
23+
@variables x(t), dir(t)[1:2]
2424
ODESystem(Equation[], t, [x, dir...], ps; name)
2525
end
2626
@@ -63,7 +63,7 @@ For each component we use a Julia function that returns an `ODESystem`. At the t
6363
```@example component
6464
function Mass(; name, m = 1.0, xy = [0., 0.], u = [0., 0.])
6565
ps = @parameters m=m
66-
sts = @variables pos[1:2](t)=xy v[1:2](t)=u
66+
sts = @variables pos(t)[1:2]=xy v(t)[1:2]=u
6767
eqs = scalarize(D.(pos) .~ v)
6868
ODESystem(eqs, t, [pos..., v...], ps; name)
6969
end
@@ -86,7 +86,7 @@ Next we build the spring component. It is characterised by the spring constant `
8686
```@example component
8787
function Spring(; name, k = 1e4, l = 1.)
8888
ps = @parameters k=k l=l
89-
@variables x(t), dir[1:2](t)
89+
@variables x(t), dir(t)[1:2]
9090
ODESystem(Equation[], t, [x, dir...], ps; name)
9191
end
9292
```

src/ModelingToolkit.jl

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ $(DocStringExtensions.README)
44
module ModelingToolkit
55
using DocStringExtensions
66
using AbstractTrees
7-
using DiffEqBase, SciMLBase, Reexport
7+
using DiffEqBase, SciMLBase, ForwardDiff, Reexport
88
using Distributed
99
using StaticArrays, LinearAlgebra, SparseArrays, LabelledArrays
1010
using InteractiveUtils
1111
using Latexify, Unitful, ArrayInterfaceCore
1212
using MacroTools
1313
@reexport using UnPack
1414
using Setfield, ConstructionBase
15-
using DiffEqJump
15+
using JumpProcesses
1616
using DataStructures
1717
using SpecialFunctions, NaNMath
1818
using RuntimeGeneratedFunctions
@@ -41,6 +41,7 @@ import SymbolicUtils.Rewriters: Chain, Postwalk, Prewalk, Fixpoint
4141
import JuliaFormatter
4242

4343
using Reexport
44+
using Symbolics: degree
4445
@reexport using Symbolics
4546
export @derivatives
4647
using Symbolics: _parse_vars, value, @derivatives, get_variables,
@@ -60,8 +61,6 @@ import DiffEqBase: @add_kwonly
6061

6162
import Graphs: SimpleDiGraph, add_edge!, incidence_matrix
6263

63-
using Requires
64-
6564
for fun in [:toexpr]
6665
@eval begin
6766
function $fun(eq::Equation; kw...)
@@ -121,6 +120,7 @@ include("domains.jl")
121120

122121
include("systems/abstractsystem.jl")
123122
include("systems/connectors.jl")
123+
include("systems/callbacks.jl")
124124

125125
include("systems/diffeqs/odesystem.jl")
126126
include("systems/diffeqs/sdesystem.jl")
@@ -136,8 +136,6 @@ include("systems/nonlinear/modelingtoolkitize.jl")
136136

137137
include("systems/optimization/optimizationsystem.jl")
138138

139-
include("systems/control/controlsystem.jl")
140-
141139
include("systems/pde/pdesystem.jl")
142140

143141
include("systems/sparsematrixclil.jl")
@@ -172,21 +170,19 @@ export AutoModelingToolkit
172170
export SteadyStateProblem, SteadyStateProblemExpr
173171
export JumpProblem, DiscreteProblem
174172
export NonlinearSystem, OptimizationSystem
175-
export ControlSystem
176173
export alias_elimination, flatten
177174
export connect, @connector, Connection, Flow, Stream, instream
178175
export isinput, isoutput, getbounds, hasbounds, isdisturbance, istunable, getdist, hasdist,
179176
tunable_parameters, isirreducible
180177
export ode_order_lowering, dae_order_lowering, liouville_transform
181-
export runge_kutta_discretize
182178
export PDESystem
183179
export Differential, expand_derivatives, @derivatives
184180
export Equation, ConstrainedEquation
185181
export Term, Sym
186182
export SymScope, LocalScope, ParentScope, GlobalScope
187183
export independent_variables, independent_variable, states, parameters, equations, controls,
188184
observed, structure, full_equations
189-
export structural_simplify, expand_connections
185+
export structural_simplify, expand_connections, linearize, linear_statespace
190186
export DiscreteSystem, DiscreteProblem
191187

192188
export calculate_jacobian, generate_jacobian, generate_function

0 commit comments

Comments
 (0)