To determine whether the system is stable.
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
William
el 21 de Sept. de 2021
Respondida: Star Strider
el 21 de Sept. de 2021
I have writen the code to determine the stability of a system. However, the result keeps saying that 'System is not stable' even if I checked the value of pm in workspace and it shows that pm equals to 1, which means that the system is marginally stable. What's wrong with it?
b = [1 0 0 -1 0];
a = [1 0 0 0 -1];
zplane(b,a)
p = roots(a);
pm = abs(p);
if max(pm) <= 1
disp('System is stable');
else
disp('System is not stable');
end
end
0 comentarios
Respuesta aceptada
Star Strider
el 21 de Sept. de 2021
Welcome to the wonderful world of floating-point approximation error!
See ‘Check’ and ‘Check_max’ for an illustration of the probllem:
format long % View Full Precision Results
b = [1 0 0 -1 0];
a = [1 0 0 0 -1];
zplane(b,a)
p = roots(a)
pm = abs(p)
Check = pm-1
Check_max = max(pm)-1
if max(pm) <= 1
disp('System is stable');
else
disp('System is not stable');
end
% end
.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Filter Analysis en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!