functiondesignCraneControllerWithObserver
Design pole assignment controller and observer for an overhead crane
Information
This example demonstrates how to use pole placement function assignPolesMI to design a pole placement controller and an observer also using assignPolesMI as well. Function assignPoles is based on the Schur form of the state space matrix an also allows partial poles shifting [1].
An observer can be designed by applying assignPolesMI to the dual system (A', C', B'). The results, which are controller feedback matrix, observer feedback matrix, system model for usage in observer and a simple pre filter for tracking are saved to MATLAB files which can be used in ModelicaController library. It is also shown how to linearize a model of a crane trolley system [1]. The linear model is then used as a base for controller design.
References
- [1] Varga A. (1981):
- A Schur method for pole assignment.
IEEE Trans. Autom. Control, Vol. AC-26, pp. 517-519.
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| String | modelName | "Modelica_Controller.Examples.Components.Pendulum_small" | name of the model to linearize |
| Complex[4] | pa | {-3.5 + 0*j, -3.5 + 0*j, -3.5 - 0.5*j, -3.5 + 0.5*j} | assigned system poles |
| Complex[4] | pob | {-10 + 0*j, -10 + 0*j, -10 + 0*j, -10 + 0*j} | assigned observer poles |
| String | fileName | DataDir + "craneController_small.mat" | file name for results |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:,:] | K_ob | feedback matrix pole assignment controller | |
| Real[:,:] | K_pa | feedback matrix pole assignment controller | |
| Real[:,:] | M_pa | pre filter LQ controller |