2. SALT
Infographic
Key features
1. 91 segment primary
mirror
1. tracker with payload
at the optical focus of
the primary mirror
1. CCAS tower housing
the Shack-Hartmann
wavefront sensor for
aligning the mirror
1. primary mirror
surface is tilted at
37° from the zenith
3. Telescope at twilight during
mirror alignment
Dome shutter open
and pointing at the
CCAS tower, the
Centre of Curvature
Alignment Sensor.
Telescope chamber
has been conditioned
to predicted outside
temperature at twilight
and louvres opened to
facilitate natural air
flow.
6. Primary Mirror Alignment System High Level Flowchart
Open Loop Alignment
1. Measure with Shack-Hartmann sensor
2. Process CCAS
3. MACS calculates GRoC
4. SPS positions mirror segments
5. repeat steps 1-4 until ...
Global Radius of Curvature Achieved
Set Sensor References: edge sensor heights & gaps zeroed
Closed Loop Control
1. Acquire height & gap
2. Process data with MARS producing tip, tilt & piston values
3. MACS verifies dGRoC and sends displacements
4. SPS postions mirror segments
5. process repeated automatically to maintain mirror alignment until next referencing is
required, (usually about every 5 days).
7. ★ Hexagonal mirror segments 1 to 91
★ Central Segment = Segment No. 1
★ Segments numbered in clockwise rings
from the centre to the outer ring
Segment Numbering System
8. ★ 6 Sensors per Segment (one per
side)
★ Sensors numbered as 1 to 6 on
segment, clockwise from top
★ Globally sensors numbered from 1
to 480
★ Arithmetically >>> 91 x 6 = 546
sensors
★ No sensors mounted on the outer
edge of outer ring where there are
no adjoining segments.
Sensor Numbering System
9. ★ 3 Sensor Segment Corner
config with complimentary
Transmitters and Receivers
on adjacent segment edges
★ 3 hardware channels per rack
module optimises cabling
★ Requires remapping of
hardware channels to sensor
numbers
★ The sensor number always
refers to the Receiver device
Sensor Configuration
11. Software Flowchart Description
1. Acquisition & identification of UDP datagrams.
2. Conversion of binary data to real values: Z, Y, Ro, hardware status.
3. Mapping of channel to sensor data.
4. Boundary limit checks: dead or disconnected sensors.
5. Sensor linearisation and application of temperature coefficients.
6. Adjust data averaging integration period according to temperature slope.
7. Average height/gap data to remove noise. Set sensor references for mirror
alignment maintenance.
8. Sensor outlier detection using a matrix derived rogue sensor detector.
9. Sensor drift detection using a threshold hysteresis comparator.
10. Matrix transform using singular value decomposition and least squares method.
The matrix transform calculates the required segment (actuator) displacements
to restore the primary mirror to its original spherical surface/shape.
11. Calculate tip, tilt and piston for the mirror segments and transmit to the mirror
alignment control system..
12. Visualisation tool for analysing primary mirror GRoC errors (on the HMI).
13. Data logger for system events and nonlinear and linear sensor data.
14. Logging of ICD data to MySQL database (by the network Event Logging
System).
14. Some features of the software architecture
1. Modular reusable software components
2. Subsystem communication using a publish & subscribe paradigm (DataSocket
& http server)
3. Data exchange using type-defined clusters
4. Multithreaded application separated into:
two data logging threads
hardware communications thread
sensor data acquisition & processing thread
control system command thread
system status broadcast thread
state machine & execution engine thread
1. Queues for inter-process data transfer
2. Common data such as config info updated via ODMs (functional variables)
3. Global variables only used for system reset & software exit
15. Data Structure: Arrays
Each parameter type for all sensors is contained in an array
480 elements long.
The advantages are:
1. simple processing of parameters in a For Loop
2. known paradigm that is already in use in the ICD of the
telescope control system.
The drawbacks of the 480x1 array method are:
1. the data processing loops would have to run 480 times in
memory
2. the 480 element arrays are not human reader friendly,
3. it is not easy to identify and correlate related data errors
4. they are difficult to navigate in terms of viewing complete
mirror segment data, and
5. a lookup table is required for processing the sensor
parameters by mirror segment number.
16. Data Processing for an Array
Software coding schematic for processing the data in a 480 x 1 array.
18. This Super Cluster data structure has the following defined properties:
1. There are 8 parameters defined for each sensor
2. These parameters, plus a validity flag, are encapsulated in a data structure known as a
cluster
3. There are 6 sensor clusters (s1 - s6) for each mirror segment
4. The 6 sensor clusters are encapsulated in a larger mirror segment cluster
5. The mirror segment clusters are then contained in an array with 91 elements (S1 - S91)
The advantages of the super cluster are:
1. extremely human reader friendly
2. all sensor data for one segment can be viewed and compared in a table-like form
3. navigating between mirror segments is simple
4. correlation of sensor number to segment side is obvious
5. additional parameters can be added or removed at anytime, requiring minimum changes
to the data processing structures in the software.
20. With the structure processed as in the diagram above the loop only needs to run 91
times whilst processing the sensor parameters simultaneously in identical parallel
reentrant functions.
The disadvantages of the super cluster are:
1. the case statement containing the 6 sensor data processors must be
duplicated 90 times when coding, however this is a once off event
2. initial coding is slightly more complex, but with proper planning pays off in the
long run
Although this data structure has a processing speed ~3 times longer than the array
and uses more memory, the benefits of ease of use in the data processing software
and it’s human friendly readability outweigh it’s more costly use of computer
resources.
21. Data Display in a Table
This is the super cluster
translated to a table on the
user interface, which in fact
is a direct mimic of the
data structure.
Left is a table of the mirror
actuator displacement
information ordered by
segment number.
22. Typical Software Coding Schematic
Typical coding diagram of a threshold hysteresis comparator that can be found on the web.
23. Threshold Hysteresis Comparator
Note: this implementation is specifically for the mirror segment edge sensor which, when the
primary mirror is perfectly aligned, should produce an output very close to zero.
The detector has two upper and two lower threshold limits which allows an input (for example,
a sensor parameter) to drift out of an inner limit without generating an invalid flag, but if it drifts
outside an outer limit it then becomes invalid. For the reverse, when the input crosses back
into the outer limit it remains invalid until the value falls inside the inner limit, the hysteresis
effect.
For simplicity, only one input parameter is provided for both the inner & outer limits, and is
negated for the lower limit, as generally tolerance limits are symmetrical to the nominal.
25. Software Design & Development by Deon Bester
with collaboration from Dr John Menzies, Hitesh Gajjar, Janus Brink, Deneys Maartens, Anthony Koeslag, Stephen Hulme, Paul Rabe
Paper: D Bester “Software architecture for processing a large data array”
CCAS Centre of Curvature Alignment System
DAQ Data Acquisition
GRoC Global Radius of Curvature
ICD Interface Control Definition
MACS Mirror Alignment Control System
ODM Object Data Manager
PMAS Primary Mirror Alignment System
MARS Mirror Alignment Reference System
SDP Sensor Data Processing
SHS Shack-Hartman (wavefront) Sensor
SPS Segment Positioning System
UDP User Datagram Protocol
ACRONYMS
Editor's Notes
Today I’d like to present my edge sensor project which I completed on the Southern African Large Telescope this year.
This is SALT, located in the Northern Cape province of South Africa, in the arid Karroo desert at an altitude of just over 1700m (~5700 feet).
Some key components of the telescope are:
91 segment primary mirror
tracker with payload at the optical focus of the primary mirror
CCAS tower housing the Shack-Hartmann wavefront sensor for aligning the mirror
primary mirror structure is tilted at 37 degrees from the zenith
Sensor Numbering System
6 sensors per segment (one per side)
Sensors numbered as 1 to 6 on segment, clockwise from top
Globally sensors numbered from 1 to 480
Arithmetically >>> 91 x 6 = 546 sensors
Sensors mounted on outer edge of outer ring where there are no adjoining segments are disabled in the system
Sensor Configuration
3 Sensor Segment Corner configuration with complimentary Transmitters and Receivers on adjacent segment edges
3 hardware channels per rack module optimises sensor cabling
Requires remapping of hardware channels to sensor numbers in the software
The allocated sensor number always refers to the Receiver device, as this is effectively the sensor, whilst the Transmitter acts as the reference signal.
Demonstration of the threshold hysteresis comparator.