When you are new to something, it always helps to get a mental picture of how that something works. Since I learned Simulink over 10 years ago, I have developed my own mental model of Simulink models. Today I want to present a mental model for the three basic components in Simulink block diagrams, ports, blocks and signals.
A good mental model is something to which you are already familiar. I like to compare Simulink diagrams to programs written in a procedural language like MATLAB or C. My favorite is MATLAB, so that is usually how I think.
Ports are the input and output arguments for the function.
When I think about blocks, I think of them as algorithmic components of the programs. A block like the Gain or Product is a function that operates on inputs and produces an output.
Signal lines pass the value output from one block to the next block. I think of signal lines as the variables in a program.
With my intuition in hand, I read the generated code so I can compare and refine my mental model. The result is here:
In this case, I made a couple tweaks to the code generation settings for readability and interface.
What do you think?
How does your mental model of a block diagram compare to mine? Leave a comment here and share it with me.
2 CommentsOldest to Newest
this piece of snippet is short and crisp,need to post more mental model strutures in depth possible with optimization issuses.
“I think of signal lines as the variables in a program.”
I say the exact same thing every time I teach our Simulink courses :)