Advanced MATLAB and Simulink Course

Course Description:

This course is designed for students who already have some experience with MATLAB and Simulink and want to take their skills to the next level. The course will start with a review of the fundamental concepts of MATLAB and Simulink, including basic programming techniques, data structures, and flow control. This course covers a comprehensive array of advanced topics including advanced function creation, plotting techniques, data transfer, object-oriented programming, machine learning, optimization methods, Simulink fundamentals and advanced features, real-time simulation and GUI design using App Designer. Students will gain expertise in utilizing MATLAB and Simulink for complex problem-solving, modeling, and simulation tasks across various engineering disciplines.

Course Schedule:

This course is held by the Scientific Association of Mechanical Engineering Department at Amirkabir University of Technology and is scheduled to commence on August 8th, 2024 and will span over 6 weeks, with classes held every Thursday and Friday from 17:00 to 19:00, totaling 24 hours of instruction.

Prerequisites:

Students are expected to possess a basic understanding of MATLAB and Simulink. Nevertheless, a brief review will be conducted on fundamental concepts.

Course Format:

The course will be taught through a combination of lectures and hands-on projects. Students will have access to MATLAB and Simulink software for the duration of the course and will be expected to complete assignments and projects outside of class time.

Grading Policy:

Students will be assessed through a combination of a final project and a final exam. Grades will be based on the quality of the work submitted.

  • Attendance: 10 Points
  • Homework: 50 points
  • Final Exam: 40 points

The certificate of attendance will be awarded to all registered students. However, the certificate of achievement will only be granted to those who attain a minimum of 70 points.

Text Books:

  1. Magrab, Edward B.; Azarm, Shapour. An engineer's guide to MATLAB: With Applications from Mechanical, Aerospace, Electrical, Civil and Biological Systems Engineering. Prentice Hall PTR, 2010.‏
  2. Item Attaway, Dorothy C. Matlab: a practical introduction to programming and problem-solving. Butterworth-Heinemann, 2013.‏
  3. Hossain, Eklas. MATLAB and Simulink Crash Course for Engineers. Springer Nature, 2022.‏
  4. Chapman, Stephen J. MATLAB programming for engineers. Brooks/Cole Publishing Co., 2015.‏
  5. Paluszek, Michael, and Stephanie Thomas. MATLAB machine learning recipes: a problem-solution approach. Berkeley: Apress, 2019.
  6. Kim, Phil. Matlab deep learning. With machine learning, neural networks and artificial intelligence, 2017.
  7. Al-Malah, Kamal. Machine and Deep Learning Using MATLAB: Algorithms and Tools for Scientists and Engineers. Wiley & Sons, Inc, 2023.

Syllabus:

  • MATLAB Basics
    • Variables, Data Types, and Commonly Used Functions
    • Loops and Conditional Statements
    • Live Script
    • Cells and Structures
  • Advanced Approaches to Function Creation
    • Review of Function Creation
    • Function Handle and Nested Functions
    • Functions with Variable Inputs and Outputs
  • Advanced Plotting
    • Basics Review including 2D and 3D Plots, Subplots, etc.
    • Tiled Chart Layout
    • Multiple Axes
    • LaTeX Markup
    • Animations
  • Data Transfer with MATLAB Input/Output Functions
  • Introduction to Object-oriented Programming in MATLAB
    • An Overview of Basic Concepts of Object-Oriented Programming
    • Types of Properties and Methods in MATLAB
    • User-Defined Classes and Objects
  • Introduction to Machine Learning with MATLAB
    • An Overview of Machine Learning and Neural Networks
    • Linear Regression with Gradient Descent and Feature Normalization
    • Neural Net Fitting Tool
    • System Identification using Neural Networks
  • Introduction to Optimization with MATLAB
    • An Overview of Optimization Methods
    • Multidimensional Optimization
    • Linear Programming
    • Quadratic Programming
    • Particle Swarm Optimization Algorithm (PSO)
    • Optimal Path Planning with Obstacle Avoidance using PSO
  • Simulink
    • Review of Simulink Environment, Tabs and Settings
    • Familiarity and Working with Commonly Used Libraries and Simulink blocks
    • Simulation of Linear and Nonlinear System Models
    • Familiarity with Subsystems and How to Create Masks
    • Familiarity with Composite Interfaces
    • Simulate Simulink Model through MATLAB script
    • Familiarity with Stateflow and Modeling the Flight Manager System of a Quadrotor for Changing Flight Modes
    • 6DOF Simulation of a Quadrotor in Simulink
    • Familiarity with Control System Tuner
    • Real-time Simulation in Simulink using Simulink Desktop Real-time
    • Generating C/C++ Code from Simulink Model using Embedded Coder and Software-in-the-Loop (SIL) Simulation
  • Introduction to Design GUI using App Designer
    • Introduction to the App Designer Environment
    • Designing a Sample GUI to Change Parameters, Run Simulations, and Plot the Results
  • Introduction to Simscape