allmargin function giving different results between 2013b and 2012a

I am running a script using linmod() and ss() to get the state space representation of a Simulink model. Then, I am using the allmargin() function on the system to determine the margins. However, I get different margins when I use Matlab2013b when compared to Matlab2012a. I've double checked that my script and Simulink models used between the versions are the same. Can someone please shed some insight on why this may be the case?

댓글 수: 3

It is hard to tell for sure without seeing the models. One thing to try is save the system in 2012a and load it into 2013b and compare the two systems by plotting there frequency responses and also comparing the results given by allmargin. Does your system have underdamped poles or zeros with low damping?
I have compared the systems generated by both versions in one version of Matlab using bode() and allmargin(). The results are the same within the verision of Matlab they were generated with but different between 2012a and 2013b. However, the system has over 100 states and recently I've found that reducing the model order using balreal() and modred() have produced same margins between 2012a and 2013b. This still does not explain why allmargin produces different results between the versions though.
There are usually small differences between release to release with changes to BLAS and improvements in scaling algorithms to improve numerical accuracy. One thing would be to look at in your frequency reponse particularly at the 0db and -180deg. Is the response steep at these locations? If they are then the value would be more sensitive to small variations at these locations.

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

답변 (0개)

카테고리

도움말 센터File Exchange에서 Time and Frequency Domain Analysis에 대해 자세히 알아보기

질문:

Jin
2014년 2월 17일

댓글:

2014년 3월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by