Borrar filtros
Borrar filtros

Problem passing sine wave through if statement

1 visualización (últimos 30 días)
Matthew Tieu
Matthew Tieu el 23 de Nov. de 2022
Comentada: Matthew Tieu el 24 de Nov. de 2022
To see the output of an if statement over time, I wanted to pass a sine wave as input into "if block" and display it on the scope. Unfortunately, I cannot run the program since I keep receiving an error which says:
"Port 1 of 'Loops_in_Simulink/If statement' can only be connected to an action subsystem and may not be connected to more than one action subsystem".
However, as seen from the block diagram, there is only one input which is the sine wave. This simulink program is not a homework task. Could someone inform me what I am doing wrong? Thanks in advance.

Respuesta aceptada

Paul el 23 de Nov. de 2022
Hi Matthew,
The "Port 1" referenced in the error message is the first output port, not the input port. All output ports from the If block have to feed If-Action subsytems, and the outputs of those have go through a Merge block. The If and If-Action blocks implement this pseudocode:
IF cond1 Then
ElseIF cond2 Then
Action 2
The model in the Question is missing the Action for the conditions.
I think the model was trying to implement functionality similar to this model:
Here, the top If-Action system outputs 1 and the bottom outputs -1. The If-Action subsystems can also accept inputs.
Of course, this model could be more easily implemented by sending the output of the Sine block into a Sign block, but I thought it would be worthwhile to illustrate how the If/If-Action works.
  1 comentario
Matthew Tieu
Matthew Tieu el 24 de Nov. de 2022
Thanks for the clarification about how the if statement works.

Iniciar sesión para comentar.

Más respuestas (0)


Más información sobre Simulink Functions 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!

Translated by