@@ -12,7 +12,7 @@ function freqresp(sys::DelayLtiSystem, ω::AbstractVector{T}) where {T <: Real}
12
12
P21_fr = P_fr[ω_idx, ny+ 1 : end , 1 : nu]
13
13
P22_fr = P_fr[ω_idx, ny+ 1 : end , nu+ 1 : end ]
14
14
15
- delay_matrix_inv_fr = Diagonal (exp .(im* sys . Tau * ω[ω_idx])) # Frequency response of the diagonal matrix with delays
15
+ delay_matrix_inv_fr = Diagonal (exp .(im* ω[ω_idx]* sys . Tau )) # Frequency response of the diagonal matrix with delays
16
16
# Inverse of the delay matrix, so there should not be any minus signs in the exponents
17
17
18
18
G_fr[ω_idx,:,:] .= P11_fr + P12_fr/ (delay_matrix_inv_fr - P22_fr)* P21_fr # The matrix is invertible (?!)
@@ -21,6 +21,20 @@ function freqresp(sys::DelayLtiSystem, ω::AbstractVector{T}) where {T <: Real}
21
21
return G_fr
22
22
end
23
23
24
+ function evalfr (sys:: DelayLtiSystem , s)
25
+ (ny, nu) = size (sys)
26
+
27
+ P_fr = evalfr (sys. P. P, s)
28
+
29
+ P11_fr = P_fr[1 : ny, 1 : nu]
30
+ P12_fr = P_fr[1 : ny, nu+ 1 : end ]
31
+ P21_fr = P_fr[ny+ 1 : end , 1 : nu]
32
+ P22_fr = P_fr[ny+ 1 : end , nu+ 1 : end ]
33
+
34
+ delay_matrix_inv_fr = Diagonal (exp .(s* sys. Tau))
35
+
36
+ return P11_fr + P12_fr/ (delay_matrix_inv_fr - P22_fr)* P21_fr
37
+ end
24
38
25
39
"""
26
40
`y, t, x = lsim(sys::DelayLtiSystem, u, t::AbstractArray{<:Real}; x0=fill(0.0, nstates(sys)), alg=MethodOfSteps(Tsit5()), kwargs...)`
@@ -223,7 +237,7 @@ function _linscale(p::Poly, a)
223
237
end
224
238
225
239
# Coefficeints for Padé approximations
226
- # Q_COEFFS = [Poly([binomial(N,i)*prod(N+1:2*N-i) for i=0:N]) for N=1:10]
240
+ # PADE_Q_COEFFS = [Poly([binomial(N,i)*prod(N+1:2*N-i) for i=0:N]) for N=1:10]
227
241
const PADE_Q_COEFFS = [[2 , 1 ],
228
242
[12 , 6 , 1 ],
229
243
[120 , 60 , 12 , 1 ],
0 commit comments