# time_id

SISO 最小二乗同定

## 呼出し手順

    [H [,err]]=time_id(n,u,y)

## パラメータ

n

  伝達関数の次元

u

  以下のどれか

  u1

    システムへの入力ベクトル

  "impuls"

    y はインパルス応答

  "step"

    yはステップ応答.

y

  応答ベクトル.

H

  y(1)==0 の場合は分母がn次，分子がn-1次の有理関数, y(1)<>0 の場合, 分母と分子が n次の有理関数.

err

  `||y - impuls(H,npt)||^2`, ただし, `impuls(H,npt)` は `H`のインパルス応答の最初の `npt`個の係数です.

## 説明

離散時間応答の同定. `y`が厳密にプロパーの場合(`y(1)=0`) , `time_id`は線形方程式に関する以下の最小二乗解 を計算します: `coeff(Den,n):=1` を拘束条件とする `Den*y-Num*u=0`. `y(1)~=0`の場合, アルゴリズムはまず解のプロパーな部分を計算した後,y(1)を 解に追加します.

## 例

    z=poly(0,'z');
    h=(1-2*z)/(z^2-0.5*z+5)
    rep=[0;ldiv(h('num'),h('den'),20)]; //インパルス応答
    H=time_id(2,'impuls',rep)
    //  flts および uを用いる同じ例
    u=zeros(1,20);u(1)=1;
    rep=flts(u,tf2ss(h));        //インパルス応答
    H=time_id(2,u,rep)
    //  step response
    u=ones(1,20);
    rep=flts(u,tf2ss(h));     //ステップ応答.
    H=time_id(2,'step',rep)
    H=time_id(3,u,rep)    // uを入力として指定, 高次過ぎる系を指定

## 参照

- imrep2ss
- arl2
- armax
- frep2tf