-
-
Notifications
You must be signed in to change notification settings - Fork 230
Open
Labels
bugSomething isn't workingSomething isn't working
Description
A recent v9 release broke several previously working linearization examples
using ModelingToolkit
using ModelingToolkitStandardLibrary.Blocks
@mtkmodel FirstOrderTest begin
@components begin
in = Blocks.Step()
fb = Blocks.Feedback()
fo = Blocks.SecondOrder(k = 1, w = 1, d = 0.1)
end
@equations begin
connect(in.output, :u, fb.input1)
connect(fb.output, :e, fo.input)
connect(fo.output, :y, fb.input2)
end
end
@named model = FirstOrderTest()
analysis_points = [:y]
loop_openings = Symbol[]
S = get_sensitivity(
model,
analysis_points;
t = 0.0,
loop_openings = loop_openings,
warn_empty_op = false,
allow_input_derivatives = true
)
ERROR: ArgumentError: The equations have at least one cycle.
Stacktrace:
[1] topsort_equations(eqs::Vector{Equation}, unknowns::Vector{SymbolicUtils.BasicSymbolic{Real}}; check::Bool)
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/alias_elimination.jl:441
[2] topsort_equations(eqs::Vector{Equation}, unknowns::Vector{SymbolicUtils.BasicSymbolic{Real}})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/alias_elimination.jl:409
[3] macro expansion
@ ~/.julia/packages/Setfield/ZezIj/src/sugar.jl:198 [inlined]
[4] #_structural_simplify!#1666
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systemstructure.jl:876
[5] _structural_simplify!
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systemstructure.jl:836 [inlined]
[6] #structural_simplify!#1661
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systemstructure.jl:829 [inlined]
[7] structural_simplify!
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systemstructure.jl:784
[8] #__structural_simplify#1683
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systems.jl:95
[9] __structural_simplify
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systems.jl:75 [inlined]
[10] structural_simplify(sys::NonlinearSystem, io::Nothing; additional_passes::Vector{…}, simplify::Bool, split::Bool, allow_symbolic::Bool, allow_parameter::Bool, conservative::Bool, fully_determined::Nothing, kwargs::@Kwargs{})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systems.jl:36
[11] structural_simplify (repeats 2 times)
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/systems.jl:31 [inlined]
[12] ModelingToolkit.InitializationProblem{…}(sys::ODESystem, t::Float64, u0map::Dict{…}, parammap::Dict{…}; guesses::Dict{…}, check_length::Bool, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, fully_determined::Nothing, check_units::Bool, use_scc::Bool, allow_incomplete::Bool, force_time_independent::Bool, algebraic_only::Bool, kwargs::@Kwargs{…})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/diffeqs/abstractodesystem.jl:1482
[13] (ModelingToolkit.InitializationProblem{…})(::ODESystem, ::Float64, ::Vararg{…}; kwargs::@Kwargs{…})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/diffeqs/abstractodesystem.jl:1420
[14] maybe_build_initialization_problem(sys::ODESystem, iip::Bool, op::Dict{…}, u0map::Dict{…}, pmap::Dict{…}, t::Nothing, defs::Dict{…}, guesses::Dict{…}, missing_unknowns::Set{…}; implicit_dae::Bool, u0_constructor::Function, p_constructor::Function, floatT::Type, initialization_eqs::Vector{…}, use_scc::Bool, kwargs::@Kwargs{…})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/problem_utils.jl:1070
[15] process_SciMLProblem(constructor::Type, sys::ODESystem, u0map::Dict{…}, pmap::SciMLBase.NullParameters; build_initializeprob::Bool, implicit_dae::Bool, t::Nothing, guesses::Dict{…}, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, eval_expression::Bool, eval_module::Module, fully_determined::Nothing, check_initialization_units::Bool, tofloat::Bool, u0_constructor::typeof(identity), p_constructor::typeof(identity), du0map::Nothing, check_length::Bool, symbolic_u0::Bool, warn_cyclic_dependency::Bool, circular_dependency_max_cycle_length::Int64, circular_dependency_max_cycles::Int64, substitution_limit::Int64, use_scc::Bool, force_initialization_time_independent::Bool, algebraic_only::Bool, allow_incomplete::Bool, is_initializeprob::Bool, kwargs::@Kwargs{})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/problem_utils.jl:1325
[16] (ODEProblem{…})(sys::ODESystem, u0map::Dict{…}, tspan::Tuple{…}, parammap::SciMLBase.NullParameters; allow_cost::Bool, callback::Nothing, check_length::Bool, warn_initialize_determined::Bool, eval_expression::Bool, eval_module::Module, kwargs::@Kwargs{…})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/diffeqs/abstractodesystem.jl:806
[17] linearization_function(sys::ODESystem, inputs::Vector{…}, outputs::Vector{…}; simplify::Bool, initialize::Bool, initializealg::Nothing, initialization_abstol::Float64, initialization_reltol::Float64, op::Dict{…}, p::SciMLBase.NullParameters, zero_dummy_der::Bool, initialization_solver_alg::NonlinearSolveFirstOrder.GeneralizedFirstOrderAlgorithm{…}, autodiff::ADTypes.AutoForwardDiff{…}, eval_expression::Bool, eval_module::Module, warn_initialize_determined::Bool, guesses::Dict{…}, warn_empty_op::Bool, kwargs::@Kwargs{…})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/linearization.jl:76
[18] get_linear_analysis_function(sys::ODESystem, transform::typeof(ModelingToolkit.SensitivityTransform), aps::Vector{…}; system_modifier::typeof(identity), loop_openings::Vector{…}, kwargs::@Kwargs{…})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/analysis_points.jl:849
[19] get_linear_analysis_function
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/analysis_points.jl:838 [inlined]
[20] #get_sensitivity_function#561
@ ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/analysis_points.jl:866 [inlined]
[21] get_sensitivity(::ODESystem, ::Vector{Symbol}; loop_openings::Vector{Symbol}, system_modifier::Function, kwargs::@Kwargs{t::Float64, warn_empty_op::Bool, allow_input_derivatives::Bool})
@ ModelingToolkit ~/.julia/packages/ModelingToolkit/EpUEk/src/systems/analysis_points.jl:907
[22] top-level scope
@ REPL[17]:1
Some type information was truncated. Use `show(err)` to see complete types.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working