Real-Time Java AOCS Framework v1.0 API Specification

RtjAocsFramework.Factories
Class ControllerFactory

java.lang.Object
  |
  +--RtjAocsFramework.Factories.ControllerFactory
Direct Known Subclasses:
JbedSmmControllerFactory

public abstract class ControllerFactory
extends Object

Framework-level factory for the controller component. This factory creates the controller manager and the lists that will hold the controllers associated to each operational mode.

Copyright: see the Copyright Notice.

Version:
1.0
Author:
V. Cechticky/A. Pasetti (ETH-Zurich)

Constructor Summary
ControllerFactory()
          Create the controller manager and the the lists that will hold the controllers associated to each operational mode.
 
Method Summary
 ControllerList getControllerList(short mode)
          Return the controller list associated to mode mode.
 ControllerManager getControllerManager()
          Return the controller manager.
 Controller makeController(DataSource measurementInput, DataSource referenceInput, DataSink actuatorCommand, AbstractControlChannel compensator, RecoveryAction instabilityRecoveryAction)
          Construct, configure and return a minimal controller implementation.
 Controller makeController(DataSource measurementInput, DataSource referenceInput, DataSource feedforwardInput, DataSink actuatorCommand, DataSink compensatorOutput, DataSink controlError, AbstractControlChannel compensator, AbstractControlChannel measurementFilter, AbstractControlChannel referenceInputFilter, AbstractControlChannel feedforwardFilter, RecoveryAction instabilityRecoveryAction)
          Construct, configure and return a complete controller implementation.
 AbstractControlChannel makePID(double kp, double ki, double kd, double maximumDerivative, RecoveryAction recoveryAction)
          Creates a control block implementing a PID transfer function.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ControllerFactory

public ControllerFactory()
Create the controller manager and the the lists that will hold the controllers associated to each operational mode.

Method Detail

getControllerList

public ControllerList getControllerList(short mode)
Return the controller list associated to mode mode. The controller lists are constructed in the constructor.


getControllerManager

public ControllerManager getControllerManager()
Return the controller manager. The controller manager is constructed in the constructor.


makeController

public Controller makeController(DataSource measurementInput,
                                 DataSource referenceInput,
                                 DataSink actuatorCommand,
                                 AbstractControlChannel compensator,
                                 RecoveryAction instabilityRecoveryAction)
Construct, configure and return a minimal controller implementation. A minimal controller has a measurement and reference input, one single command output, and one compensator. It also has a recovery action that is associated to the failure arising from a detection of an instability.

Parameters:
measurementInput - the data source from which the measurements of the controller variable are taken
referenceInput - the data source from which the reference for the controller is taken
actuatorCommand - the data sink where the actuator command generated by the controller is written
compensator - the control channel implementing the compensator transfer function
instabilityRecoveryAction - the recovery action associated to the failure declared when an instability in the controller is detected

makeController

public Controller makeController(DataSource measurementInput,
                                 DataSource referenceInput,
                                 DataSource feedforwardInput,
                                 DataSink actuatorCommand,
                                 DataSink compensatorOutput,
                                 DataSink controlError,
                                 AbstractControlChannel compensator,
                                 AbstractControlChannel measurementFilter,
                                 AbstractControlChannel referenceInputFilter,
                                 AbstractControlChannel feedforwardFilter,
                                 RecoveryAction instabilityRecoveryAction)
Construct, configure and return a complete controller implementation.

Parameters:
measurementInput - the data source from which the measurements of the controller variable are taken
referenceInput - the data source from which the reference for the controller is taken
feedforwardInput - the data source from which the feedforward signal for the controller is taken
actuatorCommand - the data sink where the actuator command generated by the controller is written
compensatorOutput - the data sink where the output of the controller compensator is written
controlError - the data sink where the controller error is written
compensator - the control channel implementing the compensator transfer function
measurementFilter - the control channel implementing the transfer function to filter the measurements
referenceInputFilter - the control channel implementing the transfer function to filter the reference signal
feedforwardFilter - the control channel implementing the transfer function to filter the feedforward signal
instabilityRecoveryAction - the recovery action associated to the failure declared when an instability in the controller is detected

makePID

public AbstractControlChannel makePID(double kp,
                                      double ki,
                                      double kd,
                                      double maximumDerivative,
                                      RecoveryAction recoveryAction)
Creates a control block implementing a PID transfer function.

Parameters:
kp - proportional gain
kd - derivative gain
ki - integral gain
maximumDerivative - saturation value for the derivative term
recoveryAction - recovery action associated to all control channels used in the PID block

Real-Time Java AOCS Framework v1.0 API Specification

Real-Time Java AOCS Framework project home page

Automatic Control Laboratory, ETH Zuerich
Physikstrasse 3
CH-8092 Zuerich, Switzerland