# How can I avoid errors due to division by zero in Simulink?

480 visualizaciones (últimos 30 días)
MathWorks Support Team el 13 de Mzo. de 2012
Respondida: madhan ravi el 10 de En. de 2024
I am using a simple model in Simulink in which I use a division on two input values using a 'Divide' block.
During my simulation, there might be a zero value fed to the denominator of the 'Divide' block. This often causes a warning, an error message, or erroneous results.
How can I avoid these problems?

MathWorks Support Team el 13 de Feb. de 2023
Editada: MathWorks Support Team el 13 de Feb. de 2023
Numerical division by zero is a common issue in programming, and its exact solution often depends on the particular application. In almost all cases, the best approach is to change the model never feed zero to a division block.
Two possible workarounds are as follows. For clarity purposes, let us call the original signal in the denominator as 'u'.
1. Use a 'switch' block to pass 'eps' instead of 'u' to the 'divide' denominator. The 'switch' must only be activated when the signal 'u' is zero.
2. Use a 'MATLAB Function' block to implement a zero-avoiding condition, such as:
u + (u==0)*eps
or, if the signal 'u' is real:
u + eps*(0^u)
The second workaround is demonstrated in the attached model 'example_no_divide_by_zeroFcn'.
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Walter Roberson el 2 de Oct. de 2017
At one time, MATLAB Fcn Block was called "Embedded MATLAB Block"

Iniciar sesión para comentar.

### Más respuestas (1)

madhan ravi el 10 de En. de 2024
Or making the result to be zero when the divisor is zero using a Switch block
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Categorías

Más información sobre Simulink Functions en Help Center y File Exchange.

R2022b

### Community Treasure Hunt

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

Start Hunting!

Translated by