Date: Mon, 16 Nov 1998 16:13:01 -0700 From: Jim Collins To: SSP-TL@LISTSERV.ARIZONA.EDU Hi Greg, Its not easy to answer your question exactly since we have not yet been provided with an overall mission timeline for the satellite. I've attached below the working version that I've been using (which assumes 15 to 20 minute two-way communication windows 2 to 3 times in each 24 hour period, and a mission life of 365 days). Following that are our draft operational algorithms. Hopefully those two documents will answer most of your questions. I will also send a copy of this to the Team Leader listserv as the Science Team "DILSAT" (Day in the Life of the Satellite) summary. Please understand that all this is still VERY PRELIMINARY (and please excuse the typos -- these are my internal working documents and they are not really intended for "public consumption". Also, in order to follow the nesting in the algorithms, you'll need to set your mail browser to read 80 columns without inserting spurious carriage returns. Note that to estimate a more accurate timeline (which should probably be done by someone at the project level), the following information would be needed from the other teams. (The overall timeline should probably also indicate the transmit and receive communication windows, since the frequency and timing of those will determine how much time should be reserved for trouble shooting and recovery procedures.) GNC: pointing verification algorithms, troubleshooting algorithms, pointing calibration targets and failure recovery procedures DCH: troubleshooting algorithms, subsystem communication verification algorithm, failure recovery procedures PGD: status measurement and reporting algorithm, troubleshooting algorithms, failure recovery procedures TTC: communication algorithm, troubleshooting algorithms, failure recovery procedures STI: laser communications algorithms (uplink and downlink), troubleshooting algorithms, failure recovery procedures ------------------------------------------------------------------------------- ESTIMATED SSP POST-LAUNCH MISSION TIMELINE All MET (mission elapsed time) figures are measured in days, hours and minutes after satellite deployment in the following format: day/hour:minute. MET 000/00:00 Satellite deployed. MET 000/00:05 Satellite autonomously activates. MET 000/00:0? Satellite transmits status information to ground station. MET 000/00:0? Ground Station attempts to successfully transmit HEALTH_CHECK command block to satellite. MET 000/00:0 Try to receive response from satellite. [Estimate: 5 days for reliable two-way communication to be established with the satellite] MET 005/??:00 Examine ancillary data stream from satellite and verify: 1) all COMM frequencies operational; 2) power levels nominal; 3) subsystem temperatures within safe ranges; 4) command block receipt and storage successful; 5) subsystem interface communications established. [Estimate: 20 days to achieve nominal operation of all satellite subsystems.] MET 025/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument at horizon. MET 025/??:01 Receive ancillary data stream from satellite and verify pointing. [Estimate: 5 days to establish reliable NAV commanding.] MET 030/??:00 At start of communications window send POWER_ON command block to science instrument. MET 030/??:01 Look for science instrument ancillary data packets. MET 030/??:05 If data packets not received resend POWER_ON command block to science instrument. MET 030/??:15 If data packets still not received send POWER_OFF command blocks to science instrument until communications window closes. [Estimate: 2 days for successful power-on of science instrument.] MET 032/??:00 At start of communications window send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. [Estimate: 7 days for successful test image downlink.] MET 039/??:00 At start of communications window send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. MET 039/??:01 Visually verify approaching storm visible in test image. MET 039/??:02 Send STRT_LIGHT_OBS command block to begin lightning observations. MET 039/??:03 Verify receipt of STRT_LIGHT_OBS command block. MET 039/??:08 Send DATA_DUMP command block to downlink lightning observation data. [Estimate: 14 days for successful lightning counting confirmation.] MET 053/??:00 At start of communications window send STRT_SPRIT_OBS command block to add sprite observation processing. MET 053/??:01 Visually verify approaching storm visible in test image. MET 053/??:03 Verify receipt of STRT_SPRIT_OBS command block. MET 053/??:08 Send DATA_DUMP command block to downlink lightning observation data. [Estimate: 10 days to achieve successful sprite detection processing without adversely affecting lightning counting processing. If Successful sprite detection processing not achieved after 10 days, abandon sprite detection for 60 days.] MET 063/??:00 Begin routine processing of lightning observation data with (nominal) concurrent Sprite detection data processing algorithm. [Take lightning data continuously for approx. 60 days. Note that Sprite observations occur concurrently with no additional timeline impact.] MET 123/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument CAL_STD_1 (calibration standard No. 1) photometry target. [Note: permissible MET for initial photometry observation is dependent on climatic season variation within satellite FOV and cannot be determined until approximate launch date established.] MET 123/??:01 Receive ancillary data stream from satellite and verify pointing. MET 123/??:05 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. [Estimate: 20 days to establish reliable NAV commanding. Anticipate repeated slews to standard pointing calibration target NAV_CAL_1 (the sun? the earth? the moon?) with subsequent slews to CAL_STD_1.] MET 143/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument to CAL_STD_1 photometry target. MET 143/??:01 Receive ancillary data stream from satellite and verify pointing. MET 143/??:03 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download image of sky FOV. MET 143/??:05 Visually verify correct FOV. MET 143/??:07 Send STRT_PHOTO_OBS command block. MET 143/??:15 Send DATA_DUMP command block to downlink photometry data. [Estimate: 5 days to obtain first photometric measurements of CAL_STD_1.] MET 148/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument at horizon. MET 148/??:01 Receive ancillary data stream from satellite and verify pointing. MET 148/??:02 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. MET 148/??:04 Visually verify horizon pointing. MET 148/??:06 Send STRT_LIGHT_OBS command block to begin lightning observations. MET 148/??:07 Verify receipt of STRT_LIGHT_OBS command block. MET 148/??:15 Send DATA_DUMP command block to downlink lightning observation data. MET 148/??:16 Begin routine processing of lightning observation data with (nominal) concurrent Sprite detection data processing algorithm. [Take lightning data continuously for approx. 10 days. Note that Sprite observations occur concurrently with no additional timeline impact.] MET 158/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument to first photometry target. MET 158/??:01 Receive ancillary data stream from satellite and verify pointing. MET 158/??:03 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download image of sky FOV. MET 158/??:05 Visually verify correct FOV. MET 158/??:07 Send STRT_PHOTO_OBS command block. MET 158/??:15 Send DATA_DUMP command block to downlink photometry data. MET 159/??:00 At start of communications window send NAV command blocks to satellite GNC system to point science instrument to photometry targets 2, 3 and 4. MET 159/??:01 Receive ancillary data stream from satellite and verify pointing to photometry target 2. MET 159/??:03 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download image of sky FOV. MET 159/??:10 Send DATA_DUMP command block to downlink photometry data. MET 159/??:12 Receive ancillary data stream from satellite and verify pointing to photometry target 3. MET 159/??:13 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download image of sky FOV. MET 159/??:18 Send DATA_DUMP command block to downlink photometry data. MET 159/??:20 Receive ancillary data stream from satellite and verify pointing to photometry target 4. MET 160/??:00 Send DATA_DUMP command block to downlink photometry data. MET 160/??:01 Examine data and images and insure that multi-target NAV ans SCI command blocks experienced correct autonomous execution on satellite. [Estimate: 10 days to establish reliable autonomous execution of multi-target NAV ans SCI command blocks.] MET 170/??:00 At start of communications window send NAV command blocks to satellite GNC system to point science instrument to 25% of remaining photometry targets. MET 170/??:01 Verify receipt of NAV command blocks. MET 170/??:02 Send STRT_PHOTO_OBS command blocks to obtain photometric observations of 25% of remaining photometry targets. MET 170/??:03 Verify receipt of SCI command blocks. [Note: Photometry observations will consist of 3 to 90 second integrations through 12 filters and 1 to 3 apertures. Each such sequence will be repeated 1 to 3 times.] [Note: Specific targets remain to be determined. Optimal time for acquiring these targets will depend on the specific orbital elements of the satellite and will not be known prior to launch. Approximate target acquisition windows can, however, be calculated when the approximate launch date is known. Approximately one half of the photometry targets must be observed prior to MET 182/12:00.] MET 170/??:?? Send DATA_DUMP command block to downlink photometry data. MET 171/??:?? Send DATA_DUMP command block to downlink photometry data. MET 172/??:?00 Send multi-target NAV ans SCI command blocks to repeat any necessary photometry observations. MET 172/??:?? Send DATA_DUMP command block to downlink photometry data. MET 173/??:?? Send DATA_DUMP command block to downlink photometry data. MET 174/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument at horizon. MET 174/??:01 Receive ancillary data stream from satellite and verify pointing. MET 174/??:02 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. MET 174/??:04 Visually verify horizon pointing. MET 174/??:06 Send STRT_LIGHT_OBS command block to begin lightning observations. MET 174/??:07 Verify receipt of STRT_LIGHT_OBS command block. MET 174/??:15 Send DATA_DUMP command block to downlink lightning observation data. MET 174/??:16 Begin routine processing of lightning observation data with (nominal) concurrent Sprite detection data processing algorithm. [Take lightning data continuously for approx. 6 days. Note that Sprite observations occur concurrently with no additional timeline impact.] MET 180/??:00 At start of communications window send NAV command blocks to satellite GNC system to point science instrument to 25% of remaining photometry targets. MET 180/??:01 Verify receipt of NAV command blocks. MET 180/??:02 Send STRT_PHOTO_OBS command blocks to obtain photometric observations of 25% of remaining photometry targets. MET 180/??:03 Verify receipt of SCI command blocks. MET 180/??:?? Send DATA_DUMP command block to downlink photometry data. MET 181/??:?? Send DATA_DUMP command block to downlink photometry data. MET 182/??:?00 Send multi-target NAV ans SCI command blocks to repeat any necessary photometry observations. MET 182/??:?? Send DATA_DUMP command block to downlink photometry data. MET 183/??:?? Send DATA_DUMP command block to downlink photometry data. MET 184/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument at horizon. MET 184/??:01 Receive ancillary data stream from satellite and verify pointing. MET 184/??:02 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. MET 184/??:04 Visually verify horizon pointing. MET 184/??:06 Send STRT_LIGHT_OBS command block to begin lightning observations. MET 184/??:07 Verify receipt of STRT_LIGHT_OBS command block. MET 184/??:15 Send DATA_DUMP command block to downlink lightning observation data. MET 184/??:16 Begin routine processing of lightning observation data with (nominal) concurrent Sprite detection data processing algorithm. [Take lightning data continuously for approx. 60 days. Note that Sprite observations occur concurrently with no additional timeline impact.] MET 244/??:00 At start of communications window send NAV command blocks to satellite GNC system to point science instrument to 25% of remaining photometry targets. MET 244/??:01 Verify receipt of NAV command blocks. MET 244/??:02 Send STRT_PHOTO_OBS command blocks to obtain photometric observations of 25% of remaining photometry targets. MET 244/??:03 Verify receipt of SCI command blocks. MET 244/??:?? Send DATA_DUMP command block to downlink photometry data. MET 245/??:?? Send DATA_DUMP command block to downlink photometry data. MET 246/??:?00 Send multi-target NAV ans SCI command blocks to repeat any necessary photometry observations. MET 246/??:?? Send DATA_DUMP command block to downlink photometry data. MET 247/??:?? Send DATA_DUMP command block to downlink photometry data. MET 248/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument at horizon. MET 248/??:01 Receive ancillary data stream from satellite and verify pointing. MET 248/??:02 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. MET 248/??:04 Visually verify horizon pointing. MET 248/??:06 Send STRT_LIGHT_OBS command block to begin lightning observations. MET 248/??:07 Verify receipt of STRT_LIGHT_OBS command block. MET 248/??:15 Send DATA_DUMP command block to downlink lightning observation data. MET 248/??:16 Begin routine processing of lightning observation data with (nominal) concurrent Sprite detection data processing algorithm. [Take lightning data continuously for approx. 60 days. Note that Sprite observations occur concurrently with no additional timeline impact.] MET 304/??:00 At start of communications window send NAV command blocks to satellite GNC system to point science instrument to 25% of remaining photometry targets. MET 304/??:01 Verify receipt of NAV command blocks. MET 304/??:02 Send STRT_PHOTO_OBS command blocks to obtain photometric observations of 25% of remaining photometry targets. MET 304/??:03 Verify receipt of SCI command blocks. MET 304/??:?? Send DATA_DUMP command block to downlink photometry data. MET 305/??:?? Send DATA_DUMP command block to downlink photometry data. MET 306/??:?00 Send multi-target NAV ans SCI command blocks to repeat any necessary photometry observations. MET 306/??:?? Send DATA_DUMP command block to downlink photometry data. MET 307/??:?? Send DATA_DUMP command block to downlink photometry data. MET 308/??:00 At start of communications window send NAV command block to satellite GNC system to point science instrument at horizon. MET 308/??:01 Receive ancillary data stream from satellite and verify pointing. MET 308/??:02 Send IMMED_IMAG and IMG_DWNLD command blocks to create and download test image. MET 308/??:04 Visually verify horizon pointing. MET 308/??:06 Send STRT_LIGHT_OBS command block to begin lightning observations. MET 308/??:07 Verify receipt of STRT_LIGHT_OBS command block. MET 308/??:15 Send DATA_DUMP command block to downlink lightning observation data. MET 308/??:16 Begin routine processing of lightning observation data with (nominal) concurrent Sprite detection data processing algorithm. [Take lightning data continuously until mission end at MET/365/23:59.] ******************************************************************************* SCIENCE INSTRUMENT ALGORITHM (POST-LAUNCH) ----------------------------------------------------------------------------- While (satellite is in orbit) execute MISSION OPERATIONS TASK execute COMMAND BUFFER UPDATE TASK execute DATA GATHERING TASK end while ----------------------------------------------------------------------------- MISSION OPERATIONS TASK While (satellite_status = post_deployment) determine satellite_functionality if (satellite_functionality = operational) then if ((ground_comm = transmit) and (satellite_comm = receive)) then While (new_command_blocks remain to be sent and verified) send new_command_block send duplicate_new_command_block end while else if ((ground_comm = receive) and (satellite_comm = transmit )) then verify receipt of any new_command_blocks by satellite receive other messages receive science data receive ancillary data else determine ground_comm determine satellite_comm end if determine validity of science data and ancillary data if ((science data = valid) and (ancillary data = valid)) then correlate photodiode_array index with geographical position insert science data in sequence_of_observations for all geographical positions count_flashes at geographical position store total_flash_count, geographical position, mission_elapsed_time end for end if compose new_command_block else if (satellite_functionality equals non_operational) then do nothing end if determine satellite_status end while ----------------------------------------------------------------------------- COMMAND BUFFER UPDATE TASK While (satellite_status = post_deployment) determine satellite_functionality if (satellite_functionality = operational) then check for new_command_block_interrupt if (new_command_block_interrupt detected) then timer = 0 while (timer < time_limit) poll for new_command_block end while if (new_command_block received) then store new_command_block in temporary location else if (new_command_block NOT received) then generate message: ERROR - new_command_block_interrupt detected but no new_command_block received end if end if if (new_command_block received) check for another new_command_block_interrupt if (new_command_block_interrupt detected) then timer = 0 while (timer < time_limit) poll for duplicate_new_command_block end while end if compare new_command_block and duplicate_new_command_block if (new_command_block = duplicate_new_command_block) then load new_command_block into command_buffer generate_message: new_command_block received and loaded else generate_message: new_command_block NOT received end if else if (new_command_block NOT received) then generate message: ERROR - new_command_block_interrupt detected but no duplicate new_command_block received end if else if (satellite_functionality equals non_operational) then do nothing end if determine satellite_status end while ----------------------------------------------------------------------------- DATA GATHERING TASK While (satellite_status = post_deployment) determine satellite_functionality if (satellite_functionality = operational) then look for new_command_block if (new_command_block detected) then determine mission_elapsed_time for all command_blocks check time_tag for each command if (time_tag = mission_elapsed_time) then parse out pieces of command if (science_mode = lightning) then check_pointing if (pointing = at_horizon) then determine flash_detection_threshold determine sprite_detection_threshold read_voltages_from_photodiode_array subtract_background for each photodiode in array if (voltage > flash_detection_threshold) store photodiode position and voltage in data_packet end if end for determine lightning_coordinates on photodiode_array if (number of lightning_coordinates > 0) then assemble data_packet send_interrupt to Data_and_Command_Computer place data_packet on Data_Bus for each photodiode in array if (voltage > sprite_detection_threshold) store photodiode position and voltage in sprite_array end if end for determine sprite_detection_probability if (sprite_detection_probability > 0.4) then assemble image_packet send_interrupt to Data_and_Command_Computer place image_packet on Data_Bus end if end if update_background_image else generate_message: ERROR - science_mode is lightning but at [MET] pointing at [pointing information] end if else if (science_mode = photometry) then check_pointing if (pointing not at_horizon) then pointing_error=360 read star_map for current_target_number from memory read pointing_error_threshold from memory do until pointing_error < pointing_error_threshold read_voltages_from_photodiode_array assemble image_packet compare image_packet with star_map calculate pointing_error if pointing_error > 5 generate_message: ERROR - pointing_error > 5 degrees at [MET]. We think we're pointing at [pointing information]. assemble image_packet send_interrupt to Data_and_Command_Computer place image_packet on Data_Bus generate_message: pointing image sent to Data_Bus at [MET] end if calculate pointing_correction transmit pointing_correction to Guidance_System end do read aperture_wheel_position from memory read integration_time from memory read number_of_repetitions from memory rotate_aperture_wheel for repetition = 1 to number_of_repetitions do timer = 0 for each filter total_counts = 0 do until timer = integration_time read_voltage_from_photometry_photodiode total_counts = total_counts + photodiode_counts end do store filter_number, photodiode_counts, timer, and repetition end for end for assemble data_packet send_interrupt to Data_and_Command_Computer place data_packet on Data_Bus else generate_message: ERROR - science_mode is lightning but at [MET] pointing at [pointing information] end if else if (science_mode = stand_by) then do nothing else generate_message: ERROR - science_mode unknown end if end if end for else if (satellite_functionality equals non_operational) then do nothing end if determine satellite_status end while