The University of Newcastle, Australia
Not currently offered
Course code



10 units


6000 level

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.


Not currently offered.

This Course was last offered in Semester 2 - 2019.

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