# dhinf

離散時間システムのH無限大設計

## 呼び出し手順

    [AK,BK,CK,DK,(RCOND)] = dishin(A,B,C,D,ncon,nmeas,gamma)

## パラメータ

A

  n x n システム状態行列 A.

B

  n x m システム入力行列 B.

C

  p x n システム出力行列 C.

D

  p x m システム行列 D.

ncon

  制御入力の数. m >= ncon >= 0, p-nmeas >= ncon.

nmeas

  観測量の数. p >= nmeas >= 0, m-ncon >= nmeas.

gamma

  `H無限大` 設計で使用されるパラメータ gamma. gammaはコントローラが存在できるよう十分に大きいことが仮定されます. gamma >= 0.

AK

  n x n コントローラ状態行列 AK.

BK

  n x nmeas コントローラ入力行列 BK.

CK

  ncon x n コントローラ出力行列 CK.

DK

  ncon x nmeas コントローラ行列 DK.

RCOND

  行列の条件数の逆数の推定値を含むベクトル. この値は, コントローラを計算する際に解くリカッチ方程式の条件数の逆数として推定 されるものです. ([1]のアルゴリズムに関する記述を参照.)

  RCOND

    (1) は行列 R3の条件数の逆数を含む,

  RCOND

    (2) は行列 R1 - R2'*inv(R3)*R2の条件数の逆数を含む

  RCOND

    (3) は行列 V21の条件数の逆数を含む,

  RCOND

    (4) は行列St3の条件数の逆数を含む,

  RCOND

    (5) は行列 V12の条件数の逆数を含む,

  RCOND

    (6) は行列 Im2 + DKHAT*D22の条件数の逆数を含む,

  RCOND

    (7) はXリカッチ方程式の条件数の逆数を含む,

  RCOND

    (8) はZリカッチ方程式の条件数の逆数を含む.

## 説明

`[AK,BK,CK,DK,(RCOND)] = dhinf(A,B,C,D,ncon,nmeas, gamma)` H無限大 (準)最適 n状態コントローラ行列

        | AK | BK |
    K = |----|----|,
        | CK | DK |

を以下の離散時間システム用に計算する場合,

        | A  | B1  B2  |   | A | B |
    P = |----|---------| = |---|---|,
        | C1 | D11 D12 |   | C | D |
        | C2 | D21 D22 |

gamma の値を指定すると, コントローラの計算に使用されます. ただし, B2 の列数は制御入力の数(ncon)と同じ, C2の行数は観測量の数(nmeas)と同じとなります.

## 参考文献

[1] P.Hr. Petkov, D.W. Gu and M.M. Konstantinov. Fortran 77 routines for Hinf and H2 design of linear discrete-time control systems. Report99-8, Department of Engineering, Leicester University, April 1999.

## 例

    //example from Niconet report SLWN1999-12
    //Hinf
    A=[-0.7  0    0.3  0   -0.5 -0.1
       -0.6  0.2 -0.4 -0.3  0    0
       -0.5  0.7 -0.1  0    0   -0.8
       -0.7  0    0   -0.5 -1    0
        0    0.3  0.6 -0.9  0.1 -0.4
        0.5 -0.8  0    0    0.2 -0.9];
    B=[-1 -2 -2  1  0
        1  0  1 -2  1
       -3 -4  0  2 -2
        1 -2  1  0 -1
        0  1 -2  0  3
        1  0  3 -1 -2];
    C=[ 1 -1  2 -2  0 -3
       -3  0  1 -1  1  0
        0  2  0 -4  0 -2
        1 -3  0  0  3  1
        0  1 -2  1  0 -2];
    D=[1 -1 -2  0  0
       0  1  0  1  0
       2 -1 -3  0  1
       0  1  0  1 -1
       0  0  1  2  1];

    ncon=2
    nmeas=2
    gam=111.30;
    [AK,BK,CK,DK] = dhinf(A,B,C,D,ncon,nmeas,gam)

## 参照

- hinf
- h_inf