Real-Time Java AOCS Framework v1.0 API Specification

Package RtjAocsFramework.SequentialDataProcessing

This package defines the classes that support the implementation of sequential data processing chains.

See:
          Description

Class Summary
AbstractControlChannel The AbstractControlChannel class is the interface through which any control channel is seen by its clients.
AdderBlock AdderBlock is a simple adder output.
BiasScalingCompensator Control block to implement a compensation of a unit output.
ControlChannelBlock ControlChannelBlock is an abstract class that acts as base class for all concrete control blocks.
ControlChannelSuperBlock ControlChannelSuperBlock is a container component for a control channel super-block.
D_Block Control block to implement a derivative action with a fixed gain.
DifferenceBlock DifferenceBlock is a simple subtraction.
I_Block Control block to implement an integrator with a fixed gain.
LimitBlock Control block to implement a simple limited output.
MatlabBlock Control block acting as a container for an autocode procedure generated by Matlab.
MatlabGainBlock Control block acting as a container for an autocode procedure generated by Matlab.
MatlabIntegratorBlock Control block acting as a container for an autocode procedure generated by Matlab.
P_Block Control block to implement a pure gain.
PassThruBlock Control block to implement a simple pass thru block.
SplitterBlock Control block to implement a signal splitter.
TestCaseControlChannel_1 The test case "TestCaseControlChannel_1" verifies the configuration and functionality of the P_Block component.
TestCaseControlChannel_2 The test case "TestCaseControlChannel_2" verifies the configuration and functionality of the I_Block component.
TestCaseControlChannel_3 The test case "TestCaseControlChannel_3" verifies the configuration and functionality of a serial connection of two I_Block components.
TestCaseControlChannel_4 The test case "TestCaseControlChannel_4" verifies the configuration and functionality of a parallel connection of P_Block and I_Block components.
TestCaseControlChannel_5 The test case "TestCaseControlChannel_5" verifies the configuration and functionality of a serial connection of I_Block and D_Block components.
TestCaseControlChannel_6 The test case "TestCaseControlChannel_6" verifies the configuration and functionality of a parallel connection of two I_Block components encapsulated in a super block.
TestCaseControlChannel_7 The test case "TestCaseControlChannel_7" verifies the configuration and functionality of a serial connection of the I_Block component encapsulated in a super block and the P_Block component jointly encapsulated into other super block.
TestCaseControlChannel_8 The test case "TestCaseControlChannel_8" verifies the configuration and functionality of the PID component automatically generated from the Xmath simulation environment.
TestCaseMatlabBlock_1 The test case "TestCaseMatlabBlock_1" verifies the configuration and functionality of the gain component automatically generated from the Matlab/Simulink simulation environment.
TestCaseMatlabBlock_2 The test case "TestCaseMatlabBlock_2" verifies the configuration and functionality of the integrator component automatically generated from the Matlab/Simulink simulation environment.
TestCaseXmathUcbBlock_1 Test case for SequentialDataProcessing Class.
TestCaseXmathUcbBlock_2 The test case "TestCaseXmathUcbBlock_2" verifies the configuration and functionality of the integrator component automatically generated from the Xmath simulation environment.
TestCaseXmathUcbBlock_3 The test case "TestCaseXmathUcbBlock_3" verifies the configuration and functionality of the ramp generator component automatically generated from the Xmath simulation environment.
TorqueToThrusterPrototype Control block to perform the conversion from torque requests around the spacecraft axes to the on- and delay-times for the set of six thrusters of the AOCS prototype.
TwoByTwoMatrixBlock Control block to implement 2x2 matrix.
XmathUcbBlock Control block acting as a container for a UCB-style autocode procedure generated by Xmath.
XmathUcbFirstTest First Test block acting as a container for a UCB-style autocode procedure generated by Xmath.
XmathUcbIntegratorTest Integrator Test block acting as a container for a UCB-style autocode procedure generated by Xmath.
XmathUcbPidBlock PID control block acting as a container for a UCB-style autocode procedure generated by Xmath.
XmathUcbRampTest Ramp Test block acting as a container for a UCB-style autocode procedure generated by Xmath.
 

Package RtjAocsFramework.SequentialDataProcessing Description

This package defines the classes that support the implementation of sequential data processing chains.

In the AOCS Framework, data that are passed through several consecutive stages of processing will be said to go through a sequential data processing chain. As an example of a sequential data processing chain consider the processing of the raw data collected by a sensor:
· conversion from raw data to engineering units ;
· correction for sensor misalignments;
· bias correction;
· transformation from sensor to satellite reference frame

In another example, an attitude controller processes the raw attitude measurement as follows:
· filtering of raw data to remove the measurement noise;
· filtering to cut off frequencies that might excite solar panel oscillations;
· passage through a controller to compute the control torque.
Once again, each bullet can be seen as representing a processing stage in a sequential data processing chain. In the previous examples, each processing stage was single-input-single-output. However, a processing chain can also include multi-input-multi-output stages.

In considering the implementation of sequential processing chains, a trade-off must be made between generality and complexity: the most general implementation is also the most complex and the simplest implementation cannot cover all cases of processing chains. In the framework, they are implemented using the Control Channels concept. Control channels are based on the composite pattern and cover the most general case of multi-input-multi-output processing stages linked in any arbitrary manner.

A sequential processing chain is made up of inter-connected and nested processing blocks. The term control channel block (or simply  block) is used to designate a processing block that cannot be further decomposed into lower level processing blocks. Blocks chains can be nested within higher-level blocks called superblocks. Superblocks and blocks can be freely mixed in processing chains as in the example in the figure in the next page.

The implementation of sequential data processing chains in the AOCS Framework is discussed in greater detail in a dedicated technical note.
 
 


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