-
-
Notifications
You must be signed in to change notification settings - Fork 241
Open
Labels
Description
The following multibody system fails to initialize, and the error message gives no guidance on where the issue might be. It also simplifies to 14 variables of which 6 are algebraic and 8 diff, while open modelica simplifies to 8 differential variables only.
using Test, ModelingToolkit, Multibody, Random
t = Multibody.t
using LinearAlgebra
@component function WheelInWorld(; name)
systems = @named begin
# world = World(n=[0,0,-1])
world = World()
wheel = RollingWheel(radius = 0.3, m = 2, I_axis = 0.06,
I_long = 0.12,
x0 = 0.2,
z0 = 0.2,
angles = [0,0,0],
der_angles = [0, -5, -1])
end
pars = @parameters begin
end
vars = @variables begin
end
equations = Equation[]
return System(equations, t; name, systems)
end
@named worldwheel = WheelInWorld()
prob = ODEProblem(ssys, [], (0, 4); guesses, missing_guess_value = MissingGuessValue.Random(Random.GLOBAL_RNG))julia> prob = ODEProblem(ssys, defs, (0, 4); guesses, missing_guess_value = MissingGuessValue.Random(Random.GLOBAL_RNG))
ERROR: SingularException(7)
Stacktrace:
[1] checknonsingular
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/factorization.jl:69 [inlined]
[2] _check_lu_success
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/lu.jl:84 [inlined]
[3] #lu!#180
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/lu.jl:92 [inlined]
[4] lu!
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/lu.jl:90 [inlined]
[5] lu!
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/lu.jl:89 [inlined]
[6] _lu
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/lu.jl:347 [inlined]
[7] lu(::Matrix{Float64}; kwargs::@Kwargs{})
@ LinearAlgebra ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/lu.jl:341
[8] lu
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/lu.jl:341 [inlined]
[9] \(A::Matrix{Float64}, B::Vector{Float64})
@ LinearAlgebra ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/generic.jl:1234
[10] macro expansion
@ ~/.julia/packages/SymbolicUtils/pgFkI/src/code.jl:542 [inlined]
[11] macro expansion
@ ~/.julia/packages/Symbolics/9I6NM/src/build_function.jl:380 [inlined]
[12] macro expansion
@ ~/.julia/packages/RuntimeGeneratedFunctions/BenR2/src/RuntimeGeneratedFunctions.jl:165 [inlined]
[13] macro expansion
@ ./none:0 [inlined]
[14] generated_callfunc
@ ./none:0 [inlined]
[15] (::RuntimeGeneratedFunctions.RuntimeGeneratedFunction{…})(::Vector{…}, ::MTKParameters{…}, ::Int64)
@ RuntimeGeneratedFunctions ~/.julia/packages/RuntimeGeneratedFunctions/BenR2/src/RuntimeGeneratedFunctions.jl:152
[16] macro expansion
@ ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/systems/codegen_utils.jl:-1 [inlined]
[17] _generated_call
@ ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/systems/codegen_utils.jl:411 [inlined]
[18] GeneratedFunctionWrapper
@ ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/systems/codegen_utils.jl:408 [inlined]
[19] ObservedWrapper
@ ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/systems/problem_utils.jl:641 [inlined]
[20] call_composed
@ ./operators.jl:1100 [inlined]
[21] call_composed
@ ./operators.jl:1099 [inlined]
[22] ComposedFunction
@ ./operators.jl:1096 [inlined]
[23] (::ModelingToolkitBase.ReconstructInitializeprob{…})(srcvalp::SymbolicIndexingInterface.ProblemState{…}, dstvalp::SciMLBase.SCCNonlinearProblem{…})
@ ModelingToolkitBase ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/systems/problem_utils.jl:871
[24] remake_initialization_data(sys::System, odefn::@NamedTuple{…}, u0::Vector{…}, t0::Int64, p::MTKParameters{…}, newu0::Vector{…}, newp::MTKParameters{…})
@ ModelingToolkitBase ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/systems/nonlinear/initializesystem.jl:547
[25] #invokelatest_gr#232
@ ./reflection.jl:1295 [inlined]
[26] invokelatest_gr
@ ./reflection.jl:1289 [inlined]
[27] process_SciMLProblem(constructor::Type, sys::System, op::Dict{…}; build_initializeprob::Bool, implicit_dae::Bool, t::Int64, guesses::Dict{…}, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, eval_expression::Bool, eval_module::Module, fully_determined::Nothing, check_initialization_units::Bool, u0_eltype::Nothing, tofloat::Bool, u0_constructor::typeof(identity), p_constructor::typeof(identity), check_length::Bool, symbolic_u0::Bool, warn_cyclic_dependency::Bool, circular_dependency_max_cycle_length::Int64, circular_dependency_max_cycles::Int64, initsys_mtkcompile_kwargs::@NamedTuple{}, substitution_limit::Int64, use_scc::Bool, time_dependent_init::Bool, algebraic_only::Bool, missing_guess_value::ModelingToolkitBase.MissingGuessValue.var"typeof(MissingGuessValue)", allow_incomplete::Bool, is_initializeprob::Bool, kwargs::@Kwargs{…})
@ ModelingToolkitBase ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/systems/problem_utils.jl:1578
[28] (ODEProblem{…})(sys::System, op::Dict{…}, tspan::Tuple{…}; callback::Nothing, check_length::Bool, eval_expression::Bool, expression::Type, eval_module::Module, check_compatibility::Bool, kwargs::@Kwargs{…})
@ ModelingToolkitBase ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/problems/odeproblem.jl:105
[29] ODEProblem
@ ~/.julia/dev/ModelingToolkit/lib/ModelingToolkitBase/src/problems/odeproblem.jl:96 [inlined]
[30] ODEProblem
@ ./none:-1 [inlined]
[31] #ODEProblem#820
@ ./none:-1 [inlined]
[32] top-level scope
@ REPL[8]:1
Some type information was truncated. Use `show(err)` to see complete types.