Tfm2tfn.java

/*
 * $Id: Tfm2tfn.java,v 1.9 2008/01/14 09:06:52 koga Exp $
 *
 * Copyright (C) 2004 Koga Laboratory. All rights reserved.
 */
package org.mklab.tool.control;

import org.mklab.nfc.matrix.DoubleRationalPolynomialMatrix;
import org.mklab.nfc.scalar.DoubleRationalPolynomial;


/**
 * 伝達関数行列(有理多項式行列)から伝達関数(有理多項式)に変換するクラスです。
 * 
 * <p>Transfer function matrix to transfer function conversion
 * 
 * @author koga
 * @version $Revision: 1.9 $
 * @see org.mklab.tool.control.Tfm2tf
 * @see org.mklab.tool.control.Tfm2ss
 * @see org.mklab.tool.control.Tfm2zp
 * @see org.mklab.tool.control.Tfn2tfm
 */
public class Tfm2tfn {

  /**
   * @param G 伝達関数行列
   * @return 伝達関数 (transfer function matrix)
   */
  public static DoubleRationalPolynomial tfm2tfn(DoubleRationalPolynomialMatrix G) {
    int inputNumber = 1;
    int outputNumber = 1;
    return tfm2tfn(G, inputNumber, outputNumber);
  }

  /**
   * @param G 伝達関数行列
   * @param inputNumber 入力番号
   * @return 伝達関数 (transfer function)
   */
  public static DoubleRationalPolynomial tfm2tfn(DoubleRationalPolynomialMatrix G, int inputNumber) {
    int outputNumber = 1;
    return tfm2tfn(G, inputNumber, outputNumber);
  }

  /**
   * 伝達関数行列が
   * 
   * <pre><code> [G11(s) G12(s) .... G1m(s)] [G21(s) ] G(s) = [ Gji(s) ] [ ] [ Gpm(s)] </code></pre>
   * 
   * である多入力多出力システムの<code>i</code>番目の入力から <code>j</code>番目の出力までの伝達関数を求めます。
   * 
   * @param G 伝達関数行列
   * @param inputNumber 入力番号
   * @param outputNumber 出力番号
   * @return 伝達関数 (transfer function)
   */
  public static DoubleRationalPolynomial tfm2tfn(DoubleRationalPolynomialMatrix G, int inputNumber, int outputNumber) {
    return G.getElement(outputNumber, inputNumber);
  }
}