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