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

1 回表示 (過去 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 Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by