Main Content

Stewart Platform Controller Tuning

This example shows how to use Simulink® Design Optimization™ to optimize the position controller parameters of a Stewart platform. The Stewart platform is modeled using Simscape™ Multibody™ blocks.

The model includes a vertical PID position controller and the gains are tuned to limit the maximum forces and track position with minimum overshoot and 0.05 second rise time.

Open the stewart_demo model using the command below and run the simulation. The simulation produces an unoptimized vertical position (Z direction) of the Stewart platform.

open_system('stewart_demo')

Double-click the Scope block to view the unoptimized position, the step input, and the controller's force actuation signal.

Double-click the down-arrow at the lower left corner of the Stewart Platform System block to view the details of the Stewart Platform. Note that this model uses the Simscape Multibody blockset.

Double-click the Desired Response or the Max Forces blocks to view the constraints on the Stewart platform. The Max Forces block defines the constraints on the actuation signal of the controller.

You can launch the Response Optimizer using the Apps menu in the Simulink toolstrip, or the sdotool command in MATLAB®. You can launch a pre-configured optimization task in the Response Optimizer by first opening the model and by double-clicking on the orange block at the bottom of the model. From the Response Optimizer, press the Plot Model Response button to simulate the model and show how well the initial design satisfies the design requirements.

There are two plots representing the Z Position and Leg Forces of the platform.

We start the optimization by pressing the Optimize button from the Response Optimizer. The plots are updated to indicate that the design requirements are now satisfied.

The plots are now updated with the optimized position of the Stewart platform and the force actuation signal.

% Close the model.
bdclose('stewart_demo')