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