The University of Newcastle, Australia
Available in 2020

Course handbook


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.

Availability2019 Course Timetables


  • Semester 2 - 2020

Learning outcomes

On successful completion of the 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


This course is restricted to students in the Master of Professional Engineering (Mechatronics) 40063 program and those who meet the assumed knowledge. Students who are not enrolled in the MPE (Mechatronics) 40063 program, but can demonstrate the assumed knowledge, will only be able to enrol after discussion with the course co-ordinator.

Assumed knowledge

MCHA3400 Embedded Systems Engineering 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