Given an LTI system with corresponding transfer matrix K(s), is there an easy way to specify K(w) where w=s+delta?

4 次查看(过去 30 天)
I wanted to use the method in this paper here:
and to do so I need to shift the complex "s" argument for the transfer matrix K(s) by some constant real delta, such that for w=s+delta I need to be able to specify K(w).
Is there an easy way to do this? I currently have K(s) as a state space system.
  2 个评论
Vinh
Vinh 2024-1-24
编辑:Vinh 2024-1-24
Oh I think I will try to use "num" and "den" for every element of K(s) calculated with tf(K), and then I will just take these coefficients and multiply them by a "s+delta" rather than an s. I will repost if this works, although I am still hoping for a nicer solution.
Vinh
Vinh 2024-1-24
编辑:Vinh 2024-1-24
Oh I think I have am being stupid. For K=ss(A,B,C,D) and looking at
K(s)=C(s*1-A)^-1*B+D
I think I can just consider
K(w)=C((s+delta)*1-A)^-1*B+D
which is equivalent to
K(w)=C(s*1-A_tilde)^-1*B+D
where
A_tilde=-delta*1+A
so I am hoping I can just perturb this A matrix like this to get a shifted system. Also, sorry for the sloppy notation, I guess I should specify K(w) is actually a transformed K(s) and is not equal to it obviously.

请先登录,再进行评论。

采纳的回答

Vinh
Vinh 2024-1-24
I think both comments are valid, but the first one didn't work and the second one seemed to answer my question I think. Please correct me if I am wrong, but just to specify the answer again I just perturbed the A matrix of K by adding -delta*1.

更多回答(1 个)

Paul
Paul 2024-1-25
Hi Vinh,
I think the substitution backward.
It should go like this:
K(s) = C * inv(s*I - A) * B + D
w = s + delta -> s = w - delta
K(w) = C * inv((w - delta)*I - A) * B + D
K(w) = C * inv(wI - delta*I - A) * B + D
K(w) = C * inv(wI - (delta*I + A)) * B + D
therefore A_tilde = A + delta*I
Check
s_sys = rss(3,3,3);
delta = 3.1;
A_tilde = s_sys.A + delta*eye(3);
w_sys = s_sys;
w_sys.A = A_tilde;
s0 = -5 + 1j*4;
w0 = s0 + delta;
evalfr(s_sys,s0) - evalfr(w_sys,w0)
ans =
1.0e-15 * 0.0555 + 0.1665i 0.0278 + 0.0000i 0.0555 - 0.3331i 0.0000 + 0.8882i 0.0000 + 0.1110i 0.2220 - 0.8882i 0.4441 + 0.0000i 0.1110 + 0.0000i -0.6661 + 0.2220i

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by