Mastering Simulink: the Definitive Step-by-Step Introduction
4.1 (94 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,080 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Mastering Simulink: the Definitive Step-by-Step Introduction to your Wishlist.

Add to Wishlist

Mastering Simulink: the Definitive Step-by-Step Introduction

Your guide to Simulink, a simulation & software build tool to harness the power of Matlab and more!
4.1 (94 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,080 students enrolled
Created by David Nodland
Last updated 2/2016
Current price: $10 Original price: $95 Discount: 89% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 2 hours on-demand video
  • 3 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Create Simulink models and run simulations of physical systems.
  • Impress prospective employers with a strongly marketable skill
  • Demonstrate a strong practical knowledge of how to use Simulink for higher education (primarily simulation) and for industry (both simulation and large, scalable models that need to integrate with hardware)
  • Generate model-based software that you can tailor to run with your dSpace bench, Raspberry Pi, Arduino, LEGO MINDSTORMS, or custom hardware. I will teach you how to create models/software algorithms in Simulink and I will teach you how to use Simulink for embedded systems. You are responsible for familiarizing yourself with the toolbox/support package for the hardware that you choose (e.g., LEGO MINDSTORMS EV3, etc.).
View Curriculum
  • No prior Matlab or Simulink knowledge or experience is required.
  • You may install Matlab with Simulink in advance if you wish to (free trial available via, requires signup), but you are not required to install it prior to starting this course.
  • I will walk you through each step of the installation process for Matlab/Simulink as part of the course.

This course teaches Simulink, from the basics (beginning with installation) through advanced topics (Simulink for embedded systems). Here is a sampling of topics that I cover in this course:

  • Installation & Setup
  • Creating Models & Running Simulations
  • Basic Building Blocks
  • Libraries
  • Masks
  • Stateflow
  • Implementing Common Algorithms
  • Troubleshooting, Errors, & Diagnostics
  • Datatypes & Sample Rates
  • Solvers
  • Simulink for Embedded Systems
  • Integration with m-file Scripts
  • Signal Routing, Naming, & Logging
  • And more!

By the time you complete this course, you will be well-prepared to effectively use Simulink for a range of tasks, including the following:

  • Running simulations for school projects
  • Academic research
  • Compiling models to embedded systems/controlling hardware

You will also have the skills to understand and resolve some common challenges with Simulink and to build systems that scale well for use in commercially viable systems. Some years ago while I was in graduate school, I switched from running my simulations in Matlab scripts to using Simulink - and became far more productive! I found that I was able to focus on what I wanted to simulate instead of getting bogged down in the implementation. Prior to switching to Simulink, I spent a lot of time debugging my simulation scripts. After switching to Simulink, I spent far less time debugging and was free to focus on getting results. For the past several years in industry, I've continued to use Simulink for both simulation and embedded hardware, and it has hugely enhanced my productivity. I hope that you too experience huge gains in productivity as you use Simulink, and I intend for this course to help you achieve those gains!

*Disclaimer: after publishing this course, I learned that a book entitled "Mastering Simulink" was published a number of years ago. This course is not associated with that book.

Who is the target audience?
  • This course was designed primarily for students in science, technology, and engineering, as well as for practicing professionals in a technical field who wish to build their skill sets, but anyone with a desire to learn to use Simulink is welcome to join the course. Simulink is a technical software package, so you will find the material in this course easier to master if you have some prior technical background.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
17 Lectures
Start Here
2 Lectures 04:41

Welcome to Simulink! This lecture introduces the course and summarizes some of the key topics in Simulink that you'll master as you progress through the course.

Preview 01:57

This optional lecture will walk you through installing and activating Matlab and Simulink, in case you don't have them installed already. If you don't have a license, don't worry! I'll work through the course using the trial version of Matlab/Simulink with a trial license so that your results with a trial installation will be identical to mine. Also, it's fine if you have an older version of Simulink - I'll occasionally mention points on which the latest version of Simulink differs from older versions so that you can easily keep up with the course and replicate my results as you learn to master Simulink!

Installing Matlab & Simulink
The Basics
13 Lectures 01:30:56

This lecture will help you get started with Simulink by creating and simulating a very simple model. If you already have some experience with Simulink, never fear! Later lectures will soon delve into more advanced material for you.

Preview 03:54

This lecture introduces some really common logic blocks that nearly everyone will end up using on a regular basis when creating Simulink models.

Introduction to Common Logic Blocks

In this lecture, I will introduce you to input blocks in Simulink. I will also create a slightly more sophisticated model using a couple of kinds of inputs to demonstrate how certain input blocks (and a few common blocks) can be put to good use. The example model will demonstrate, among other things, how to use switches, clocks, and conditional logic, how to create a simple memory element, and how to graphically viewing simulation outputs.


This lecture will give you a brief introduction to Simulink's output blocks, with a simple simulation to highlight a few features of one of my favorite output blocks, the scope. I'll also talk through use cases for some other common outputs.


In this lecture, you'll be introduced to using datatypes in Simulink, the basics of datatype inheritance, sample rates and times and how to transition between them, and triggered and enabled subsystems.

Datatypes, Inheritance, Sample Rates, & Selected Subsystems

After this session, you'll know how to select and configure a solver that will give you a good balance between simulation speed and fidelity.


In this lecture, I'll show you how to deal with some common Simulink modeling challenges by walking you through a set of example models with extended explanations. Specifically, this lecture will help you work with memory and signal management.

Solutions to Common Simulink Modeling Challenges

This lecture will help you use if-statements, boolean logic, and switches to execute logic based on different circumstances or strategies of your choosing.

Implementing Frequently-Used Logic: If Statements, Boolean Logic, & Switches

In this session, you'll learn about Simulink libraries - why they exist, how to use them, how to modify them, and how they can make your logic more modular, more maintainable, and more scalable.


This lecture introduces masks, which you can use to make your logic more aesthetically appealing, user-friendly, and re-usable. Masks help make your models look more professional, and create a level of abstraction between the user and the underlying logic, so that users can easily treat some (or all) of your model as a black box.


This lesson will introduce you to Matlab scripting for Simulink, using m-files for model callbacks and mask callbacks, and using Matlab scripting in Matlab function blocks. Integrating m-file scripting with Simulink can help you make your models more scalable, and Matlab function blocks are often helpful for quick, proof-of-concept work in simulation.

Matlab Scripting for Simulink

In this session, you'll learn some tips and tricks for signal routing to make your model more human-readable. You'll also learn how to name signals, how to log signals during simulation for plotting afterward, and how to add testpoints for embedded software.

Signal Routing, Naming, & Logging

This lesson will help give you an understanding of what to do when things go wrong. It is frustrating, when learning to use new software, to encounter errors and warnings. This lesson introduces you to some common error, warning, and diagnostic messages, shows you how to control those messages, and explains what causes (and how to prevent) some of the more common error and warning messages, so that you can effectively accomplish your work without issues.

Errors, Troubleshooting, and Diagnostics
Advanced Topics
2 Lectures 14:05

Ready to learn to use Stateflow? You'll learn how to use Stateflow in this session, with a simple Stateflow example compared against if-else logic and switching logic from a previous session. Stateflow is a fantastic tool for state-based logic, and once you've completed this lesson, you'll be well equipped to be productive with Stateflow.

Preview 09:45

In this lesson, you'll learn to use Simulink to create code that you can then run on hardware, such as a Raspberry Pi, Lego Mindstorms robot, and more. Forget hand-coding! Simulink's visual approach to algorithm development will allow you to create high-quality code for your hardware while focusing on your software strategies, rather than on coding syntax.

Simulink for Embedded Systems
About the Instructor
David Nodland
4.1 Average rating
93 Reviews
1,080 Students
1 Course
Simulink Instructor

Hi, I'm David. I earned my bachelor's and master's degrees in electrical engineering and enjoy applying my engineering knowledge to real-world problems.

I used Matlab in my bachelor's degree program and then encountered Simulink when I began my graduate studies. I've been using Simulink almost daily ever since, both throughout my time in graduate school and over the course of the last several years that I've spent working in industry.

Working with Simulink has been very rewarding and I've enjoyed having the opportunity to apply this amazing tool to the daily challenges that I encounter as an engineer. I hope that you find Simulink as helpful and as practical as I have found it.

I've used Simulink for system identification, control systems design, general software algorithms, artificial intelligence, physical system (plant) modeling and simulation, signal processing and more. Once you start with Simulink, you will be amazed by how many problems it can help you solve!