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 cover advanced programming techniques and their application to aerospace and control engineering problems. The course will start with a review of the fundamental concepts of MATLAB and Simulink, including basic programming techniques, data structures, and control flow. In this course, students will then learn advanced programming techniques, such as advanced approaches to function creation, object-oriented programming, and training neural networks, and will apply these techniques to solve engineering problems in aerospace and control engineering. Students will learn how to use MATLAB and Simulink to model and simulate complex aerospace and control systems and will gain hands-on experience in designing and implementing control algorithms for aerospace systems.

Course Schedule:

This course is held by the Scientific Association of Aerospace Engineering Department at Amirkabir University of Technology and is scheduled to commence on August 3rd, 2023 and will span over 7 weeks, with classes held every Thursday from 14:00 to 18:00, totaling 28 hours of instruction.

Prerequisites:

Students should have a Basic knowledge of MATLAB and Simulink. Familiarity with aerospace and control engineering concepts, such as flight dynamics and control systems, is also recommended.

Course Objectives:

  • Gain a deep understanding of advanced programming techniques in MATLAB and Simulink
  • Learn and apply techniques for numerical analysis and symbolic math in MATLAB
  • Develop the ability to design and implement GUIs using App Designer
  • Learn how to model and simulate complex aerospace and control systems using MATLAB and Simulink
  • Learn how to use MATLAB and Simulink to analyze and visualize data from aerospace and control systems
  • Develop expertise in implementing control algorithms for aerospace systems
  • Gain practical experience in implementing intelligent control methods using NN
  • Gain an understanding of real-time simulation using Simulink Desktop Real-time
  • Gain practical experience in applying MATLAB and Simulink to real-world aerospace and control engineering problems

Course Format:

The course will be taught through a combination of lectures, discussions, 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 assignments and a final project. Grades will be based on the quality of the work submitted, as well as participation in class discussions and activities.

  • Assignments: 60 points
  • Final Project: 40 points
  • Attendance: 10 Points (Bonus)

Syllabus:

  • MATLAB Basics
    • Variables, Data Types, and Commonly Used Functions
    • Loops and Conditional Statements
    • Live Script
  • Advanced Topics in Arrays
    • Multidimensional Arrays and Array Indexing
    • Concatenate Arrays
    • Cells, Structures and Tables
  • Advanced Approaches to Function Creation
    • Review of Function Creation
    • Function Handle and Nested Functions
    • Functions with Variable Inputs and Outputs
  • Supplementary Materials in Plots
    • Basics Review including 2D and 3D Plots, Subplots, etc.
    • Multiple Axes
    • Creating Plots Using for Loop
    • Add Special Texts to Plots
    • Animated Plots
  • Numerical Analysis
    • Matlab and Simulink Solvers
    • Numerical Solution of System of Nonlinear Algebraic Equations
    • Numerical Solution of System of Differential Equations
  • Symbolic Math Toolbox
    • Analytical Derivation and Integration
    • Analytical Solution of Equations
    • Laplace Transform and Fourier Transform
    • Polynomials
    • Simplifying Expressions and Partial Fraction Expansion
    • Linearization of Nonlinear Equations and Derivation of System State Space Model
  • Curve Fitting Toolbox
  • Introduction to Object-oriented Programming in MATLAB
    • Overview of Basic Concepts of Object-Oriented Programming
    • Types of Properties and Methods in MATLAB
    • Introduction to the Concept of Inheritance
    • Defining Reference Classes with Inheritance from the Handle Class
  • Introduction to Neural Networks in MATLAB
    • Preparing Data for Neural Network Training
    • Neural Net Fitting Tool
    • System Identification of a Robot’s Dynamics using NARX NN
    • Designing an RBF Neural Network
  • 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
  • Simulink
    • Introduction to the Simulink Environment, Tabs and Settings
    • Familiarity and Working with Commonly Used Libraries and Simulink blocks (including aerospace toolboxes)
    • Import Input Data from MATLAB Workspace and Files
    • Saving Data from Simulink to the MATLAB Workspace and Files
    • Simulation of Linear and Nonlinear System Models
    • Familiarity with Subsystems and How to Create Masks
    • Familiarity with Composite Interfaces (Signals)
    • Simulate Simulink Model through MATLAB
    • 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
    • Example of Tuning Controller Parameters using a Heuristic Optimization Algorithm
    • Implementing RBF Neural Network-based Intelligent Control Method for Quadrotor (if Sufficient Time is Available)
    • 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
  • Familiarity with Simscape