MATLAB Answers

how the series of 2 stable discrete-systems becomes unstable?

조회 수: 2(최근 30일)
Filippo Mirra
Filippo Mirra 2021년 1월 11일
댓글: Filippo Mirra 2021년 1월 12일
Hello everyone,
I am currently struggling to understand why if I do the series of these two STABLE discrete-systems, the resulting system is UNSTABLE.
tECU = 0.001;
z = tf('z', tECU);
opts = bodeoptions;
opts.FreqUnits = 'Hz';
%% HP filter simple
G1 = tECU/(tECU+0.1*2*pi);
HP1 = (z-1)/(z-1+G1);
%% HP filter 4th order
B1 = 0.999326955592380;
B2 = -3.997307427851055;
B3 = 5.995960944517369;
B4 = -3.997307427851056;
B5 = 0.999326955592380;
A1 = 1.000000000000000;
A2 = -3.998653063327113;
A3 = 5.995960491528685;
A4 = -3.995961792374911;
A5 = 0.998654364173536;
HP4 = (z^4*B1 + z^3*B2 + z^2*B3 + z*B4 + B5)/(z^4*A1 + z^3*A2 + z^2*A3 + z*A4 + A5);
%% poles
p1 = pole(HP1);
p2 = pole(HP4);
p_tot = pole(HP1*HP4);
%% plot Pole-Zero map
figure; hold on;
pzmap(HP1, HP4, HP1*HP4, opts);
legend('HP1','HP1*HP4','HP4');
Both HP1 and HP4 have stable poles, but when I do the series of HP1 and HP4 Matlab says that the resulting system has an unstable pole. Furthermore, all the poles and zeros seems to change position.
Any help or suggestion is appreciated.
Thanks

채택된 답변

Jon
Jon 2021년 1월 11일
I think you are seeing some roundoff or other numerical issues. Higher order polynomials (in your case a 5th order polynomial) are notorious for having behavior that is very sensitive to coefficient values. The poles of your original two transfer functions are already close to zero. I think you also may have a problem in your HP4 in that the zeros and poles are all very close to 1, basically you have very close (Z-1)^4/(Z-1)^4 so the near pole zero cancellation may also be causing you numerical issues.
I would recommend looking more closely at you filter design, do you really want the zeros and poles to be nearly identical?
Also for future reference you can much more simply define your second transfer function using:
HP4 = tf([B1 B2 B3 B4 B5],[A1 A2 A3 A4 A5],tECU)
rather than expanding the polynomial yourself
  댓글 수: 1
Filippo Mirra
Filippo Mirra 2021년 1월 12일
Thanks Jon.
Indeed I thought it was a roundoff or numerical issue as well, since I tried to compute the equivalent continouos systems and this problem doesn't exist.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by