WOLFRAM SYSTEM MODELER
ModelInversionControlPlaceholder for the ModelInversionControl example model, available on the Wolfram SystemModeler website. |
![]() |
SystemModel["EducationExamples.MechanicalEngineering.ModelInversionControl"]
This is a placeholder model. It requires the PlanarMechanics library.
The following documentation is taken from the main example of the downloadable model. Once you have downloaded all the model dependencies, the model can be downloaded here.
This model shows an inversion-based controller that is used to control a hoist crane.
The crane in this example is based on the CraneCrab example in the PlanarMechanics library.
In order to get the full experience of this example, you need the following:
These pages show an overview of the example. For the full example, open the accompanying notebook ModelInversionControl.nb.
The hoist crane is modeled using the PlanarMechanics Modelica library. Force is applied to a prismatic joint that pushes a crab along a one-dimensional beam. Attached to the crab is a dampened revolute joint that connects to the load through a stiff rod.
In the controller, a filtered pulse is used as a reference signal to control the position of the load. Using a constrained inverse block, the force that should be applied to the crab can be calculated from the reference signal.
To simulate the model, perform this step:
Explore how the crane is positioned relative to its reference position by examining the plot that is automatically displayed after simulating the model. The first variable describes the actual position of the crane, while the second describes the reference position that is input into the controller.
PlanarMechanics and Multibody systems have visualizers to show what a real-world system would look like.
To show a 3D animation of the model, follow the steps below:
Changing parameters for the simulation can be done rapidly in Simulation Center. The crane_I parameter determines the "real" inertia of the load. The model used inside the controller also has an inertia parameter that determines what the controller expects the load inertia to be. When the real and the expected inertia differ from each other, the controller will not be able to accurately predict what force to apply to the crane.
Try changing the inertia for the load and see how this affects the controller:
You should now see the graph below: