Skip to content

similarity_transform(sys, T) throws an error when transformation matrix T is complex #462

@tfoliva

Description

@tfoliva

Using Version 0.9.2.

Trying to perform a similarity transformation with a complex matrix returns

ERROR: InexactError: Float64(-5.159983634948731 - 4116.475358187984im)
Stacktrace:
 [1] Real at ./complex.jl:37 [inlined]
 [2] convert at ./number.jl:7 [inlined]
 [3] setindex! at ./array.jl:847 [inlined]
 [4] _unsafe_copyto!(::Array{Float64,2}, ::Int64, ::Array{Complex{Float64},2}, ::Int64, ::Int64) at ./array.jl:257
 [5] unsafe_copyto! at ./array.jl:311 [inlined]
 [6] _copyto_impl! at ./array.jl:335 [inlined]
 [7] copyto! at ./array.jl:321 [inlined]
 [8] copyto! at ./array.jl:347 [inlined]
 [9] copyto_axcheck! at ./abstractarray.jl:946 [inlined]
 [10] Array{Float64,2}(::Array{Complex{Float64},2}) at ./array.jl:562
 [11] convert at ./array.jl:554 [inlined]

I needed to convert a system to modal canonical form, so I implemented a similar function which performs the eigendecomposition, (similar to MATLAB's prescale I guess). I can make a pull request. Furthermore, are there plans to implement this system transformations (controlable canonical form, observable canonical form, modal canonical form)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions