Skip to content

Linearization with bigfloat #3752

Open
Open
@baggepinnen

Description

@baggepinnen

fails, example below

using ModelingToolkit

@independent_variables t
@variables x(t)=big(0.0) y(t)=0 u(t)=0 r(t)=0 [input = true]
@parameters kp = 1
D = Differential(t)

eqs = [u ~ kp * (r - y)
       D(x) ~ -x + u
       y ~ x]

@named sys = System(eqs, t)

lsys, ssys, extras = linearize(sys, [r], [y])
julia> lsys, ssys, extras = linearize(sys, [r], [y])
┌ Warning: An empty operating point was passed to `linearization_function`. An operating point containing the variables that will be changed in `linearize` should be provided. Disable this warning by passing `warn_empty_op = false`.
└ @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:52
┌ Warning: Initialization system is overdetermined. 2 equations for 0 unknowns. Initialization will default to using least squares. `SCCNonlinearProblem` can only be used for initialization of fully determined systems and hence will not be used here. To suppress this warning pass warn_initialize_determined = false. To make this warning into an error, pass fully_determined = true
└ @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/problems/initializationproblem.jl:106
ERROR: UndefRefError: access to undefined reference
Stacktrace:
  [1] getindex
    @ ./essentials.jl:917 [inlined]
  [2] _broadcast_getindex
    @ ./broadcast.jl:644 [inlined]
  [3] _getindex
    @ ./broadcast.jl:674 [inlined]
  [4] _broadcast_getindex
    @ ./broadcast.jl:650 [inlined]
  [5] getindex
    @ ./broadcast.jl:610 [inlined]
  [6] macro expansion
    @ ./broadcast.jl:973 [inlined]
  [7] macro expansion
    @ ./simdloop.jl:77 [inlined]
  [8] copyto!
    @ ./broadcast.jl:972 [inlined]
  [9] copyto!
    @ ./broadcast.jl:925 [inlined]
 [10] materialize!
    @ ./broadcast.jl:883 [inlined]
 [11] materialize!
    @ ./broadcast.jl:880 [inlined]
 [12] seed!(duals::Vector{ForwardDiff.Dual{…}}, x::Vector{BigFloat}, seed::ForwardDiff.Partials{1, BigFloat})
    @ ForwardDiff ~/.julia/packages/ForwardDiff/UBbGT/src/apiutils.jl:45
 [13] seed!
    @ ~/.julia/packages/ForwardDiff/UBbGT/src/apiutils.jl:45 [inlined]
 [14] vector_mode_dual_eval!
    @ ~/.julia/packages/ForwardDiff/UBbGT/src/apiutils.jl:30 [inlined]
 [15] vector_mode_jacobian(f!::DifferentiationInterface.FixTail{…}, y::Vector{…}, x::Vector{…}, cfg::ForwardDiff.JacobianConfig{…})
    @ ForwardDiff ~/.julia/packages/ForwardDiff/UBbGT/src/jacobian.jl:139
 [16] jacobian
    @ ~/.julia/packages/ForwardDiff/UBbGT/src/jacobian.jl:40 [inlined]
 [17] jacobian
    @ ~/.julia/packages/DifferentiationInterface/zJHX8/ext/DifferentiationInterfaceForwardDiffExt/twoarg.jl:470 [inlined]
 [18] PreparedJacobian
    @ ~/.julia/dev/ModelingToolkit/src/linearization.jl:189 [inlined]
 [19] (::ModelingToolkit.LinearizationFunction{…})(u::Vector{…}, p::MTKParameters{…}, t::Float64)
    @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:307
 [20] solve(prob::LinearizationProblem{ModelingToolkit.LinearizationFunction{…}, Float64}; allow_input_derivatives::Bool)
    @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:442
 [21] solve
    @ ~/.julia/dev/ModelingToolkit/src/linearization.jl:438 [inlined]
 [22] linearize(sys::System, lin_fun::ModelingToolkit.LinearizationFunction{…}; t::Float64, op::Dict{…}, allow_input_derivatives::Bool, p::SciMLBase.NullParameters)
    @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:746
 [23] linearize(sys::System, inputs::Vector{…}, outputs::Vector{…}; op::Dict{…}, t::Float64, allow_input_derivatives::Bool, zero_dummy_der::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:759
 [24] linearize(sys::System, inputs::Vector{Num}, outputs::Vector{Num})
    @ ModelingToolkit ~/.julia/dev/ModelingToolkit/src/linearization.jl:749
 [25] top-level scope
    @ REPL[12]:1
Some type information was truncated. Use `show(err)` to see complete types.

@oscardssmith you happen to know what's up with this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions