Arroyo::ideal_tip_tilt_mirror< aperture_type > Class Template Reference
#include <tip_tilt_mirror.h>
Inheritance diagram for Arroyo::ideal_tip_tilt_mirror< aperture_type >:
List of all members.
Detailed Description
template<class aperture_type>
class Arroyo::ideal_tip_tilt_mirror< aperture_type >
A template class to represent an idealized tip tilt mirror. One may instantiate this class using an aperture type.
The dynamic model does not include effects of hysteresis, and uses a constant angular velocity approximation to the mirror orientation. (i.e. the mirror moves at constant angular velocity towards its commanded position until it reaches that position, and then stops).
This class inherits three_frame through planar_optic, and the orientation of this three frame represents the mirror orientation at a particular time. This time is held as a data member within the class. The class also holds a three vector that represents the latest mirror orientation command.
The member function
ideal_tip_tilt_mirror::update(three_vector & tv, double & timestamp)
may be used to issue a new command to the tip tilt mirror. To effect an update, this member function computes the current orientation of the mirror at the time given by the timestamp passed to this function. It then moves the aperture to this orientation, sets the internal timestamp to that passed into the update function, and sets the latest mirror command to be equal to the three_vector passed into the update function.
Attempting to issue an update command with a timestamp that predates that stored within the class is an error.
To perform the transformation on a wavefront using the transform member function, the class uses the mirror angular velocity to interpolate to the timestamp of the wavefront in the transform member function. The transformation is performed by applying the aperture transformation, and then adjusting the wavefront three_frame to account for the reflection.
Supplying a wavefront with a timestamp that preceeds the internal one is an error.
Constructor & Destructor Documentation
|
|
Null constructor.
Protected because instances must be initialized |
|
|
Construct from iofits object |
Member Function Documentation
|
|
Get the mirror angular velocity
Angular velocity is in rad/sec |
|
|
Get the mirror orientation at the timestamp provided.
If the timestamp provided preceeds the mirror timestamp, an error is thrown |
|
|
Get the last mirror orientation command |
|
|
Get the mirror timestamp
Timestamp is in seconds |
|
template<class aperture_type> |
| void Arroyo::ideal_tip_tilt_mirror< aperture_type >::print |
( |
ostream & |
os, |
|
|
const char * |
prefix = "" |
|
) |
const [virtual] |
|
|
|
A template member function to perform transform on both float and double instantiations of wavefront. This is necessary because there is no mechanism in C++ for virtual template member functions. |
|
|
Set the mirror angular velocity
Angular velocity is in rad/sec |
|
|
Update the mirror orientation. Starting at the timestamp provided, the mirror will start to move towards a new orientation at a constant angular velocity. The new orientation is defined by orientation_command, which is a three_vector orthogonal to the plane of the mirror. |
Member Data Documentation
|
|
The angular velocity, in rad/sec.
|
|
|
The current orientation command, specified using a vector normal to the surface of the mirror. The mirror is heading towards this orientation with constant angular velocity. |
|
|
The mirror orientation timestamp. At this time, the mirror orientation is defined by the aperture three frame. |
The documentation for this class was generated from the following file:
Generated on Thu Nov 29 17:16:37 2007 for arroyo by
1.3.9.1