Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Stable model, but results show instability

Asked by Kiran Sagar

Kiran Sagar (view profile)

on 30 Dec 2012
Accepted Answer by Matt J

Matt J (view profile)

i have recently made a simulink model of a mechanical system, though complex in nature, but basically it is a second order ODE.

i think that my plant model is stable statically, and neutrally stable dynamically. yet i am getting results showing dynamic instability. i am thinking about possible reasons for this.

kindly clarify whether numerical scheme can lead to dynamic instability of a neutrally stable plant.

configuration parameters: variable step, step size- auto, tolerances- auto.

1 Comment

Azzi Abdelmalek

Azzi Abdelmalek (view profile)

on 30 Dec 2012

Can you post your model?

Kiran Sagar

Kiran Sagar (view profile)

Products

No products are associated with this question.

2 Answers

Answer by Matt J

Matt J (view profile)

on 30 Dec 2012
Edited by Matt J

Matt J (view profile)

on 30 Dec 2012
Accepted answer

Because a neutrally stable system (as I know the term) is on the threshold of instability, it definitely makes sense that numerical inaccuracies in the implementation of the plant can render it unstable.

Consider a system that simply multiplies its input by some constant

    y=c*x

For c=1, it is neutrally stable at all inputs, x, whereas for any c>1, it is unstable. If c was the output of approximate calculations, then even though c may supposed to be 1 (stable), imprecision in the calculations can make it >1, i.e., unstable.

0 Comments

Matt J

Matt J (view profile)

Answer by Jan Simon

Jan Simon (view profile)

on 30 Dec 2012
Edited by Jan Simon

Jan Simon (view profile)

on 30 Dec 2012

Due to round-off errors and local discretization error the numerical and mathematical behavior is expected to be different. A simply example is the differential quotient as approximation of the derivative:

d = (f(x+h) - f(x)) / h;

If h is large, the linearization error is large. If h is small, the difference of the function evaluations can be such tiny, that the cancellation error dominates the result. Therefore the numerically determined derivative has a limited accuracy only, as a rule of thumb in the magnitude of sqrt(eps). Equivalent arguments appear for the two-sided differential quotient and any other scheme also.

Because all numerical ODE solvers are based on evaluating linearized derivatives, the limited accuracy is a fundamental effect, which cannot be avoided. Reducing the relative and absolute tolerances helps, but only until a certain limit, when the cancellation error dominates the linearization error and the accumulation of the round-off errors gets more important due to the higher number of steps.

However, an unexpected instability can be caused by a modelling error also. Did you validate the model exhaustively? How did you check the dynamic instability? Is the model continuously differentiable (I ask this, because in the past I saw so many users in this forum, who used integrands with discontinuities)?

0 Comments

Jan Simon

Jan Simon (view profile)

Contact us