Tfn2tf.java

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

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


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

  /**
   * 伝達関数が
   * 
   * <pre><code> num(s) g(s) = ------ den(s) </code></pre>
   * 
   * であるシステムの伝達関数の分子多項式の係数<code>num</code>と 分母多項式の係数<code>den</code>を求めます。
   * 
   * @param g 伝達関数
   * @return {num, den} (伝達関数の分子多項式の係数と分母多項式の係数) transfer function
   */
  public static List<DoubleMatrix> tfn2tf(DoubleRationalPolynomial g) {
    DoubleMatrix numerator = g.getNumerator().getCoefficients().flipLeftRight();
    DoubleMatrix denominator = g.getDenominator().getCoefficients().flipLeftRight();
    return new ArrayList<>(Arrays.asList(new DoubleMatrix[] {numerator, denominator}));
  }
}