-
-
Notifications
You must be signed in to change notification settings - Fork 232
Closed
Description
I have problems implementing a ControlSystem
conversion in DataDrivenDiffEq ( SciML/DataDrivenDiffEq.jl#158 ).
I think it boils down to adding parameters to the problem. Is this a known limitation right now?
A MWE would be
using ModelingToolkit
@variables t x(t) v(t) u(t)
@parameters p
@derivatives D'~t
loss = (4-x)^2 + 2v^2 + u^2
eqs = [
D(x) ~ v
D(v) ~ p*u^3
]
sys = ControlSystem(loss,eqs,t,[x,v],[u],[p])
runge_kutta_discretize(sys, 0.1, (0.0, 1.0))
Which gives
ERROR: LoadError: MethodError: no method matching *(::Variable{ModelingToolkit.Parameter{Number}}, ::Operation)
Closest candidates are:
*(::Any, ::Any, ::Any, ::Any...) at operators.jl:538
*(::LightGraphs.LinAlg.Noop, ::Any) at /home/alcapitan/.julia/packages/LightGraphs/HsNig/src/linalg/graphmatrices.jl:226
*(::Missing, ::Number) at missing.jl:115
...
Stacktrace:
[1] (::ModelingToolkit.var"#561#562")(::Array{Operation,1}, ::Array{Operation,1}, ::Array{Variable,1}, ::Operation) at ./none:0
[2] #invokelatest#1 at ./essentials.jl:710 [inlined]
[3] invokelatest at ./essentials.jl:709 [inlined]
[4] (::ModelingToolkit.var"#279#301"{Int64,Float64,ModelingToolkit.var"#561#562",Array{Array{Array{Operation,1},1},1},Array{Variable,1},Operation,Array{Array{Array{Operation,1},1},1}})(::Int64) at ./none:0
[5] iterate at ./generator.jl:47 [inlined]
[6] collect(::Base.Generator{UnitRange{Int64},ModelingToolkit.var"#279#301"{Int64,Float64,ModelingToolkit.var"#561#562",Array{Array{Array{Operation,1},1},1},Array{Variable,1},Operation,Array{Array{Array{Operation,1},1},1}}}) at ./array.jl:686
[7] #278 at ./none:0 [inlined]
[8] iterate at ./generator.jl:47 [inlined]
[9] collect(::Base.Generator{UnitRange{Int64},ModelingToolkit.var"#278#300"{Float64,Int64,ModelingToolkit.var"#561#562",Array{Array{Array{Operation,1},1},1},Array{Variable,1},Operation,Array{Array{Array{Operation,1},1},1}}}) at ./array.jl:686
[10] runge_kutta_discretize(::ControlSystem, ::Float64, ::Tuple{Float64,Float64}; tab::DiffEqBase.ImplicitRKTableau{Array{Float64,2},Array{Float64,1}}) at /home/alcapitan/.julia/packages/ModelingToolkit/CEB9b/src/systems/control/controlsystem.jl:153
[11] runge_kutta_discretize(::ControlSystem, ::Float64, ::Tuple{Float64,Float64}) at /home/alcapitan/.julia/packages/ModelingToolkit/CEB9b/src/systems/control/controlsystem.jl:131
[12] top-level scope at /home/alcapitan/Documents/code/DataDrivenDiffEq.jl/examples/ISInDy_Examples2.jl:87
[13] include_string(::Function, ::Module, ::String, ::String) at ./loading.jl:1088
[14] include_string(::Module, ::String, ::String) at ./loading.jl:1096
Metadata
Metadata
Assignees
Labels
No labels