normal rank calculation with tzero
조회 수: 5 (최근 30일)
이전 댓글 표시
Consider the following transfer matrix:
s = tf('s')
G = [1/(s+2) 0; 0 1/((s+1)*(s+3))]
the calcultation of the normal rank of G is done by:
[z, nrank] = tzero(G)
and the result is
nrank = 1.
I was wondering, because in my understanding G will never lose rank for any
and the normal rank should be equal to 2. So far, my observation is, that if the number of poles in the part transfer functions is equal,
i.e.
G = [1/(s+2) 0; 0 1/(s+1)]
[z, nrank] = tzero(G)
the result meets with my expectations (nrank = 2).
So my question is, am I missing something when using tzero or is there a general problem of understanding regarding the normal rank of a transfer matrix?
Many thanks in advance.
댓글 수: 2
Paul
2025년 3월 27일
Hi Andreas,
I took a look and I agree that the first case seems odd. I tried lots of variation in the tol input to tzero, but that had no effect. Unfortunately, the heavy lifting for tzero, at least for the first case, is in a .mex file, so I couldn't dig into the code.
If you open a case with Tech Support, would you mind posting back here with a summary of their response?
채택된 답변
Christian
2025년 4월 7일
We have identified that this is indeed a bug in "tzero".
We are actively working on a fix, and aim to provide it as soon as possible.
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Stability Analysis에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!