DoubleDiscreteSink.java
/*
* $Id: DiscreteSink.java,v 1.3 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.discrete.DoubleBaseDiscreteStaticSystem;
/**
* 離散信号を吸収するシステムを表すクラスです。
*
* @author Koga Laboratory
* @version $Revision: 1.3 $, 2005/06/15
*/
public abstract class DoubleDiscreteSink extends DoubleBaseDiscreteStaticSystem {
/**
* 新しく生成された<code>DiscreteSink</code>オブジェクトを初期化します。
*/
public DoubleDiscreteSink() {
this(-1);
}
/**
* 新しく生成された<code>DiscreteSink</code>オブジェクトを初期化します。
*
* @param inputSize 信号の数
*/
public DoubleDiscreteSink(final int inputSize) {
super(inputSize, inputSize);
setAutoSize(true);
setForcedSystem(false);
setHasDirectFeedthrough(true);
}
/**
* {@inheritDoc}
*/
@Override
public DoubleMatrix outputEquation(final int k, 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);
}
}