Tfm2zp.java
/*
* $Id: Tfm2zp.java,v 1.11 2008/03/24 14:57:16 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>Transfer function matrix to zero-pole conversion
*
* @author koga
* @version $Revision: 1.11 $
* @see org.mklab.tool.control.Tfm2tf
* @see org.mklab.tool.control.Tfm2tfn
* @see org.mklab.tool.control.Tfm2ss
* @see org.mklab.tool.control.Zp2tfm
*/
public class Tfm2zp {
/**
* @param G 伝達関数行列
* @return {z, po, k} (ゼロ点, 極, ゲイン) (zero-pole representation)
*/
public static List<DoubleComplexMatrix> tfm2zp(DoubleRationalPolynomialMatrix G) {
int inputNumber = 1;
return tfm2zp(G, inputNumber);
}
/**
* 伝達関数行列が
*
* <pre><code> (s-z1)(s-z2)...(s-zn) G(s) = k --------------------- (s-p1)(s-p2)...(s-pn) </code></pre>
*
* であるシステムの<code>i</code>番目の入力から出力までのシステムの ゼロ点<code>z</code>、極<code>p</code>、ゲイン<code>k</code>を求めます。
*
* @param G 伝達関数行列
* @param inputNumber 入力番号
* @return {z, po, k} (ゼロ点, 極, ゲイン) (zero-pole representation)
*/
public static List<DoubleComplexMatrix> tfm2zp(DoubleRationalPolynomialMatrix G, int inputNumber) {
List<DoubleMatrix> tmp = Tfm2tf.tfm2tf(G, inputNumber);
DoubleMatrix NUM = tmp.get(0);
DoubleMatrix denominator = tmp.get(1);
return Tf2zp.tf2zp(NUM, denominator);
}
}