Zp2tfm.java

/*
 * $Id: Zp2tfm.java,v 1.12 2008/03/25 01:12:40 koga Exp $
 *
 * Copyright (C) 2004 Koga Laboratory. All rights reserved.
 */
package org.mklab.tool.control;

import java.util.List;

import org.mklab.nfc.matrix.DoubleComplexMatrix;
import org.mklab.nfc.matrix.DoubleMatrix;
import org.mklab.nfc.matrix.DoubleRationalPolynomialMatrix;


/**
 * 極とゼロ点の集合から伝達関数行列(有理多項式行列)に変換するクラスです。
 * 
 * <p>Zero-pole to transfer function matrix conversion
 * 
 * @author koga
 * @version $Revision: 1.12 $
 * @see org.mklab.tool.control.Zp2tf
 * @see org.mklab.tool.control.Zp2tfn
 * @see org.mklab.tool.control.Zp2ss
 * @see org.mklab.tool.control.Tfm2zp
 */
public class Zp2tfm {

  /**
   * 極<code>p</code>、ゼロ点<code>z</code>,ゲイン<code>k</code>である1入力多出力システム
   * 
   * <pre><code> (s-z1)(s-z2)...(s-zn) G(s) = k --------------------- (s-p1)(s-p2)...(s-pn) </code></pre>
   * 
   * の伝達関数行列を返します。
   * 
   * @param zeros ゼロ点の集合
   * @param poles 極の集合
   * @param k ゲイン
   * @return 伝達関数行列 (transfer function matrix)
   */
  public static DoubleRationalPolynomialMatrix zp2tfm(DoubleComplexMatrix zeros, DoubleComplexMatrix poles, DoubleMatrix k) {
    List<DoubleMatrix> ans = Zp2tf.zp2tf(zeros, poles, k);
    DoubleMatrix NUM = ans.get(0);
    DoubleMatrix den = ans.get(1);
    return Tf2tfm.tf2tfm(NUM, den);
  }

}