diff --git a/src/Utils/normalization.jl b/src/Utils/normalization.jl index 71266aaf..3a800416 100644 --- a/src/Utils/normalization.jl +++ b/src/Utils/normalization.jl @@ -101,8 +101,8 @@ for CLC_S in (:CLCCS, :CLCDS) end end -# x' = Ax + c, x ∈ X, u ∈ U in the continuous case -# x+ = Ax + c, x ∈ X, u ∈ U in the discrete case +# x' = Ax + b, x ∈ X, u ∈ U in the continuous case +# x+ = Ax + b, x ∈ X, u ∈ U in the discrete case for (CA_S, CLC_S) in ((:CACS, :CLCCS), (:CADS, :CLCDS)) @eval begin function normalize(system::$CA_S{N, AN, VN, XT}) where {N, AN<:AbstractMatrix{N}, VN<:AbstractVector{N}, XT<:XNCF{N}} @@ -114,6 +114,19 @@ for (CA_S, CLC_S) in ((:CACS, :CLCCS), (:CADS, :CLCDS)) end end +# x' = Ax + b in the continuous case +# x+ = Ax + b in the discrete case +for (A_S, CLC_S) in ((:ACS, :CLCCS), (:ADS, :CLCDS)) + @eval begin + function normalize(system::$A_S{N, AN, VN}) where {N, AN<:AbstractMatrix{N}, VN<:AbstractVector{N}} + n = statedim(system) + X = Universe(n) + U = _wrap_inputs(system.b) + $CLC_S(system.A, I(n, N), X, U) + end + end +end + # x' = Ax + Bu + c, x ∈ X, u ∈ U in the continuous case # x+ = Ax + Bu + c, x ∈ X, u ∈ U in the discrete case for (CAC_S, CLC_S) in ((:CACCS, :CLCCS), (:CACDS, :CLCDS)) diff --git a/src/Utils/systems.jl b/src/Utils/systems.jl index eca9bb62..c2edca60 100644 --- a/src/Utils/systems.jl +++ b/src/Utils/systems.jl @@ -10,6 +10,8 @@ const CLCS = ConstrainedLinearContinuousSystem const CLDS = ConstrainedLinearDiscreteSystem const CLCCS = ConstrainedLinearControlContinuousSystem const CLCDS = ConstrainedLinearControlDiscreteSystem +const ACS = AffineContinuousSystem +const ADS = AffineDiscreteSystem const CACCS = ConstrainedAffineControlContinuousSystem const CACDS = ConstrainedAffineControlDiscreteSystem const CACS = ConstrainedAffineContinuousSystem