# hinfsynOptions

Option set for hinfsyn and mixsyn

## Description

example

opts = hinfsynOptions creates the default option set for the hinfsyn and mixsyncommands.

example

opts = hinfsynOptions(Name,Value) creates an option set with the options specified by one or more Name,Value pair arguments.

## Examples

collapse all

Use the LMI-based algorithm to compute an ${\mathit{H}}_{\infty }$-optimal controller for a plant with one control signal and two measurement signals. Turn on the display that shows the progress of the computation. Use hinfsynOptions to specify these algorithm options.

Load the plant and specify the numbers of measurements and controls.

ncont = 1;
nmeas = 2;

Create an options set for hinfsyn that specifies the LMI-based algorithm and turns on the display.

opts = hinfsynOptions('Method','LMI','Display','on');

Alternatively, start with the default options set, and use dot notation to change option values.

opts = hinfsynOptions;
opts.Method = 'LMI';
opts.Display = 'on';

Compute the controller.

[K,CL,gamma] = hinfsyn(P,nmeas,ncont,opts);
Minimization of gamma:

Solver for linear objective minimization under LMI constraints

Iterations   :    Best objective value so far

1
2                 223.728733
3                 138.078240
4                 138.078240
5                  74.644885
6                  48.270221
7                  48.270221
8                  48.270221
9                  19.665676
10                  19.665676
11                  11.607238
12                  11.607238
13                  11.607238
14                   4.067958
15                   4.067958
16                   4.067958
17                   2.154349
18                   2.154349
19                   2.154349
20                   1.579564
21                   1.579564
22                   1.579564
23                   1.236726
24                   1.236726
25                   1.236726
26                   0.993344
27                   0.993344
28                   0.949319
29                   0.949319
30                   0.949319
31                   0.945761
32                   0.944062
33                   0.941244
34                   0.941244
35                   0.940602
***                 new lower bound:     0.931667

Result:  feasible solution of required accuracy
best objective value:     0.940602
guaranteed absolute accuracy:  8.94e-03
f-radius saturation:  0.404% of R =  1.00e+08

Optimal Hinf performance:  9.397e-01

## Input Arguments

collapse all

### Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'Display','on','RelTol',0.05

General Options

collapse all

Display optimization progress and generate report in the command window, specified as the comma-separated pair consisting of 'Display' and 'on' or 'off'. The contents of the display depend on the value of the 'Method' option.

For 'Method' = 'RIC', the display shows the range of performance targets (gamma values) tested. For each gamma, the display shows:

• The smallest eigenvalues of the normalized Riccati solutions X = X/γ and Y = Y/γ

• The spectral radius rho(XY) = max(abs(eig(XY)))

• A pass/fail (p/f) flag indicating whether that gamma value satisfies the conditions X ≥ 0, Y ≥ 0, and rho(XY) < 1

• The best achieved gamma performance value

For 'Method' = 'LMI', the display shows the best achieved gamma value for each iteration of the optimization problem. It also displays a report of the best achieved value and other parameters of the computation.

Example: opts = hinfsynOptions('Display','on') creates an option set that turns the progress display on.

Optimization algorithm that hinfsyn or mixsyn uses to optimize closed-loop performance, specified as the comma-separated pair consisting of 'Method' and one of the following:

• 'RIC' — Riccati-based algorithm. The Riccati method is fastest, but cannot handle singular problems without first adding extra disturbances and errors. This process is called regularization, and is performed automatically by hinfsyn and mixsyn unless you set the 'Regularize' option to 'off'. With regularization, this method works well for most problems.

When 'Method' = 'RIC', the additional options listed under Riccati Method Options are available.

• 'LMI' — LMI-based algorithm. This method requires no regularization, but is computationally more intensive than the Riccati method.

When 'Method' = 'LMI', the additional options listed under LMI Method Options are available.

• 'MAXE' — Maximum-entropy algorithm.

When 'Method' = 'MAXE', the additional options listed under Maximum-Entropy Method Options are available.

Example: opts = hinfsynOptions('Mathod','LMI') creates an option set that specifies the LMI-based optimization algorithm.

Relative accuracy on the optimal H performance, specified as the comma-separated pair consisting of 'RelTol' and a positive scalar value. The algorithm stops testing γ values when the relative difference between the last failing value and last passing value is less than RelTol.

Example: opts = hinfsynOptions('RelTol',0.05) creates an option set that sets the relative accuracy to 0.05.

Riccati Method Options

collapse all

Absolute accuracy on the optimal H performance, specified as the comma-separated pair consisting of 'AbsTol' and a positive scalar value.

Example: opts = hinfsynOptions('AbsTol',1e-4) creates an option set that sets the absolute accuracy to 0.0001.

Automatic plant scaling, specified as the comma-separated pair consisting of 'AutoScale' and one of the following:

• 'on' — Automatically scales the plant states, controls, and measurements to improve numerical accuracy. hinfsyn always returns the controller K in the original unscaled coordinates.

• 'off' — Does not change the plant scaling. Turning off scaling when you know your plant is well scaled can speed up the computation.

Example: opts = hinfsynOptions('AutoScale','off') creates an option set that turns off automatic scaling.

Automatic regularization of the plant, specified as the comma-separated pair consisting of 'Regularize' and one of:

• 'on' — Automatically regularizes the plant to enforce requirements on P12 and P21 (see hinfsyn). Regularization is a process of adding extra disturbances and errors to handle singular problems.

• 'off' — Does not regularize the plant. Turning off regularization can speed up the computation when you know your problem is far enough from singular.

Example: opts = hinfsynOptions('Regularize','off') creates an option set that turns off regularization.

Limit on controller gains, specified as the comma-separated pair consisting of 'LimitGain' and either 'on' or 'off'. For continuous-time plants, regularization of plant feedthrough matrices D12 or D21 (see hinfsyn) can result in controllers with large coefficients and fast dynamics. Use this option to automatically seek a controller with the same performance but lower gains and better conditioning.

LMI Method Options

collapse all

Limit on norm of LMI solutions, specified as the comma-separated pair consisting of 'LimitRS' and a scalar factor in the range [0,1]. Increase this value to slow the controller dynamics by penalizing large-norm LMI solutions. See [1].

Reduced-order synthesis tolerance, specified as the comma-separated pair consisting of 'TolRS' and a positive scalar value. hinfsyn computes a reduced-order controller when 1 <= rho(R*S) <= TolRs, where rho(A) is the spectral radius, max(abs(eig(A))).

Maximum-Entropy Method Options

collapse all

Frequency at which to evaluate entropy, specified as a real scalar value. For more information, see the Algorithms section of hinfsyn.

## Output Arguments

collapse all

Options for the hinfsyn or mixsyn computation, returned as an hinfsyn options object. Use the object as an input argument to hinfsyn or mixsyn. For example:

[K,CL,gamma,info] = hinfsyn(P,nmeas,ncont,opts);

## References

[1] Gahinet, P., and P. Apkarian. "A linear matrix inequality approach to H-control." Int J. Robust and Nonlinear Control, Vol. 4, No. 4, 1994, pp. 421–448.

## Version History

Introduced in R2018b