Borrar filtros
Borrar filtros

What is the theoratical approach of the AutoScale function applied to the hinfsyn command for state space systems?

1 visualización (últimos 30 días)
Hello,
the hinfsyn command, which is based in the Robust Control Toolbox, contains an option called AutoScale. Unfortunately, the documentation only says 'Automatically scales the plant states, controls, and measurements to improve numerical accuracy.' but I wonder how the AutoScale function works for state space systems.
I am looking forward for the answers. Thanks in advance,
Max

Respuestas (1)

Shubham
Shubham el 6 de Feb. de 2024
Hello Max,
The hinfsyn command in MATLAB's Robust Control Toolbox is used to design an H-infinity optimal controller for a given state-space system. The AutoScale option within this command is a feature designed to improve the numerical accuracy of the synthesis process by scaling the system's states, controls, and measurements. Refer to the documentation link: https://in.mathworks.com/help/robust/ref/dynamicsystem.hinfsyn.html
While the detailed implementation of AutoScale is proprietary to MATLAB and not fully documented in public resources, the general concept of autoscaling in the context of control systems can be described as follows:
  1. State Scaling: Each state variable in the state-space model may have different physical units and magnitudes. State scaling involves normalizing these state variables so that they are dimensionless and of a similar order of magnitude. This can be done by multiplying the state vector by a diagonal scaling matrix, where each diagonal element corresponds to the inverse of a characteristic value (e.g., maximum value or standard deviation) of the respective state variable.
  2. Control Scaling: Similar to state scaling, control inputs can also vary widely in their magnitudes and units. Control scaling ensures that the control inputs used in the optimization process are of a similar order of magnitude, which can help the numerical solver work more effectively.
  3. Measurement Scaling: The outputs or measurements of the system are also scaled to be dimensionless and of a similar order of magnitude. This is particularly important when the measurements are used in the cost function of the optimization problem, as it ensures that no single measurement disproportionately affects the cost due to its scale.
The scaling process typically involves the following steps:
  • Identification of Scaling Factors: Determine appropriate scaling factors for the states, inputs, and outputs. These factors are typically chosen based on the ranges or standard deviations of these variables.
  • Pre-multiplication by Scaling Matrices: Apply the scaling factors to the system's matrices. For a state-space system represented by ( A, B, C, D ), where ( x' = Ax + Bu ) and ( y = Cx + Du ), the matrices are transformed using diagonal scaling matrices ( S_x, S_u, S_y ) for states, inputs, and outputs, respectively.
  • Transformation of the System: The original system is transformed into a scaled system by pre- and post-multiplying the appropriate matrices by their respective scaling matrices.
  • Controller Synthesis: The H-infinity synthesis is performed on the scaled system. The resulting controller is designed to work well with the scaled system.
  • Inverse Scaling of the Controller: Once the controller is designed for the scaled system, it needs to be transformed back so that it can be applied to the original, unscaled system. This involves inverse scaling of the controller matrices.
Autoscaling is particularly useful when dealing with systems that have parameters with large differences in magnitude, as it can help avoid numerical issues such as ill-conditioning, which can lead to inaccurate results or convergence problems during optimization.

Categorías

Más información sobre H-Infinity Synthesis en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by