MATLAB Simulink: IF statement logic

3 次查看(过去 30 天)
General question, if I have code looking like this:
for x=0:500
if x <= 250
y = 2*x+1;
else
y= 3*x+2;
end
end
How could I have the same logic using blocks/systems in Simulink? Whenever I try switches and If blocks, I get an error like "Input Ports (1) of __ are involved in the loop.
I can share my model if it is helpful. But if someone could show me how to put this code in terms of a Simulink system, I'm sure I could figure it out. FYI, if it isn't obvious, x is my input and y is my output.
Thank you!

采纳的回答

Monisha Nalluru
Monisha Nalluru 2020-11-18
For above code,
We can use Constant block to generate x and then save corresponding y values using To Workspace block based on condition using Switch block
You can also use input and outport but donot keep the port in loop. Fetch all the data once and start processing the data
As an example I am attaching the model
Also if you want data to be taken in serial then use Unbuffer block after the constant block

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Naming Conventions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by