Press J to jump to the feed. Press question mark to learn the rest of the keyboard shortcuts
Log In
Found the internet!
Create an account to follow your favorite communities and start taking part in conversations.
Simulink
Posts
Communities

Posts about Simulink

r/Simulink
211 members
Welcome to r/Simulink
Visit
Subreddit Icon
r/matlab
50.1k members
Official MATLAB subreddit
Visit
Subreddit Icon
r/ControlTheory
18.2k members
Welcome to r/ControlTheory
Visit
Subreddit Icon
r/ElectricalEngineering
167k members
A place to ask questions, discuss topics and share projects related to Electrical Engineering.
Visit
r/EngineeringStudents
744k members
This is a place for engineering students of any discipline to discuss study methods, get homework help, get job search advice, and find a compassionate ear when you get a 40% on your midterm after studying all night.
Visit
r/ECE
161k members
A subreddit for discussion of all things electrical and computer engineering.
Visit
Subreddit Icon
r/arduino
577k members
An unofficial place for all things Arduino!
Visit
r/AskEngineers
388k members
Engineers apply the knowledge of math & science to design and manufacture maintainable systems used to solve specific problems. AskEngineers is a forum for questions about the technologies, standards, and processes used to design & build these systems, as well as for questions about the engineering profession and its many disciplines.
Visit
r/engineering
439k members
r/engineering is a forum for engineering professionals to share information, knowledge, experience related to the principles & practices of the numerous engineering disciplines. r/engineering is **NOT** for students to ask for guidance on selecting their major, or for homework / project help. Read the sidebar BEFORE posting.
Visit
Subreddit Icon
r/robotics
203k members
A place for discussing and learning about Robotics. This is a science aimed subreddit for robotics professionals, hobbyists and aficionados.
Visit
Subreddit Icon
r/Python
1.1m members
News about the programming language Python. If you have something to teach others post here. If you have questions or are a newbie use r/learnpython
Visit
Subreddit Icon
r/MechanicalEngineering
90.2k members
Welcome to r/MechanicalEngineering
Visit
r/FPGA
41.5k members
A subreddit for programmable hardware, including topics such as: * FPGA * CPLD * Verilog * VHDL
Visit
r/DSP
18.1k members
Welcome to r/DSP
Visit
Subreddit Icon
r/embedded
128k members
This sub is dedicated to discussion and questions about embedded systems: "a controller programmed and controlled by a real-time operating system (RTOS) with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints."
Visit
r/FSAE
26.1k members
Formula SAE and Formula Student are collegiate engineering competitions with over 500 participating schools that challenge teams of students to design and build a formula style car. The car is evaluated in automotive design and performance through a series of static and dynamic events which focus on safety, manufacturability and of course out right speed. Members on each team must develop and practice engineering, leadership, communication and marketing skills to be successful at competition.
Visit
211
Subreddit Icon
•Posted by1 month ago
View Comments
Play
0:00
0:00
Settings
Fullscreen
211
14 comments
13
13
Subreddit Icon
•Posted by1 month ago
  • r/matlab - Stepper Motor Model
1/2
Stepper Motor Modeles.mathworks.coms...
13
3 comments
47
Subreddit Icon
•Posted by1 month ago
47
3 comments
10
Subreddit Icon
•Posted by1 month ago
Post image
10
2 comments
13
Subreddit Icon
•Posted by2 months ago
Post image
13
3 comments
11
Subreddit Icon
•Posted by3 months ago

I'm an engineering student from Germany. Whenever we do data analysis or modeling of dynamic systems, the suggested tool by the professors will almost always be Matlab and Simulink, with Python (especially Jupyter Notebooks) gaining more relevance for data analysis recently.

Simulink is a tool for creating graphical block diagrams to model dynamic systems. A block diagram consists of blocks with inputs and outputs. Blocks can be connected to each other in any arrangement and can be selected from a library. Alternatively, a block can consist of any Matlab function. The results of the simulation can be read from an arbitrary point in the block diagram.

This can be used to model mechanical systems, electric circuits, signal processing, or any other dynamic system. Simulink converts the block diagram into a system of differential equations and solves them numerically using Matlab. Simulink is a very useful tool. Not only for modeling systems but also for communicating them to others with the graphical block diagram and for code generation. According to my professors and some research I did, Matlab and Simulink are commonly used in the industry.

The problem is, Matlab and Simulink are very proprietary. In episode 201 of "Talk Python to me", a Professor of Portland Community College stated that with the costs of Matlab licenses, the College could instead open up a new position to add a new lecture to the curriculum. Simulink is also a heavyweight application that can not be easily implemented on a new operating system or CPU architecture, and it has limited compatibility with external programming languages.

There are some existing alternatives to Simulink. For example proprietary products like Wolfram SystemModeler and Collimator (Python based) and some niche open-source software like OpenModelica and Xcos.

When it comes to data analysis and visualization, Python is a very capable alternative to proprietary software like Matlab or Mathematica. Jupyter Notebooks can be great interactive computational reports for education or to communicate data.

Wouldn't it be great to have a similar 'notebook' format for the interactive modeling of dynamic systems? This notebook format could be a derivative of the Jupyter Notebook. The notebook would consist of a graphical block diagram with markups. Blocks could be imported and shared or created as simple python functions. There could be a very simple base solver, that identifies the blocks that are only dependent on time, and then iterates over the system with a fixed time step. More sophisticated solvers could be developed and shared independently. For example, there could be a solver that utilizes SymPy and tries to solve the system symbolically.

The Jupyter Notebook supports different programming languages. Maybe that would be possible for the 'Block Diagram Notebook' as well. If blocks written in an external language could be included in the block diagram, the code generation step could be eliminated from the development process in some cases. if you are modeling a mechanical system with a microcontroller, the block diagram could include the original C code of the microcontroller, instead of some translated version of it.

I know that many people have asked for an open-source alternative to Simulink before. There is also the SimuPy Module by Benjamin Margolis, which can be used to create and simulate block diagrams programmatically in Python. However, it doesn't include a graphical block diagram.

I don't know if this idea is great, stupid, completely redundant, or viable. From my perspective and with the limited experience I have in engineering, an open-source notebook format like this would be very useful for education and possibly in the industry as well. Please give me your feedback.

11
8 comments