DoubleContinuousSink.java
/*
* $Id: ContinuousSink.java,v 1.4 2008/06/08 04:28:11 koga Exp $
*
* Copyright (C) 2004 Koga Laboratory. All rights reserved.
*
*/
package org.mklab.tool.control.system.sink;
import org.mklab.nfc.matrix.DoubleMatrix;
import org.mklab.nfc.ode.SolverStopException;
import org.mklab.tool.control.system.continuous.DoubleBaseContinuousStaticSystem;
/**
* 連続信号を吸収するシステムを表すクラスです。
*
* @author Koga Laboratory
* @version $Revision: 1.4 $, 2005/06/15
*/
public abstract class DoubleContinuousSink extends DoubleBaseContinuousStaticSystem {
/**
* 新しく生成された<code>ContinuousSink</code>オブジェクトを初期化します。
*/
public DoubleContinuousSink() {
this(-1);
}
/**
* 新しく生成された<code>ContinuousSink</code>オブジェクトを初期化します。
*
* @param inputSize 信号の数
*/
public DoubleContinuousSink(final int inputSize) {
super(inputSize, inputSize);
setAutoSize(true);
setForcedSystem(false);
setHasDirectFeedthrough(true);
}
/**
* {@inheritDoc}
*/
@Override
public DoubleMatrix outputEquation(final double t, final DoubleMatrix u) throws SolverStopException {
return u.createClone();
}
/**
* @see org.mklab.tool.control.system.SystemOperator#setInputSize(int)
*/
@Override
public void setInputSize(final int inputSize) {
super.setInputSize(inputSize);
super.setOutputSize(inputSize);
}
/**
* @see org.mklab.tool.control.system.SystemOperator#setOutputSize(int)
*/
@Override
public void setOutputSize(final int outputSize) {
super.setOutputSize(outputSize);
super.setInputSize(outputSize);
}
}