Real-time Optimisation for Embedded Systems

10 Units

This course prepares the engineer with advanced skills in the area of real-time optimisation for embedded systems. The course covers mathematical programming problem descriptions, necessary and sufficient conditions of optimality, duality, algorithm design and real-time considerations including early termination and warm-starting. The course covers special cases of linear programming, quadratic programming, convex programming and general smooth non-linear programming, slack variables and soft constraints as they arise in engineering problems. It also covers non-linear least squares problems with application to parameter estimation in dynamic systems, and integer programming and mixed-integer programming and their application to multi-agent task planning. The course has a particular emphasis on embedded systems applications where accuracy can be traded for speed.

Faculty Faculty of Engineering and Built Environment
School School of Engineering
Availability Semester 2 - 2018 (Callaghan)
Learning Outcomes

On successful completion of this course, students will be able to:

  1. Translate code from Matlab to C for real-time testing
  2. Formulate a mathematical programming problem from real-world problems
  3. Discern between the many possible formulations of a problem in order to increase the efficacy of available solvers
  4. Formulate the dual optimisation problem
  5. Introduce slack-variables and quantify the effect of their violation
  6. Formulate and solve non-linear least squares problems
  7. Formulate mixed-integer programming problems

This course will cover:

1.     Real-time applications and programming considerations

2.     Mathematical programming problem descriptions

3.     Necessary and sufficient conditions for optimality

4.     Duality

5.     Algorithm design including warm/hot starting

6.     Real-time considerations for engineering applications

7.     Convex programming

8.     Non-convex programming including non-linear least-squares

9.     Slack-variables and soft-constraints

10.   Integer and mixed-integer programming

11.   Early termination and warm-starting procedures

Assumed Knowledge ELEC3730 Digital and Computer Electronics 2 or equivalent
Assessment Items
  • Tutorial / Laboratory Exercises: Laboratory 1
  • Tutorial / Laboratory Exercises: Laboratory 2
  • Tutorial / Laboratory Exercises: Laboratory 3
  • Tutorial / Laboratory Exercises: Laboratory 4
  • Tutorial / Laboratory Exercises: Laboratory 5

Contact Hours



Face to Face On Campus 4 hour(s) per Week for Full Term


Face to Face On Campus 4 hour(s) per Week for Full Term

Timetable 2018 Course Timetables for MCHA6300
Got a question?

Contact us for advice on how to apply, enrol, or for more information.

Ready to start?

Once you’ve read our Application guide you’re ready to apply