ABB Corporate Research

ABB demonstrates the feasibility of MPC for a highly dynamic motion control system on a standard AC500 PLC using FORCES

Many motion control applications in robotics and manufacturing have extremely high positioning speed and accuracy requirements only achievable with aggressive automatic control strategies implemented at high sampling rates. Energy-efficient control is also a major concern in manufacturing processes.

For applications where mechanical parts should move along predefined time-varying trajectories, model predictive control is a natural choice because it can make use of future trajectory information to deliver higher performance controllers. In addition, objectives such as energy minimization can be explicitly incorporated in the controller design.

In this project, ABB used embotech’s tools to design a model predictive controller for a linear belt drive on a two dimensional plotter. The code was deployed on the same standard AC500 programmable logic controller (PLC) that currently implements conventional non model-based control methods.


The control problem was not standard: The belt drive exhibited nonlinear effects arising from friction and other position dependent parameters that required an adaptive control strategy. In particular, the dynamical model which is used for the predictions had to be updated at every sampling instant. In addition to standard torque actuation constraints, the rate of change of torque commands also had to be constrained to prevent exciting the resonant frequency of the belt.

These two factors increased the complexity of the optimization problem to be solved at each sampling instant. The application required control update rates in the low millisecond range to follow the reference trajectory according to specifications. The target control platform that should run the optimal controller was a standard resource-constrained ABB AC500 PLC.

The optimization task, which was several orders of magnitude more numerically intensive than the existing controller, had to be seamlessly integrated in the PLC design flow.


The flexibility of FORCES Pro allowed researchers at ABB to formulate a time-varying optimal control problem with actuator rate constraints and other system constraints. They defined an interface to a parameter estimator that would modify the optimization problem depending on the belt position and friction estimates. The strong support for parametric problems of FORCES Pro enabled an efficient and quick implementation.

embotech’s tools were successfully integrated in the internal ABB AC500 PLC control development toolchain. The optimization functionality could be easily interfaced to other system components to simulate the behaviour of the model predictive controller.

After tuning the controller, optimization code was automatically generated and deployed on the PLC without any further modification. This allowed to test the controller directly on the belt drive. Additional design iterations could be completed in under 5 minutes using the FORCESPRO code generation tool.


The Challenge

Implement non-standard predictive controller on a basic PLC. The dynamic model is updated frequently.

The Solution

FORCES Pro generated a controller for the target platform, with strong support for parametric problems.

The Results

  • Controller met real-time requirements on simple PLC
  • Same platform as the previous conventional controller
  • Robust and time-optimal control behaviour


  • The optimal controller ran in real-time on the resource-constrained PLC: by customizing the optimization method to the time-varying motion control problem the MPC controller task could be executed in the low millisecond range meeting the real-time target.
  • The time-varying MPC controller was robust to parameter changes: by allowing parts of the optimization problem to change during runtime, the linear MPC controller could successfully handle nonlinear effects in the belt drive. The MPC controller also achieved time optimal trajectories without any modification.
  • Tuning effort to handle system constraints was significantly reduced: by explicitly considering constraints in the control problem formulation, the effort and conservativeness when tuning the controller was dramatically reduced. This resulted in a more aggressive controller and fewer design iterations.