Why sum block outputs value half of the input?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
shubham aadhe
el 3 de Ag. de 2020
Comentada: shubham aadhe
el 3 de Ag. de 2020
Hello,
I am new to simulink and trying to understand why this system always gives the output half of the input.
If you calculate the the output
it should be 1 - 0 = 1
next step, 1 - 1 = 0
next step, 1 - 0 = 1
and so on.
How to understand the current behavior of the system?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/340624/image.jpeg)
2 comentarios
Roger J
el 3 de Ag. de 2020
Looks like you have an algebraic loop. See the following
https://www.mathworks.com/matlabcentral/answers/95310-what-are-algebraic-loops-in-simulink-and-how-do-i-solve-them#answer_104662
To get the alternating 1 and zero, try adding a delay before the ”-” input on your adder.
Respuesta aceptada
Walter Roberson
el 3 de Ag. de 2020
There is no implied delay between blocks, and you have configured a continuous solver.
Your system is equivalent to asking
solve(1-x==x)
which has a solution of 1/2
You need to break the algebraic loop, by using one of the methods of introducing a delay between the output of the difference and the time the difference gets fed back as input. Look in blogs.mathworks.com for the topic of breaking algebraic loops
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Operations en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!