@@ -89,14 +89,13 @@ $(@doc(DescriptorSystems.gbalmr))
8989"""
9090function baltrunc2 (sys:: LTISystem ; residual= false , n= missing , scaleY= 1.0 , scaleU= 1.0 , kwargs... )
9191 # Apply scaling if needed
92- Ts = isdiscrete (sys) ? sys. Ts : 0
9392 A, B, C, D = ssdata (sys)
9493 # Divide by scaling factors to normalize to ~[-1,1]
95- sys_scaled = ss (A, B / scaleU, C / scaleY, scaleY \ D / scaleU, Ts )
94+ sys_scaled = ss (A, B / scaleU, C / scaleY, scaleY \ D / scaleU, sys . timeevol )
9695 sysr, hs = DescriptorSystems. gbalmr (dss (sys_scaled); matchdc= residual, ord= n, kwargs... )
9796 # Multiply by scaling factors to restore original units
9897 Ar, Br, Cr, Dr = ssdata (ss (sysr))
99- sys_final = ss (Ar, Br * scaleU, scaleY * Cr, scaleY * Dr * scaleU, Ts )
98+ sys_final = ss (Ar, Br * scaleU, scaleY * Cr, scaleY * Dr * scaleU, sys . timeevol )
10099 sys_final, hs
101100end
102101
@@ -115,10 +114,9 @@ $(@doc(DescriptorSystems.gbalmr))
115114"""
116115function baltrunc_coprime (sys, info= nothing ; residual= false , n= missing , factorization:: F = DescriptorSystems. gnlcf, scaleY= 1.0 , scaleU= 1.0 , kwargs... ) where F
117116 # Apply scaling if needed
118- Ts = isdiscrete (sys) ? sys. Ts : 0
119117 A, B, C, D = ssdata (sys)
120118 # Divide by scaling factors to normalize to ~[-1,1]
121- sys_scaled = ss (A, B / scaleU, scaleY \ C, scaleY \ D / scaleU, Ts )
119+ sys_scaled = ss (A, B / scaleU, scaleY \ C, scaleY \ D / scaleU, sys . timeevol )
122120 if info != = nothing && hasproperty (info, :NM )
123121 @unpack N, M, NM = info
124122 else
@@ -142,7 +140,7 @@ function baltrunc_coprime(sys, info=nothing; residual=false, n=missing, factoriz
142140 Dr = (DMi * DN)
143141
144142 # Multiply by scaling factors to restore original units
145- sys_final = ss (Ar, Br * scaleU, scaleY * Cr, scaleY * Dr * scaleU, Ts )
143+ sys_final = ss (Ar, Br * scaleU, scaleY * Cr, scaleY * Dr * scaleU, sys . timeevol )
146144 sys_final, hs, (; NM, N, M, NMr)
147145end
148146
@@ -156,10 +154,9 @@ See `baltrunc2` for other keyword arguments.
156154"""
157155function baltrunc_unstab (sys:: LTISystem , info= nothing ; residual= false , n= missing , scaleY= 1.0 , scaleU= 1.0 , kwargs... )
158156 # Apply scaling if needed
159- Ts = isdiscrete (sys) ? sys. Ts : 0
160157 A, B, C, D = ssdata (sys)
161158 # Divide by scaling factors to normalize to ~[-1,1]
162- sys_scaled = ss (A, B / scaleU, scaleY \ C, scaleY \ D / scaleU, Ts )
159+ sys_scaled = ss (A, B / scaleU, scaleY \ C, scaleY \ D / scaleU, sys . timeevol )
163160 if info != = nothing && hasproperty (info, :stab )
164161 @unpack stab, unstab = info
165162 else
@@ -172,7 +169,7 @@ function baltrunc_unstab(sys::LTISystem, info=nothing; residual=false, n=missing
172169 sysr, hs = DescriptorSystems. gbalmr (stab; matchdc= residual, ord= n- nx_unstab, kwargs... )
173170 # Multiply by scaling factors to restore original units
174171 Ar, Br, Cr, Dr = ssdata (ss (sysr + unstab))
175- sys_final = ss (Ar, Br * scaleU, scaleY * Cr, scaleY * Dr * scaleU, Ts )
172+ sys_final = ss (Ar, Br * scaleU, scaleY * Cr, scaleY * Dr * scaleU, sys . timeevol )
176173 sys_final, hs, (; stab, unstab)
177174end
178175
0 commit comments