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:
- 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.
- Item Attaway, Dorothy C. Matlab: a practical introduction to programming and problem-solving. Butterworth-Heinemann, 2013.
- Hossain, Eklas. MATLAB and Simulink Crash Course for Engineers. Springer Nature, 2022.
- Chapman, Stephen J. MATLAB programming for engineers. Brooks/Cole Publishing Co., 2015.
- Paluszek, Michael, and Stephanie Thomas. MATLAB machine learning recipes: a problem-solution approach. Berkeley: Apress, 2019.
- Kim, Phil. Matlab deep learning. With machine learning, neural networks and artificial intelligence, 2017.
- 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