1296 lines
45 KiB
C
1296 lines
45 KiB
C
/*
|
||
* AttCtrlMain.h
|
||
* Created: 2022/11/4 11:02:40
|
||
* Author: wangzk zhengmengxing
|
||
*/
|
||
#ifndef _ATTCTRLMAIN_H_
|
||
#define _ATTCTRLMAIN_H_
|
||
|
||
#include "AttMath.h"
|
||
#include "..\PrjCommon\CommonDef.h"
|
||
#include "..\PrjCommon\BlockRing.h"
|
||
#include "..\PrjCommon\DataStorDefine.h"
|
||
#include "..\PrjCommon\ModTask.h"
|
||
#include "..\PrjCommon\DevDefine.h"
|
||
#include "..\PrjCommon\DevDrvs.h"
|
||
#include "..\PrjTaskMng\TaskMng.h"
|
||
#include "..\PrjTelCtrlMng\TelCtrlMng.h"
|
||
#include "..\PrjOrbitMng\OrbitMng.h"
|
||
#include "..\PrjCollectMng\CollectMng.h"
|
||
#include "..\PrjSadaCtrlMng\SadaMng.h"
|
||
#include "..\PrjCommon\TypeDef.h"
|
||
|
||
//姿控数据地址分配
|
||
#define ATTCLT_DATA1_ADDR (ATTCTL_BASE_ADDR )
|
||
#define SIZE_RECVDATA_BUF1 (0x2000) /*数据区8k*/
|
||
|
||
#define ATTCLT_DATA2_ADDR (ATTCLT_DATA1_ADDR + SIZE_RECVDATA_BUF1) /*控制参数区*/
|
||
#define SIZE_RECVDATA_BUF2 (0x1000) /* 数据区4k */
|
||
|
||
#define ATTCLT_DATA3_ADDR (ATTCLT_DATA2_ADDR + SIZE_RECVDATA_BUF2) /*4k轨道控制数据注数区*/
|
||
#define SIZE_RECVDATA_BUF3 (0x1000) /*数据区4k*/
|
||
|
||
#define ATTCLT_DATA4_ADDR (ATTCLT_DATA3_ADDR + SIZE_RECVDATA_BUF3) /*接收来自遥控注入的目标定向数据,2k字节*/
|
||
#define SIZE_RECVDATA_BUF4 (0x800) /*数据区2k*/
|
||
|
||
#define ATTCLT_DATA5_ADDR (ATTCLT_DATA4_ADDR+ SIZE_RECVDATA_BUF4) /*接收来自遥控注入的轨道数据,4k字节*/
|
||
#define SIZE_RECVDATA_BUF5 (0x1000) /*数据区4k*/
|
||
|
||
#define ATTCLT_DATA6_ADDR (ATTCLT_DATA5_ADDR + SIZE_RECVDATA_BUF5) /*目标定向数据,2k字节*/
|
||
#define SIZE_RECVDATA_BUF6 (0x800) /*数据区2k*/
|
||
|
||
/***********************************遥控指令注数***********************************/
|
||
//软指令
|
||
#define ATT_SAFEMODE_SAFE1 (0xC600) //整星安全模式1
|
||
#define ATT_SAFEMODE_SAFE2 (0xC601) //整星安全模式2
|
||
#define ATT_SAFEMODE_SAFE3 (0xC602) //整星安全模式3
|
||
|
||
//模式控制注数区
|
||
#define ATT_CMDMODE_MODSUNCAP (0x3600) //进入速率阻尼
|
||
#define ATT_CMDMODE_WhlTOSUN (0x3601) //进入轮控对日定向
|
||
#define ATT_CMDMODE_MagTOSUN (0x3602) //磁控对日定向
|
||
#define ATT_CMDMODE_ONLTOEARTH (0x3603) //对地定向*/
|
||
#define ATT_CMDMODE_WHEELTOEARTH (0x3604) //稳态对地*/
|
||
#define ATT_CMDMODE_UNCTL (0x3605) //无控模式*/
|
||
|
||
#define ATT_WORKMODE_ORBITCTLPRE (0xA606) //轨控前调姿*/
|
||
#define ATT_WORKMODE_ORBITCTL (0xA607) //轨控*/
|
||
#define ATT_WORKMODE_ATTAJUST (0xA611) //定向调姿*/
|
||
#define ATT_WORKMODE_ONLTOTAR (0xA612) //目标定向*/
|
||
|
||
#define ATT_CMDMODE_ORBITCTL (0xC304) //轨道控制数据上注*/
|
||
#define ATT_CMDMODE_ONLTOTAR (0xC303) //对目标定向数据上注*/
|
||
#define ATT_CMDMODE_ORBITCTLREQ (0x3609) //轨控异步包请求
|
||
|
||
//准禁开关
|
||
#define ATT_CMDMODE_MODECHANG (0x360A) //允许工作模式自主切换
|
||
#define ATT_CMDMODE_NOMODECHANG (0x360B) //禁止工作模式自主切换
|
||
#define ATT_CMDMODE_AllowCThr (0x360C) //允许自主单机间互校验
|
||
#define ATT_CMDMODE_NOAllowCThr (0x360D) //禁止自主单机间互校验
|
||
#define ATT_CMDOBITRESET (0x360E) //清轨控包
|
||
#define ATT_CMDATTRESET (0x360F) //清目标定向包
|
||
|
||
#define ATT_CMDMODE_ATTLOSE (0x3618) //姿态基准丢失判断开指令
|
||
#define ATT_CMDMODE_NOATTLOSE (0x3619) //姿态基准丢失判断关指令
|
||
#define ATT_CMDMODE_ATTEx (0x361A) //姿态超差判断开指令
|
||
#define ATT_CMDMODE_NOATTEx (0x361B) //姿态超差判断关指令
|
||
#define ATT_CMDMODE_AttUnSta (0x361C) //姿态不稳定判断开指令
|
||
#define ATT_CMDMODE_NOAttUnSta (0x361D) //姿态不稳定判断关指令
|
||
|
||
//参数指令
|
||
#define ATT_CMDCODE_MODPARAM (0x361E) //模式切换相关参数更改
|
||
|
||
//模拟太敏相关注数
|
||
#define ATT_CMDCODE_ASS (0x361F) //模拟太敏故障诊断参数(电压)
|
||
|
||
//单机系统级互校
|
||
#define ATT_CMDCROSSCHECKTHR (0x3620)
|
||
|
||
//单机异常状态
|
||
#define ATT_CMDCROSSERR (0x3621)
|
||
|
||
//单机使用状态
|
||
#define ATT_CMDCROSSUSE (0x3622)
|
||
|
||
//单机优先级状态
|
||
#define ATT_CMDCROSS (0x3623)
|
||
//单机重构
|
||
#define ATT_CMDCREUSE (0x3624)
|
||
|
||
//单机故障诊断条件
|
||
#define ATT_CMDCROSSDIG (0x3625)
|
||
|
||
//PPU故障诊断条件
|
||
#define ATT_CMDCPPUDIG (0x3626)
|
||
|
||
//单机故障诊断时间
|
||
#define ATT_CMDCDIGTIME (0x3627)
|
||
|
||
//基准丢失故障诊断条件
|
||
#define ATT_CMDCDIGLOSE (0x3628)
|
||
|
||
//超差故障诊断条件
|
||
#define ATT_CMDCDIGEX (0x3629)
|
||
|
||
//姿态不稳定故障诊断条件
|
||
#define ATT_CMDCDIGNOSTATE (0x362A)
|
||
|
||
//配平轮转速力矩阈值
|
||
#define ATT_CMDWHLSLIMT (0x362B)
|
||
|
||
//星敏安装矩阵注入
|
||
#define ATT_CMDCODE_SSMAT (0x362C)
|
||
|
||
//太敏安装矩阵注入
|
||
#define ATT_CMDCODE_ASSMAT (0x362D)
|
||
|
||
//磁强计安装矩阵注入
|
||
#define ATT_CMDCODE_MAGMAT (0x362E)
|
||
|
||
//陀螺安装矩阵注入
|
||
#define ATT_CMDCODE_GyroMAT (0x362F)
|
||
|
||
//反作用轮安装矩阵注入
|
||
#define ATT_CMDCODE_WHLMAT (0x3630)
|
||
|
||
//磁力矩器安装矩阵注入
|
||
#define ATT_CMDCODE_MTMAT (0x3631)
|
||
|
||
//磁阻尼控制器注入
|
||
#define ATT_CMDCODE_DMPPARA (0x3632)
|
||
|
||
//磁控对日控制器参数注入
|
||
#define ATT_CMDCODE_TOSUNPARA (0x3633)
|
||
|
||
//磁卸载控制器参数注入
|
||
#define ATT_CMDCODE_MTCTRLPARA (0x3634)
|
||
|
||
//飞轮PD控制器参数注入
|
||
#define ATT_CMDCODE_PDCTRLPARA (0x3635)
|
||
|
||
//飞轮PID控制器参数注入
|
||
#define ATT_CMDCODE_PIDCTRLPARA (0x3636)
|
||
|
||
//陀螺零偏注入
|
||
#define ATT_CMDCODE_GyroBIAS (0x3637)
|
||
|
||
//陀螺标度因数注入
|
||
#define ATT_CMDCODE_GyroPH (0x3638)
|
||
|
||
//卫星进出影判断值参数注入
|
||
#define ATT_CMDCODE_BetaAng (0x3639)
|
||
|
||
//飞轮ID选择参数注入
|
||
#define ATT_CMDCODE_WhlID (0x363A)
|
||
|
||
//磁力矩器分配-磁矩限值
|
||
#define ATT_CMDCODE_MTCTRL (0x363B)
|
||
|
||
//磁强计标定系数
|
||
#define ATT_CMDCODE_MTBD (0x363C)
|
||
|
||
//卫星推力器产生本体系加速度
|
||
#define ATT_CMDMODE_PPUAB (0x363D)
|
||
|
||
//PPU标定系数
|
||
#define ATT_CMDCODE_PPUBD (0x363E)
|
||
|
||
//陀螺积分限幅注入
|
||
#define ATT_CMDCODE_GyroINTTLimt (0x363F)
|
||
|
||
//安全模式PPU使用状态
|
||
#define ATT_CMDCODE_SafePPU (0x3640)
|
||
|
||
//飞轮偏置动量
|
||
#define ATT_CMDCODE_WHLCENT (0x3641)
|
||
|
||
//在轨编程宏预留1
|
||
#define ATT_CMDCODE_RESET1 (0x3642)
|
||
|
||
//在轨编程宏预留2
|
||
#define ATT_CMDCODE_RESET2 (0x3643)
|
||
|
||
//在轨编程宏预留3
|
||
#define ATT_CMDCODE_RESET3 (0x3644)
|
||
|
||
//在轨编程宏预留4
|
||
#define ATT_CMDCODE_RESET4 (0x3645)
|
||
|
||
//在轨编程宏预留5
|
||
#define ATT_CMDCODE_RESET5 (0x3646)
|
||
|
||
//在轨编程宏预留6
|
||
#define ATT_CMDCODE_RESET6 (0x3647)
|
||
|
||
//在轨编程宏预留7
|
||
#define ATT_CMDCODE_RESET7 (0x3648)
|
||
|
||
//在轨编程宏预留8
|
||
#define ATT_CMDCODE_RESET8 (0x3649)
|
||
|
||
//在轨编程宏预留9
|
||
#define ATT_CMDCODE_RESET9 (0x364A)
|
||
|
||
//在轨编程宏预留10
|
||
#define ATT_CMDCODE_RESET10 (0x364B)
|
||
|
||
|
||
/***************单机配置宏定义*****************/
|
||
//优先级定义
|
||
#define PriorHig (0xAA) //优先级高
|
||
#define PriorMid (0x55) //优先级中
|
||
#define PriorLow (0x00) //优先级低
|
||
|
||
//说明:磁力矩器数据结构体
|
||
#define MT_NUM (4) //磁力矩器个数
|
||
#define MT_ON (0x55)
|
||
#define MT_OFF (0x00)
|
||
#define MT_DIRECT_POS (0x55) //Positive正向
|
||
#define MT_DIRECT_NEG (0xAA) //negative负向
|
||
|
||
//说明:星敏遥测数据结构体
|
||
#define STAR_NUM (3) //星敏总个数
|
||
#define STARAB_HEAD (0x8AA1)
|
||
#define STARAB_ID (0x0000)
|
||
#define STARAB_LEN (64)
|
||
#define STARC_HEAD (0xEB50)
|
||
#define STARC_ID (0x0022)
|
||
#define STARC_LEN (53)
|
||
|
||
//说明:陀螺数据结构体
|
||
//A:华芯 B:华芯 C:开拓 //20230810
|
||
#define GYRO_NUM (3) //陀螺单机数量
|
||
#define GYRO_DATA_HEADA (0xEB90) //陀螺A遥测422数据包头
|
||
#define GYRO_DATA_LENA (0x28) //陀螺A遥测422数据包长(总包长)
|
||
#define GYRO_DATA_HEADC (0xEB90) //陀螺C遥测422数据包头
|
||
#define GYRO_DATA_LENC (0x1A) //陀螺C遥测422数据包长
|
||
#define GYRO_DATA_UNIT (0.000001) //陀螺B角速度量纲
|
||
#define GYRO_TMPER_UNIT (0.008) //陀螺B温度量纲
|
||
|
||
//说明:模拟太敏数据结构体
|
||
#define ASS_NUM (6) //ASS单机数量
|
||
|
||
///说明:磁强计数据结构体
|
||
#define MAG_NUM (2) //磁强计总个数
|
||
#define MAG_Vect_A (0x55) //选择磁强计A
|
||
#define MAG_Vect_B (0xAA) //选择磁强计B
|
||
|
||
//说明:飞轮数据结构体
|
||
#define WHEEL_NUM (4) //飞轮总个数
|
||
#define WHL_CMD_CODE_REQ (0xD9) //飞轮单机遥测请求指令码
|
||
#define WHL_CMD_CODE_CURR (0xCA) //飞轮单机控制指令码:电流控制指令码
|
||
#define WHL_CMD_CODE_RATE (0xD4) //飞轮单机控制指令码:转数控制指令码
|
||
#define WHL_CMD_CODE_TRQ (0xEA) //飞轮单机控制指令码:力矩控制指令码
|
||
#define WHL_DATA_END (0xAA55) //飞轮遥测422数据包尾(中科)
|
||
#define WHL_DATA_LEN (0x23) //中辰新威飞轮遥测422数据包长
|
||
|
||
//说明:PPU数据结构体
|
||
#define PPU_CMD_LEN (0x1E) //PPU单机遥测请求指令码
|
||
|
||
|
||
/***************单机互校验宏定义*****************/
|
||
#define NO_CC (0x00) //未参加互校验(0)
|
||
#define CC_CORRECT (0x55) //互校验成功(1)
|
||
#define CC_ERROR (0xAA) //互校验异常(2)
|
||
#define CC_UNCERTAIN (0xFF) //互校验无法判断(3)
|
||
|
||
/*******************姿轨控工作模式*******************/
|
||
#define ATTMOD_BREAKPRE (0x00) //星箭分离前
|
||
#define ATTMOD_NOCOLL (0x11) //碰撞规避模式
|
||
#define ATTMOD_RATEDMP (0x22) //速率阻尼
|
||
#define ATTMOD_WhlTOSUN (0x33) //轮控对日定向
|
||
#define ATTMOD_MagTOSUN (0x44) //磁控对日定向
|
||
#define ATTMOD_ONLTOEARTH (0x55) //对地定向
|
||
#define ATTMOD_WHEELTOEARTH (0x66) //稳态对地
|
||
#define ATTMOD_ATTAJUSTPRE (0x77) //轨控前调姿
|
||
#define ATTMOD_ORBITCTL (0x88) //轨道控制
|
||
#define ATTMOD_ATTAJUST (0x99) //定向前调姿
|
||
#define ATTMOD_ONLTOTAR (0xAA) //对目标定向
|
||
#define ATTMOD_UNCTL (0xBB) //无控模式
|
||
|
||
/***************环境计算*****************/
|
||
#define GST_OFFSET (1.7474554283454f) // GST偏移量
|
||
#define EATHWE (7.29211514667e-5) // 地球自转角速度
|
||
#define GMEARTH (3.986004E14) //引力常数
|
||
#define EarthRad (6378040) //地球半径(米)
|
||
#define EarthRad2MAG (6371200) //地球平均半径(米)
|
||
|
||
//数据回复类型
|
||
#define BACKUP_TYPE_ATTFLASH (0x5511) /* 备份数据类型: Flash */
|
||
//#define BACKUP_TYPE_PLDSRAM (0x5522) /* 备份数据类型:SRAM */
|
||
#define BACKUP_TYPE_ATTFIFO (0x5533) /* 备份数据类型:双机FIFO。【注意不能是0和0xFF】 */
|
||
|
||
/***********************************************
|
||
说明: 姿控Flash区
|
||
***********************************************/
|
||
typedef struct AttCmdFlash_s{
|
||
|
||
TYPE_CAL M_SSA[3][3]; //星敏A安装矩阵(1,1)
|
||
TYPE_CAL M_SSB[3][3]; //星敏B安装矩阵(1,1)
|
||
TYPE_CAL M_SSC[3][3]; //星敏C安装矩阵(1,1)
|
||
TYPE_CAL M_GYRO[3][3][3]; //陀螺A\B\C安装矩阵(1,1)
|
||
TYPE_CAL M_aSSA[3][3]; //模拟太敏A安装矩阵(1,1)
|
||
TYPE_CAL M_aSSB[3][3]; //模拟太敏B安装矩阵(1,1)
|
||
TYPE_CAL M_aSSC[3][3]; //模拟太敏C安装矩阵(1,1)
|
||
TYPE_CAL M_aSSD[3][3]; //模拟太敏D安装矩阵(1,1)
|
||
TYPE_CAL M_aSSE[3][3]; //模拟太敏E安装矩阵(1,1)
|
||
TYPE_CAL M_aSSF[3][3]; //模拟太敏F安装矩阵(1,1) F为太阳阵上模拟太阳敏感器安装矩阵
|
||
TYPE_CAL M_Wheel[3][4]; //飞轮安装矩阵
|
||
TYPE_CAL M_MAG[MAG_NUM][3][3]; //磁强计安装矩阵
|
||
TYPE_CAL M_MAGCtrl[3][4]; //磁力矩器分配矩阵
|
||
|
||
//陀螺故障诊断参数
|
||
TYPE_CAL Gyro_Comd_Bias[GYRO_NUM][3]; //陀螺零偏
|
||
TYPE_CAL Gyro_Comd_K[GYRO_NUM][3][3]; //标度因数
|
||
UINT8 Gyro_ComRESW[3]; //陀螺表头重构状态字
|
||
//PPU
|
||
TYPE_CAL PPUPVK; //阳极电源电压比例系数K
|
||
TYPE_CAL PPUPVB; //阳极电源电压比例系数B
|
||
TYPE_CAL PPUPAK; //阳极电源电流比例系数K
|
||
TYPE_CAL PPUPAB; //阳极电源电流比例系数B
|
||
//磁强计
|
||
TYPE_CAL MAG_LK[MAG_NUM][3]; //模拟磁强计拟合系数k
|
||
TYPE_CAL MAG_LB[MAG_NUM][3]; //模拟磁强计电压零位
|
||
UINT8 Mag_ComRESW[3]; //磁强计表头重构状态字
|
||
//星敏校磁强
|
||
TYPE_CAL SS_MAG_CThr; //星敏校磁强计阈值,单位°
|
||
|
||
UINT16 judgeWait_time; //轮控对日定向持续
|
||
|
||
|
||
//飞轮PD控制
|
||
TYPE_CAL kp_ToSun_PD[3]; //飞轮PD控制-比例kpxyz
|
||
TYPE_CAL kd_ToSun_PD[3]; //飞轮PD控制-微分kdxyz
|
||
TYPE_CAL w0max_PD; //最大旋转角速度,单位°/s
|
||
TYPE_CAL PD_Ts; //飞轮PD控制-时间常数
|
||
|
||
//飞轮PID控制
|
||
TYPE_CAL kp_PID[3]; //PID控制-比例kpxyz
|
||
TYPE_CAL ki_PID[3]; //PID控制-积分kixyz
|
||
TYPE_CAL kd_PID[3]; //PID控制-微分kdxyz
|
||
TYPE_CAL w0max_PID; //最大旋转角速度,单位°/s
|
||
TYPE_CAL PID_Ts; //飞轮PID控制-时间常数
|
||
|
||
//三批次增加数据
|
||
UINT8 WorkModeChangeAuto; //二次点火使能标志
|
||
UINT32 PPUT_FIR_EndLast; //最后一次熄火时刻
|
||
UINT16 PPUTALimit; //电推过流故障阈值
|
||
UINT16 PPUTVLimit; //电推过压故障阈值
|
||
UINT16 PPUTFireLimit; //电推点火故障阈值
|
||
UINT16 PPUHTemperLimit; //电推温度故障上限阈值
|
||
UINT16 PPULTemperLimit; //电推温度故障下限阈值
|
||
|
||
//FLASH区在轨编程预留
|
||
UINT8 FLASH_RESET1;
|
||
UINT8 FLASH_RESET2;
|
||
UINT8 FLASH_RESET3;
|
||
UINT16 FLASH_RESET4;
|
||
UINT16 FLASH_RESET5;
|
||
UINT16 FLASH_RESET6;
|
||
TYPE_CAL FLASH_RESET7;
|
||
TYPE_CAL FLASH_RESET8;
|
||
TYPE_CAL FLASH_RESET9;
|
||
|
||
} AttCmdFlash_t;
|
||
|
||
/***********************************************
|
||
说明:安装矩阵
|
||
***********************************************/
|
||
typedef struct
|
||
{
|
||
//Flash区
|
||
AttCmdFlash_t AttCmdFlashPara;
|
||
//模拟太敏
|
||
TYPE_CAL Ass_MinFour_limt[2]; //4片模拟太敏电压阈最小值
|
||
TYPE_CAL Ass_MaxFour_limt[2]; //4片模拟太敏电压阈最大值
|
||
|
||
//磁强计
|
||
TYPE_CAL Mag_Bb_CtrlMax; //磁力矩器最大输出磁矩
|
||
TYPE_CAL Mag_Kp[3];
|
||
TYPE_CAL Mag_Kd[3];
|
||
TYPE_CAL Mag_KpFBZK[3];
|
||
TYPE_CAL Mag_KdFBZK[3];
|
||
TYPE_CAL Mag_DampBdotMin; //磁控阻尼死区
|
||
//UINT8 Mag_ComRESW[3]; //磁强计表头重构状态字
|
||
//目标角速度
|
||
TYPE_CAL Mag_WTOSUN; //磁控对日目标角
|
||
TYPE_CAL Mag_FBZKWTOSUN; //磁控对日目标角
|
||
TYPE_CAL Mag_ATTTOSUN; //磁控对日对日磁矩角
|
||
|
||
//飞轮
|
||
UINT8 Whl_ID[WHEEL_NUM]; // 飞轮控制指令:飞轮工作模式
|
||
|
||
//磁力矩器
|
||
UINT8 MTCtrlTIME; //磁力矩器控制时间
|
||
TYPE_CAL MTOutXYZLimit[4]; //三轴控制最大此举100/100/50/50
|
||
//飞轮磁卸载
|
||
TYPE_CAL k1_dump; //卸载角动量开阈值,单位Nms
|
||
TYPE_CAL k2_dump;
|
||
TYPE_CAL ku_dump;
|
||
TYPE_CAL MTAtt_dump;
|
||
|
||
//互校验阈值(可上注修改)
|
||
UINT8 Allow_Sensor_CThr; //自主单机间互校验准禁标志
|
||
TYPE_CAL SS_SS_CThr; //星敏间校验阈值,单位°
|
||
TYPE_CAL SS_ASS_CThr; //星敏校太敏阈值,单位°
|
||
TYPE_CAL SS_ASS_CCThr; //星敏太敏互校验阈值,单位°
|
||
TYPE_CAL SS_GYRO_CThr; //星敏校陀螺阈值,单位°/s
|
||
//TYPE_CAL SS_MAG_CThr; //星敏校磁强计阈值,单位°
|
||
TYPE_CAL MAG_MAG_CThr; //磁强计互校阈值,单位nT
|
||
TYPE_CAL GYRO_GYRO_CThr; //陀螺互校阈值,单位°/s
|
||
|
||
//模式切换相关参数
|
||
//UINT8 WorkModeUp; //工作模式注数选择
|
||
//UINT8 WorkModeChange; //工作模式切换允许标志
|
||
//UINT8 WorkModeChangeAuto; //工作模式自主切换允许标志
|
||
UINT16 judge_time0; //0、星箭分离前
|
||
UINT16 judge_time1; //1、碰撞规避模式
|
||
UINT16 judge_time2; //2、速率阻尼
|
||
UINT16 judge_time3; //3、轮控对日定向
|
||
UINT16 judge_time4; //4、磁控对日定向
|
||
UINT16 judge_time5; //5、对地定向
|
||
UINT16 judge_time6; //6、稳态对地
|
||
UINT16 judge_time7; //7、轨控前调姿
|
||
UINT16 judge_time8; //8、轨道控制
|
||
UINT16 judge_time9; //10、定向前调姿
|
||
UINT16 judge_timeA; //11、对目标定向
|
||
UINT16 judge_timeB; //12、无控模式
|
||
//UINT16 judgeWait_time; //轮控对日定向持续
|
||
TYPE_CAL RateThr_2T3; //速率阻尼转对日定向角速度阈值
|
||
TYPE_CAL HWHLThr_2T3; //速率阻尼转对日定向角动量阈值
|
||
TYPE_CAL AngThr_3TB; //对日定向转无控模式角度阈值
|
||
TYPE_CAL RateThr_3TB; //对日定向转无控模式角速度阈值
|
||
TYPE_CAL AngThr_5T6; //对地定向模式切换到稳定对地模式角度阈值
|
||
TYPE_CAL RateThr_5T6; //对地定向模式切换到稳定对地角速度阈值
|
||
TYPE_CAL AngThr_9TA; //定向前调姿切换到目标定向模式角度阈值
|
||
TYPE_CAL RateThr_9TA; //定向前调姿切换到目标定向模式角速度阈值
|
||
|
||
//控制相关参数
|
||
TYPE_CAL SAT_J[3][3]; //整星转动惯量xx,yy,zz 单位kgm2
|
||
TYPE_CAL Whl_J[WHEEL_NUM]; //飞轮的角动量转换系数
|
||
TYPE_CAL Whl_HCent[WHEEL_NUM]; //飞轮的标称角动量
|
||
//飞轮PD控制
|
||
//TYPE_CAL kp_ToSun_PD[3]; //飞轮PD控制-比例kpxyz
|
||
//TYPE_CAL kd_ToSun_PD[3]; //飞轮PD控制-微分kdxyz
|
||
TYPE_CAL kp_NoToSun_PD[3]; //帆板未展开飞轮PD控制-比例kpxyz
|
||
TYPE_CAL kd_NoToSun_PD[3]; //帆板未展开飞轮PD控制-微分kdxyz
|
||
//TYPE_CAL w0max_PD; //最大旋转角速度,单位°/s
|
||
TYPE_CAL w0max_NoPD; //最大旋转角速度,单位°/s
|
||
//TYPE_CAL PD_Ts; //飞轮PD控制-时间常数
|
||
TYPE_CAL PDNo_Ts; //飞轮PD控制-时间常数
|
||
|
||
|
||
//飞轮PID控制
|
||
//TYPE_CAL kp_PID[3]; //PID控制-比例kpxyz
|
||
//TYPE_CAL ki_PID[3]; //PID控制-积分kixyz
|
||
//TYPE_CAL kd_PID[3]; //PID控制-微分kdxyz
|
||
TYPE_CAL kp_NoPID[3]; //PID控制-比例kpxyz
|
||
TYPE_CAL ki_NoPID[3]; //PID控制-积分kixyz
|
||
TYPE_CAL kd_NoPID[3]; //PID控制-微分kdxyz
|
||
//TYPE_CAL w0max_PID; //最大旋转角速度,单位°/s
|
||
TYPE_CAL w0max_NoPID; //最大旋转角速度,单位°/s
|
||
//TYPE_CAL PID_Ts; //飞轮PID控制-时间常数
|
||
TYPE_CAL PIDNo_Ts; //飞轮PID控制-时间常数
|
||
|
||
//指令分配
|
||
TYPE_CAL WheelD_NomSpeed; //配平轮标称转速,单位rad/s 可上注
|
||
TYPE_CAL WheelD_SpeedErrThr; //配平轮转速偏差阈值,单位rad/s 可上注
|
||
TYPE_CAL WheelD_Default; //配平轮力矩指令默认值,净力矩阈值.单位Nm 可上注
|
||
TYPE_CAL WheelD_AllDefault; //配平轮力矩指令默认值,合力矩阈值.单位Nm 可上注
|
||
//故障处理模块参数
|
||
//环境模块
|
||
TYPE_CAL BetaAngLimit; //卫星进出影判断值
|
||
|
||
//陀螺异常
|
||
UINT16 GyroDiagThr; //判断时间阈值,单位s,可上注
|
||
UINT8 AllowGyroONOFF[GYRO_NUM]; //星敏重构允许标志
|
||
UINT16 Gyro_Delay_CntLimt; //陀螺开机异常延迟判断计数
|
||
UINT16 Gyro_Err_CntLimt; //陀螺异常判断计数
|
||
UINT16 Gyro_OK_CntLimt; //陀螺正常判断计数
|
||
UINT16 Gyro_ReSet_CntLimt; //陀螺重启总次数
|
||
UINT16 Gyro_ReSetGAP_CntLimt; //陀螺重启间隔拍数
|
||
UINT8 GyroUsePrior[GYRO_NUM]; //陀螺使用优先级
|
||
//UINT8 Gyro_ComRESW[3]; //陀螺表头重构状态字
|
||
//星敏异常
|
||
UINT8 AllowssONOFF[STAR_NUM]; //星敏重启允许标志
|
||
UINT16 ssDiagThr; //判断时间阈值,单位s,可上注
|
||
UINT16 Ss_Delay_CntLimt; //星敏开机异常延迟判断计数
|
||
UINT16 Ss_Err_CntLimt; //星敏异常判断计数
|
||
UINT16 Ss_OK_CntLimt; //星敏正常判断计数
|
||
UINT16 Ss_ReSet_CntLimt; //星敏重启总次数
|
||
UINT16 Ss_ReSetGAP_CntLimt; //星敏重启间隔拍数
|
||
UINT8 SSUsePrior[STAR_NUM]; //星敏使用优先级
|
||
//磁强计异常
|
||
UINT8 AllowMagONOFF[MAG_NUM]; //磁强计重启允许标志
|
||
UINT16 MagDiagThr; //判断时间阈值,单位s,可上注
|
||
UINT16 Mag_Delay_CntLimt; //磁强计开机异常延迟判断计数
|
||
UINT16 Mag_Err_CntLimt; //磁强计异常判断计数
|
||
UINT16 Mag_ReSet_CntLimt; //磁强计重启总次数
|
||
UINT16 Mag_OK_CntLimt; //磁强计正常判断计数
|
||
UINT16 Mag_ReSetGAP_CntLimt; //磁强计重启间隔拍数
|
||
|
||
//飞轮异常
|
||
UINT8 AllowWhlONOFF[WHEEL_NUM]; //反作用重构允许标志
|
||
UINT16 WhlTemperDiagThr; //飞轮温度过高温度阈值,单位°C,可上注
|
||
UINT16 WhlDiag_TimeThr; //飞轮温度过高计数阈值,可上注
|
||
UINT16 WhlDiag_ErrThr; //飞轮数据异常计数阈值,单位,可上注
|
||
UINT16 Whl_Delay_CntLimt; //飞轮开机异常延迟判断计数
|
||
UINT16 Whl_Err_CntLimt; //飞轮异常判断计数
|
||
UINT16 Whl_OK_CntLimt; //飞轮正常判断计数
|
||
UINT16 Whl_ReSet_CntLimt; //飞轮重启总次数
|
||
UINT16 Whl_ReSetGAP_CntLimt; //飞轮重启间隔拍数
|
||
|
||
//PPU
|
||
UINT8 AllowPPUONOFF; //PPU重构允许标志
|
||
UINT16 PPU_Delay_CntLimt; //磁强计开机异常延迟判断计数
|
||
UINT16 PPU_Err_CntLimt; //磁强计异常判断计数
|
||
UINT16 PPU_ReSet_CntLimt; //磁强计重启总次数
|
||
UINT16 PPU_OK_CntLimt; //磁强计正常判断计数
|
||
UINT16 PPU_ReSetGAP_CntLimt; //磁强计重启间隔拍数
|
||
|
||
UINT16 PPUTXTimeLimit; //电推通信故障时间阈值
|
||
UINT16 PPUTATimeLimit; //电推过流故障时间阈值
|
||
//UINT16 PPUTALimit; //电推过流故障阈值
|
||
UINT16 PPUTVTimeLimit; //电推过压故障时间阈值
|
||
//UINT16 PPUTVLimit; //电推过压故障阈值
|
||
//UINT16 PPUTFireLimit; //电推点火故障阈值
|
||
UINT16 PPUTemperTimeLimit; //电推温度故障时间阈值
|
||
//UINT16 PPUHTemperLimit; //电推温度故障上限阈值
|
||
//UINT16 PPULTemperLimit; //电推温度故障下限阈值
|
||
|
||
//推力器产生卫星本体系推力加速度
|
||
TYPE_CAL AccThru_Up[3]; //推力引力加速度上注值
|
||
|
||
//姿态确定
|
||
UINT16 GyroINT_TLimt; //陀螺积分限幅值
|
||
|
||
////姿态基准丢失
|
||
UINT8 AllowAttLoseDiagFlg; //姿态基准丢失判断开允许标志
|
||
UINT16 TimeThr_AttLoseDiag[9]; //姿态丢失时间阈值,单位s
|
||
|
||
//姿态超差判断
|
||
UINT8 AllowAttExDiagFlg; //姿态超差判断允许标志
|
||
UINT16 TimeThr_AttEx[10]; //姿态超差用到的时间阈值,单位s
|
||
TYPE_CAL AngThr_AttEx[9]; //角度阈值
|
||
TYPE_CAL RateThr_AttEx[9]; //角速度阈值
|
||
UINT16 YawCntLimit; //对地偏航/对目标偏航下偏航姿态超差计数
|
||
|
||
//姿态不稳定判断
|
||
UINT8 AllowAttStaDiagFlg; //姿态不稳定判断允许标志
|
||
UINT16 TimeThr_AttUnSta[6]; //姿态不稳定用到的时间阈值,单位s
|
||
UINT16 TimeMod_AttUnSta[6]; //姿态不稳定用到的时间阈值,单位s
|
||
TYPE_CAL AngThr_AttUnSta[6]; //角度阈值
|
||
TYPE_CAL RateThr_AttUnSta[6]; //角速度阈值
|
||
UINT8 ZK_Reserver111;
|
||
UINT8 ZK_Reserver222;
|
||
}AttCtrlConst_t;
|
||
|
||
|
||
/*星敏数据*/
|
||
/***********************************************
|
||
说明:星敏遥测数据结构体
|
||
***********************************************/
|
||
//A:803 B:803 C:北京
|
||
typedef struct SsPara_s{
|
||
//敏感器输入数据
|
||
UINT8 ssIn_AttVld; //星敏姿态有效标志
|
||
UINT8 ssIn_DataSta; //星敏数据状态
|
||
TYPE_CAL ssIn_Q[4]; //星敏姿态四元数
|
||
TYPE_CAL ssIn_W[3]; //星敏角速度
|
||
TYPE_CAL ssExpose_Qbi[4]; //星敏A惯性系姿态四元数
|
||
TYPE_CAL ssExpose_Wbi[3]; //星敏A惯性系角速度
|
||
UINT8 ssCrCheckFlg; //星敏互校验标志
|
||
UINT8 ssAvailableFlg; //星敏可用标志
|
||
UINT8 ssPrior; //星敏使用优先级
|
||
UINT8 ssExpose_cnt; //星敏输出四元数不变计数
|
||
TYPE_CAL ssIn_Qpre[4]; //前一拍星敏姿态四元数
|
||
} SsPara_t;
|
||
|
||
/***********************************************
|
||
说明:陀螺数据结构体
|
||
***********************************************/
|
||
//A:开拓 B:利可夫 C:华芯
|
||
typedef struct Gyrodata_s{
|
||
|
||
UINT8 GyroIn_AttVld; //Gyro有效标志
|
||
UINT8 GyroIn_DataSta; //Gyro数据无效原因
|
||
UINT8 Gyro_ComTHUse[3]; //单套陀螺表头可用标志
|
||
TYPE_CAL GyroIn_Speed[3]; //陀螺三轴角速度
|
||
TYPE_CAL GyroIn_SpeedPre[3]; //陀螺上一拍三轴角速度
|
||
TYPE_CAL GyroIn_Tmper[3]; //陀螺三轴角温度
|
||
TYPE_CAL Gyro_Wi[3]; //惯性系陀螺角速度
|
||
|
||
UINT8 GyroCrCheckFlg; //陀螺互校验标志
|
||
UINT8 Gyro_AvailableFlg; //单套陀螺可用标志
|
||
UINT8 GyroPrior; //陀螺使用优先级
|
||
UINT16 Gyro_ComCnt[3]; //陀螺上下拍数据比较有效计数
|
||
|
||
} GyroPara_t;
|
||
|
||
/***********************************************
|
||
说明:模拟太敏数据结构体
|
||
***********************************************/
|
||
typedef struct AssPara_s{
|
||
|
||
UINT8 AssIn_AttVld[ASS_NUM]; //Ass数据有效标志
|
||
TYPE_CAL AssIn_sensor[ASS_NUM][4]; //模拟太敏电压
|
||
UINT8 AssCrCheckFlg; //模拟太敏互校验标志
|
||
|
||
TYPE_CAL Ass_SunATT[2]; //帆板模拟太敏方位角θ、虚余仰角r
|
||
TYPE_CAL Ass_SunVecbF[3]; //模拟太敏本体系太阳矢量XYZ
|
||
UINT8 Ass_SunOK; //帆板模拟太敏方位角可用标志
|
||
TYPE_CAL Ass_SunVecb[3]; //模拟太敏本体系太阳矢量XYZ
|
||
UINT8 Ass_SunVecVld; //模拟太敏太阳矢量有效标志
|
||
|
||
UINT8 ADIn_Date;
|
||
} AssPara_t;
|
||
|
||
/***********************************************
|
||
说明:磁强计数据结构体
|
||
***********************************************/
|
||
typedef struct MagPara_s /* 磁强计数据结构体 */
|
||
{
|
||
UINT8 MagIn_Valid[3]; //模拟磁强计A/B有效标志
|
||
UINT8 MagIn_DataSta; //单机数据有效状态
|
||
UINT8 MagCrCheckFlg[MAG_NUM]; //星敏校验磁强计标志
|
||
UINT8 MagAvailableFlg[MAG_NUM];
|
||
UINT8 Mag_Use; //选择的磁强计数据有效
|
||
UINT8 Mag_UsePre;
|
||
UINT8 MagUseSwich; //磁源选择
|
||
TYPE_CAL Mag_Bb_MeaAB[MAG_NUM][3]; //本体系磁强计磁矢量
|
||
TYPE_CAL Mag_Bb_MeaZH[3]; //本体系磁强计磁矢量(表头组合)
|
||
TYPE_CAL Mag_Bc_MeaAB[MAG_NUM][3]; //测量系磁强计A磁矢量
|
||
TYPE_CAL Mag_Bb[3]; //磁强计本体系磁矢量输出
|
||
TYPE_CAL Mag_BbPre[3]; //上一周期磁矢量
|
||
TYPE_CAL Mag_UBb[3]; //归一化磁矢量
|
||
} MagPara_t;
|
||
|
||
/***********************************************
|
||
说明:飞轮数据结构体
|
||
***********************************************/
|
||
typedef struct WhlPara_s{
|
||
UINT8 WhlIn_Valid[WHEEL_NUM]; //飞轮数据有效标志
|
||
UINT8 WhlIn_DataSta[WHEEL_NUM]; //Rcw 数据无效原因
|
||
TYPE_CAL Whl_Rate[WHEEL_NUM]; //飞轮当前实际转速,单位rpm
|
||
TYPE_CAL Whl_RatePre[WHEEL_NUM]; //飞轮当前实际转速,单位rpm
|
||
INT16 Whl_Current[WHEEL_NUM]; //飞轮电流
|
||
TYPE_CAL Whl_Tmper[WHEEL_NUM]; //电机温度
|
||
UINT32 Whl_Time[WHEEL_NUM]; //内部时间
|
||
UINT32 Whl_TimePRE[WHEEL_NUM]; //内部时间
|
||
|
||
//UINT8 Whl_OK; //飞轮组合可用标志
|
||
TYPE_CAL Whl_Momentum[WHEEL_NUM]; //四个飞轮的角动量
|
||
TYPE_CAL Whl_Momentum_Sum ; //反作用轮卸载角动量和
|
||
TYPE_CAL Whl_Momentum_XYZ[3]; //本体下飞轮三轴角动量
|
||
UINT8 Whl_UseCnt; //可用飞轮计数
|
||
UINT8 Whl_WorkMode[WHEEL_NUM]; //飞轮控制指令:飞轮工作模式
|
||
|
||
} WhlPara_t;
|
||
|
||
|
||
/***********************************************
|
||
说明:PPU数据结构体
|
||
***********************************************/
|
||
typedef struct PPUPara_s{
|
||
UINT8 PPUIn_Valid; //PPU数据有效标志
|
||
UINT8 PPUIn_DataSta; //PPU 数据无效原因
|
||
UINT8 PPUOUT_Sta; //PPU指令开关状态
|
||
UINT8 PPUIn_ReCnt; //PPU遥测请求计数
|
||
UINT8 PPUNoUse_Cnt; //PPU不使用计数
|
||
UINT8 PPUIn_ReCntPre; //PPU上一拍遥测请求计数
|
||
TYPE_CAL PPUIn_AVoltage; //推进阳极电源电压
|
||
TYPE_CAL PPUIn_ACurrent; //推进阳极电源电流
|
||
UINT8 PPUIn_FIREOK; //点火成功标志
|
||
UINT8 PPUIn_FIREOKPre; //点火成功标志
|
||
UINT32 PPUT_FIR_Start[50];
|
||
UINT32 PPUT_FIR_End[50];
|
||
//UINT32 PPUT_FIR_EndLast;
|
||
UINT32 PPUT_FIR_Sum;
|
||
UINT8 PPUT_FIR_Cnt;
|
||
UINT8 PPUT_FIR_CntS;
|
||
UINT16 PPUT_FIR_SumCnt;
|
||
TYPE_CAL PPUT_BOTTLE_Tmper1;
|
||
TYPE_CAL PPUT_BOTTLE_Tmper2;
|
||
TYPE_CAL PPUT_PIPE_Tmper1;
|
||
TYPE_CAL PPUT_PIPE_Tmper2;
|
||
UINT8 PPU_OrbitCtl_Quit_OK_Flag; /*轨控正常退出标志*/
|
||
UINT8 PPU_OrbitCtl_Quit_OK_Cnt; /*轨控正常退出节拍计数*/
|
||
UINT8 PPU_OrbitCtl_Quit_Err_Flag; /*轨控正常退出标志*/
|
||
UINT8 PPU_OrbitCtl_Quit_Err_Cnt; /*轨控正常退出节拍计数*/
|
||
} PPUPara_t;
|
||
|
||
/***********************************************
|
||
说明:磁力矩器数据结构体
|
||
***********************************************/
|
||
typedef struct MtPara_s /* 磁强计数据结构体 */
|
||
{
|
||
TYPE_CAL MTCtrlOutP0[MT_NUM]; //磁力矩器输出占控比
|
||
UINT8 MTDirect[MT_NUM]; //磁控方向
|
||
UINT8 MTOnOff[MT_NUM]; //开关磁力矩器开关
|
||
UINT32 MTCtrlTime; //磁力矩器控制时间计数
|
||
UINT8 MTStatus; //磁力矩开关状态 20230713
|
||
} MtPara_t;
|
||
|
||
/*数据预处理参数*/
|
||
typedef struct
|
||
{
|
||
//单机数据结构
|
||
SsPara_t SsPara[3]; //星敏数据,012对应ABC
|
||
GyroPara_t GyroPara[3]; //陀螺
|
||
AssPara_t AssPara; //模拟太敏
|
||
MagPara_t MagPara; //磁强计
|
||
WhlPara_t WhlPara; //飞轮
|
||
MtPara_t MtPara; //磁力矩器
|
||
PPUPara_t PPUPara; //PPU
|
||
//陀螺表头组合
|
||
UINT8 GyroIn_Comb; //陀螺表头组合可用标志
|
||
TYPE_CAL GyroIn_CombWi[3]; //惯性系陀螺角速度
|
||
TYPE_CAL Gyro_ATTWi[3]; //陀螺定姿角速度
|
||
TYPE_CAL Ss_Qi[4]; //星敏惯性系姿态四元数1234
|
||
TYPE_CAL Ss_Wi[3]; //星敏惯性系角速度123
|
||
|
||
}sAttDataPrePara_t;
|
||
|
||
//当前定姿参数
|
||
typedef struct
|
||
{
|
||
UINT8 AttDeter_Type; //闭环定姿模式
|
||
//闭环定姿
|
||
TYPE_CAL Qi[4]; //卫星惯性系姿态四元数1234
|
||
TYPE_CAL Wi[3]; //卫星惯性系角速度123
|
||
TYPE_CAL Ai[3]; //卫星惯性系轨控加速度123
|
||
UINT8 PPUVld; //PPU加速度有效标志
|
||
UINT32 SatTime[2]; //星上时 秒/微妙
|
||
UINT8 Qi_Vld; //卫星惯性系四元数有效标志
|
||
UINT8 Wi_Vld; //卫星惯性系角速度有效标志
|
||
TYPE_CAL QiPre[4];
|
||
TYPE_CAL WiPre[3];
|
||
UINT8 QiPre_Vld;
|
||
UINT32 GyroINT_Time; //陀螺积分时间
|
||
//对日太阳角
|
||
TYPE_CAL SunVecb[3]; //卫星本体系太阳矢量XYZ
|
||
TYPE_CAL AngToSun[3]; //卫星对日太阳角XY
|
||
UINT8 AngToSun_ValidFlg; //卫星太阳角有效标志
|
||
UINT8 CalAngToSun_Source; //计算太阳角数据源标志
|
||
|
||
//轨道系姿态
|
||
TYPE_CAL Qo[4]; //卫星轨道系姿态四元数1234
|
||
TYPE_CAL AttRateOrb[3]; //卫星轨道系姿态角速度XYZ
|
||
TYPE_CAL AttAngTar[3]; //卫星轨道系目标姿态
|
||
TYPE_CAL AttAngOrb[3]; //卫星轨道系调整姿态
|
||
TYPE_CAL SunVeco[3]; //卫星轨道系太阳矢量XYZ
|
||
UINT8 AttOrb_Vld; //卫星轨道系姿态有效标志
|
||
|
||
//目标参考系姿态
|
||
TYPE_CAL AttAngTarRe[3]; //卫星目标参考系姿态角XYZ
|
||
TYPE_CAL AttRateTarRe[3]; //卫星目标参考系姿态角速度
|
||
UINT8 AttTarRe_Vld; //卫星目标参考系姿态有效标志
|
||
|
||
//轨控参考系姿态
|
||
TYPE_CAL AttAngOrbCtrl[3]; //卫星轨控参考系姿态角XYZ
|
||
TYPE_CAL AttRateOrbCtrl[3]; //卫星轨控参考系姿态角速度XYZ
|
||
UINT8 AttOrbCtrl_Vld; //卫星轨控参考系系姿态有效标志
|
||
|
||
//闭环控制姿态
|
||
TYPE_CAL CLPAttAng[3]; //闭环姿态角XYZ
|
||
TYPE_CAL CLPAttAngRat[3]; //闭环姿态角速度XYZ
|
||
TYPE_CAL CLPAttAngRatPre[3]; //前一拍闭环姿态角速度XYZ
|
||
UINT8 CLPAttValid; //闭环姿态数据有效标志
|
||
}sAttDeterPara_t;
|
||
|
||
//导引率模块参数
|
||
typedef struct
|
||
{
|
||
UINT8 AttGuid_Type; //导引律模式
|
||
TYPE_CAL TargAng[3]; //目标姿态角XYZ
|
||
TYPE_CAL TargAngRat[3]; //目标姿态角速度XYZ
|
||
UINT32 CaptureSunCnt; //卫星太阳角有效计数
|
||
}sAttGuidLawPara_t;
|
||
|
||
/*轨控数据包*/
|
||
typedef struct
|
||
{
|
||
//轨控包
|
||
UINT8 OrbCtrlPcak_ID; //轨控数据编号ID
|
||
UINT32 OrbAttAjustTime; //调姿时刻,单位s+ms
|
||
TYPE_CAL OrbCtrAng[3]; //轨控调姿目标姿态
|
||
UINT32 OrbCtrl_StartTime; //轨控时刻,单位s
|
||
UINT16 OrbCtrl_TimeLength; //轨控时长
|
||
UINT8 OrbCtrl_Mod; //轨控后目标工作模式
|
||
UINT16 OrbDateSum; //该组轨控数据和校验
|
||
|
||
}AttOrbCtrlPara_t;
|
||
|
||
/*当前轨控数据*/
|
||
typedef struct
|
||
{
|
||
UINT8 CurOrbCtrlPcak_ID; //轨控数据编号ID
|
||
UINT8 CurOrbCtrlPcak_PreID; //轨控数据编号ID
|
||
UINT8 OrbCtrlPcak_ReceiveFlg[50]; //收到轨控包标志
|
||
AttOrbCtrlPara_t OrbCtrlPackCur; //当前使用的轨控数据包
|
||
UINT8 OrbDataIn_OK; //轨控数据上注成功标志
|
||
UINT16 OrbDataIn_OKCnt;
|
||
}sAttOrbitCtlInfo_t;
|
||
|
||
//轨道控制数据包
|
||
typedef struct
|
||
{
|
||
//轨道控制数据包
|
||
AttOrbCtrlPara_t OrbCtrlPack[50]; //轨控数据包
|
||
}sAttOrbitCtlData_t;
|
||
|
||
/*目标定向,注意数据不是与注入包对齐*/
|
||
typedef struct
|
||
{
|
||
UINT8 TARCtrlPcak_ID; //目标定向数据编号ID
|
||
|
||
//目标数据包
|
||
UINT32 TARCtrl_JustTime; //目标定向开始时刻,单位s
|
||
TYPE_CAL TARCtrAng[3]; //目标定向调姿目标姿态
|
||
UINT32 TARCtrl_StartTime; //目标定向开始时刻,单位s
|
||
UINT16 TARCtrl_TimeLength; //目标定向结束时刻,单位s
|
||
UINT16 TARCtrlDateSum; //目标定向数据和校验
|
||
|
||
}sAttTARCCtlPara_t;
|
||
|
||
|
||
/*目标定向,注意数据不是与注入包对齐*/
|
||
typedef struct
|
||
{
|
||
UINT8 CurTARCtrlPcak_ID; //目标定向数据编号ID
|
||
UINT8 CurTARCtrlPcak_PreID; //目标定向数据编号ID
|
||
UINT8 TARCtrlPcak_ReceiveFlg[30]; //收到目标定向包标志
|
||
sAttTARCCtlPara_t TARCtrlPackCur;
|
||
UINT8 TARDataIn_OK; //目标定向数据上注成功标志
|
||
UINT16 TARDataIn_OKCnt;
|
||
}sAttTARCCtlInfo_t;
|
||
|
||
typedef struct
|
||
{
|
||
//目标定向数据包
|
||
sAttTARCCtlPara_t TARCtrlPack[30]; //目标定向轨控数据包
|
||
}sAttTARCCtlData_t;
|
||
|
||
|
||
/*轨道确认进程输入数据*/
|
||
typedef struct
|
||
{
|
||
UINT8 OrbitVld; //轨道外推有效标志
|
||
TYPE_CAL JPos[3]; //位置
|
||
TYPE_CAL JVel[3]; //速度
|
||
TYPE_CAL GAST;
|
||
TYPE_CAL MJC; //儒略世纪
|
||
TYPE_CAL MJCLv; //儒略有效性
|
||
}sAttOrbitGetPara_t;
|
||
|
||
//当前控制参数
|
||
typedef struct
|
||
{
|
||
//UINT8 AttCtrl_TypeTEST;
|
||
//磁卸载算法
|
||
UINT8 IsDump; //飞轮卸载状态(三轴)
|
||
//PID控制
|
||
TYPE_CAL SumAerrPre[3]; //角度偏差积分
|
||
UINT16 PD2PIDCnt; //PD转PID计数
|
||
UINT8 CtrlPD2PID; //
|
||
//输出
|
||
TYPE_CAL MagCtrlResult[3]; //推力器控制器控制指令XYZ,正负表示控制力矩
|
||
TYPE_CAL MagCtrlXYZZ[MT_NUM];
|
||
TYPE_CAL Mag_DeltBb[3]; //磁速率
|
||
TYPE_CAL WheelCtrlResult[3]; //飞轮控制器控制指令XYZ,单位Nm
|
||
TYPE_CAL WheelCtrlResultPre[3];
|
||
TYPE_CAL ZK_Ctrl_Reserver111;
|
||
TYPE_CAL ZK_Ctrl_Reserver222;
|
||
UINT16 ZK_Ctrl_Reserver333;
|
||
UINT16 ZK_Ctrl_Reserver444;
|
||
UINT8 ZK_Ctrl_Reserver555;
|
||
UINT8 ZK_Ctrl_Reserver666;
|
||
}sAttCtlPara_t;
|
||
|
||
//指令分配模块参数
|
||
typedef struct
|
||
{
|
||
//控制轮
|
||
TYPE_CAL Wheel_TwcCmd[3]; //三个控制轮的控制指令
|
||
//配平轮
|
||
TYPE_CAL WheelD_MomOfForce_Cmd; //飞轮D力矩指令,单位Nm
|
||
TYPE_CAL WheelD_RotatSpd_Cmd; //飞轮D转速指令,单位rad/s
|
||
//飞轮指令(最终整理)
|
||
TYPE_CAL Whl_Torque[WHEEL_NUM]; //飞轮控制指令:转速
|
||
TYPE_CAL Wheel_LJCmd[WHEEL_NUM]; //飞轮控制指令:力矩
|
||
UINT16 Wheel_Cmd_Cnt; //飞轮电流指令发送计数
|
||
|
||
}AttCmdDsp_t;
|
||
|
||
/*姿控模式选择参数*/
|
||
typedef struct
|
||
{
|
||
|
||
UINT8 WorkMode; //当前工作模式
|
||
UINT8 MiniDataSet; //最小模式进入后,恢复一次数据使用
|
||
UINT8 WorkModePre; //上一工作模式
|
||
UINT8 WModSadaOpen; //帆板展开标志
|
||
UINT8 ZKSadaOpen; //帆板展开标志(重启用)
|
||
UINT8 WModSadaOpenPre; //帆板展开标志
|
||
UINT8 ModeSwitchFlg; //模式切换标志,
|
||
UINT8 Mod2UnctlFirst; //首次近无控标志
|
||
UINT8 ZKPowOnFirst; //首次分离/计算机冷启动
|
||
UINT8 ZKPowOnStep; //首次分离/计算机冷启动加电序列
|
||
UINT16 WModCnt1; //1、碰撞规避模式
|
||
UINT16 WModCnt2[2]; //2、速率阻尼
|
||
UINT16 WModCnt3; //3、轮控对日定向
|
||
UINT16 WModCnt4; //4、磁控对日定向
|
||
UINT16 WModCnt5; //5、对地定向
|
||
UINT16 WModCnt6; //6、稳态对地
|
||
UINT16 WModCnt7; //7、轨控前调姿
|
||
UINT16 WModCnt8; //8、轨道控制
|
||
UINT16 WModCnt9; //9、定向前调姿
|
||
UINT16 WModCntA; //10、对目标定向
|
||
UINT16 WModCntB; //11、无控模式
|
||
UINT8 ReDataBK; //姿控数据备份成功标准
|
||
UINT8 ATTFlashSwitch; //Flash数据更新标志
|
||
}sAttModPara_t;
|
||
|
||
//环境模型参数
|
||
typedef struct
|
||
{
|
||
UINT32 SatTime_s; //星上时
|
||
UINT32 SatTime_ms;
|
||
|
||
//太阳矢量
|
||
TYPE_CAL SunVecI[3]; //惯性系太阳矢量XYZ(单位矢量)
|
||
TYPE_CAL SunPosVecI[3]; //惯性系太阳位置矢量XYZ
|
||
UINT8 bInOutShadow; //进出地影标志
|
||
|
||
//地影判断
|
||
TYPE_CAL BetaAng; //beta角
|
||
UINT8 BetaShadow; //卫星进出影设置,0x55阴影区0阳照区
|
||
UINT32 BetaAngCntIn; //卫星进影判断计数 初始值为0
|
||
UINT32 BetaAngCntOut; //卫星出影判断计数 初始值为0
|
||
|
||
//磁场
|
||
TYPE_CAL fvBe[3]; //地东南系磁矢量
|
||
TYPE_CAL fvBi[3]; //惯性系磁矢量
|
||
TYPE_CAL fvBo[3]; //轨道系磁矢量
|
||
TYPE_CAL fvBb[3]; //本体系磁矢量输出
|
||
TYPE_CAL fLonLat[3]; //经纬度 ,地心距
|
||
UINT8 fvIn_Valid; //磁场公式有效标志
|
||
|
||
//轨道角速度
|
||
TYPE_CAL OrbAttRate_Wo; //轨道系下轨道角速度
|
||
|
||
}sAttEnvPara_t;
|
||
|
||
|
||
//故障处理模块参数
|
||
typedef struct
|
||
{
|
||
//陀螺异常
|
||
UINT8 GyroIn_PowerOn[GYRO_NUM]; //陀螺加电状态
|
||
UINT32 Gyro_PowerOnCnt[GYRO_NUM]; //陀螺加电状态计数
|
||
UINT16 GyroErrCnt[GYRO_NUM]; //陀螺异常诊断计数,上限60000
|
||
UINT32 Gyro_Err_Cnt1[GYRO_NUM]; //陀螺数据异常计数
|
||
UINT32 Gyro_Err_Cnt2[GYRO_NUM]; //陀螺故障重启计数
|
||
UINT32 Gyro_Err_Cnt3[GYRO_NUM]; //陀螺数据正常计数
|
||
UINT8 Gyro_err[GYRO_NUM]; //陀螺异常状态
|
||
UINT8 Gyro_Diag[GYRO_NUM]; //陀螺故障标志
|
||
|
||
//星敏异常
|
||
UINT8 ssIn_PowerOn[STAR_NUM]; //星敏加电状态
|
||
UINT32 ss_PowerOnCnt[STAR_NUM]; //星敏加电状态计数
|
||
UINT16 ssErrCnt[STAR_NUM]; //星敏异常诊断计数,上限60000
|
||
UINT32 ss_Err_Cnt1[STAR_NUM]; //星敏数据异常计数
|
||
UINT32 ss_Err_Cnt2[STAR_NUM]; //星敏故障重启计数
|
||
UINT32 ss_Err_Cnt3[STAR_NUM]; //星敏数据正常计数
|
||
UINT8 SS_err[STAR_NUM] ; //星敏数据异常状态
|
||
UINT8 ss_Diag[STAR_NUM]; //星敏故障标志
|
||
|
||
//磁强计异常
|
||
UINT8 MagIn_PowerOn[MAG_NUM]; //模拟磁强计A/B加电状态
|
||
UINT32 Mag_PowerOnCnt[MAG_NUM]; //模拟磁强计加电状态计数
|
||
UINT16 MagErrCnt[MAG_NUM]; //模拟磁强计异常诊断计数,上限60000
|
||
UINT16 MagNoErrCnt[MAG_NUM]; //模拟磁强计正常诊断计数,上限60000
|
||
UINT32 Mag_Err_Cnt1[MAG_NUM]; //模拟磁强计数据异常计数
|
||
UINT32 Mag_Err_Cnt2[MAG_NUM]; //模拟磁强计故障重启计数
|
||
UINT32 Mag_Err_Cnt3[MAG_NUM]; //模拟磁强计数据正常计数
|
||
UINT8 Mag_err[MAG_NUM] ; //模拟磁强计异常状态
|
||
UINT8 Mag_Diag[MAG_NUM]; //模拟磁强计故障标志
|
||
|
||
//飞轮异常
|
||
UINT8 WhlUseState; //飞轮使用状态
|
||
UINT8 WhlIn_PowerOn[WHEEL_NUM]; //飞轮加电状态
|
||
UINT32 Whl_PowerOnCnt[WHEEL_NUM]; //飞轮加电状态计数
|
||
UINT16 WhlTemErrCnt[WHEEL_NUM]; //轴温不正常计数
|
||
UINT16 WhlOutErrCnt[WHEEL_NUM]; //飞轮输出不正常计数
|
||
UINT32 Whl_Err_Cnt1[WHEEL_NUM]; //飞轮数据异常计数
|
||
UINT32 Whl_Err_Cnt2[WHEEL_NUM]; //飞轮故障重启计数
|
||
UINT32 Whl_Err_Cnt3[WHEEL_NUM]; //飞轮数据正常计数
|
||
UINT8 Whl_Err[WHEEL_NUM]; //飞轮异常状态
|
||
UINT8 Whl_Diag[WHEEL_NUM]; //飞轮故障标志
|
||
//PPU
|
||
UINT8 PPUIn_PowerOn; //电推加电状态
|
||
UINT32 PPU_PowerOnCnt; //电推加电状态计数
|
||
UINT8 PPU_Err; //PPU异常状态
|
||
//UINT8 PPUTXT_Err; //PPU异常状态
|
||
UINT8 PPU_Diag; //PPU故障标志
|
||
UINT16 PPUOutErrCnt; //PPU输出不正常计数
|
||
UINT16 PPUIn_ACurCnt; //阳极电源电流计数
|
||
UINT16 PPUIn_VCurCnt; //阳极电源电压计数
|
||
UINT16 PPUOUT_FIRECnt; //开机点火计数
|
||
UINT16 PPUOUT_TemperECnt; //气瓶管路四路测温点温度
|
||
UINT32 PPU_Err_Cnt1; //PPU数据异常计数
|
||
UINT32 PPU_Err_Cnt2; //PPU故障重启计数
|
||
UINT32 PPU_Err_Cnt3; //PPU数据正常计数
|
||
|
||
////姿态基准丢失
|
||
UINT16 AttLoseCnt; //姿态丢失计数
|
||
|
||
//姿态超差判断
|
||
UINT8 AttExFlg[3]; //三轴姿态超差标志YZ
|
||
UINT16 AttExCnt; //姿态超差计数
|
||
TYPE_CAL AngRateMod_RATEDMP[61]; //碰撞规避\速率阻尼下的角速度矢量模值
|
||
UINT16 YawCnt; //对地偏航/对目标偏航下偏航姿态超差计数
|
||
|
||
//姿态不稳定判断
|
||
UINT8 AttUnSta[3]; //X轴姿态不稳定标志YZ
|
||
UINT16 AttUnStaCnt; //姿态不稳定计数
|
||
UINT16 AttModCnt; //姿态不稳定计数
|
||
|
||
///*电推 需两拍 开关机操作标志 */
|
||
//UINT8 AttPPUOnReq; //PPU下一拍开动作标志默认0X00:没有操作,0x55:需下一拍开动作
|
||
//UINT8 AttPPUOffReq; //PPU下一拍关动作标志默认0X00:没有操作,0x55:需下一拍关动作
|
||
|
||
|
||
}sAttErrCtlPara_t;
|
||
|
||
//单机使用状态
|
||
typedef struct
|
||
{
|
||
UINT8 SSUseState[STAR_NUM]; //星敏使用状态,
|
||
UINT8 GyroUseState[GYRO_NUM]; //陀螺使用状态,
|
||
UINT8 Whl_Use[WHEEL_NUM]; //飞轮使用状态
|
||
UINT8 MagUseState[MAG_NUM]; //磁强计/表使用状态
|
||
UINT8 AssUseState[ASS_NUM]; //单个太敏可用标志
|
||
UINT8 MTUseStatus[MT_NUM]; //磁力矩使用状态
|
||
UINT8 PPUUseStatus; //PPU使用状态
|
||
UINT8 PPUSafeStatus; //PPU使用状态(整星安全使用)
|
||
}AttIMPTPara_t;
|
||
|
||
|
||
//重要数据备份区
|
||
typedef struct
|
||
{
|
||
sSaveDataHead sBKHead; //校验头部
|
||
UINT8 BK_WorkMode;
|
||
UINT8 BK_WorkModeChangeAuto;
|
||
UINT8 BK_SS_err[STAR_NUM];
|
||
UINT8 BK_Mag_err[MAG_NUM];
|
||
UINT8 BK_Gyro_err[GYRO_NUM];
|
||
UINT8 BK_Whl_Err[WHEEL_NUM];
|
||
UINT8 BK_PPU_Err;
|
||
UINT8 BK_SSUseState[STAR_NUM];
|
||
UINT8 BK_GyroUseState[GYRO_NUM];
|
||
UINT8 BK_Whl_Use[WHEEL_NUM];
|
||
UINT8 BK_MagUseState[MAG_NUM];
|
||
UINT8 BK_AssUseState[ASS_NUM];
|
||
UINT8 BK_MTUseStatus[MT_NUM];
|
||
UINT8 BK_PPUUseStatus;
|
||
UINT8 BK_Gyro_ComRESW[3];
|
||
UINT8 BK_Mag_ComRESW[3];
|
||
UINT8 BK_ssPrior[STAR_NUM];
|
||
UINT8 BK_GyroPrior[GYRO_NUM];
|
||
UINT8 BK_ss_Diag[STAR_NUM];
|
||
UINT8 BK_Mag_Diag[MAG_NUM];
|
||
UINT8 BK_Gyro_Diag[GYRO_NUM];
|
||
UINT8 BK_Whl_Diag[WHEEL_NUM];
|
||
UINT8 BK_Allow_Sensor_CThr;
|
||
UINT8 BK_AllowAttLoseDiagFlg;
|
||
UINT8 BK_AllowAttExDiagFlg;
|
||
UINT8 BK_AllowAttStaDiagFlg;
|
||
|
||
UINT8 BK_AllowssONOFF[STAR_NUM];
|
||
UINT8 BK_AllowGyroONOFF[GYRO_NUM];
|
||
UINT8 BK_AllowMagONOFF[MAG_NUM];
|
||
UINT8 BK_AllowWhlONOFF[WHEEL_NUM];
|
||
UINT8 BK_AllowPPUONOFF;
|
||
|
||
UINT32 iVldFlag; //有效标记,0x55555555为有效
|
||
|
||
}AttBKPara_t;
|
||
|
||
|
||
typedef struct
|
||
{
|
||
//UINT8 AttCtlBKFlag; //重要数据备份区的数据是否准备就绪
|
||
UINT8 WorkModeBK[3];
|
||
UINT8 WorkModeChangeAutoBK[3];
|
||
UINT8 SS_errBK[STAR_NUM][3];
|
||
UINT8 Mag_errBK[MAG_NUM][3];
|
||
UINT8 Gyro_errBK[GYRO_NUM][3];
|
||
UINT8 Whl_ErrBK[WHEEL_NUM][3];
|
||
UINT8 PPU_ErrBK[3];
|
||
UINT8 SSUseStateBK[STAR_NUM][3];
|
||
UINT8 AssUseStateBK[ASS_NUM][3];
|
||
UINT8 MagUseStateBK[MAG_NUM][3];
|
||
UINT8 GyroUseStateBK[GYRO_NUM][3];
|
||
UINT8 Whl_UseBK[WHEEL_NUM][3];
|
||
UINT8 MTUseStatusBK[MT_NUM][3];
|
||
UINT8 PPUUseStatusBK[3];
|
||
UINT8 Gyro_ComRESWBK[3][3];
|
||
UINT8 Mag_ComRESWBK[3][3];
|
||
UINT8 ssPriorBK[STAR_NUM][3];
|
||
UINT8 GyroPriorBK[GYRO_NUM][3];
|
||
UINT8 Allow_Sensor_CThrBK[3];
|
||
UINT8 AllowAttLoseDiagFlgBK[3];
|
||
UINT8 AllowAttExDiagFlgBK[3];
|
||
UINT8 AllowAttStaDiagFlgBK[3];
|
||
UINT8 AllowssONOFFBK[STAR_NUM][3];
|
||
UINT8 AllowGyroONOFFBK[GYRO_NUM][3];
|
||
UINT8 AllowMagONOFFBK[MAG_NUM][3];
|
||
UINT8 AllowWhlONOFFBK[WHEEL_NUM][3];
|
||
UINT8 AllowPPUONOFFBK[3];
|
||
|
||
}AttCtlData3T2_t;
|
||
|
||
|
||
typedef struct
|
||
{
|
||
UINT16 SHDepartCntlimt1;
|
||
|
||
//FLASH区在轨编程预留
|
||
UINT8 SADAFLASH_RESET1;
|
||
UINT8 SADAFLASH_RESET2;
|
||
UINT8 SADAFLASH_RESET3;
|
||
UINT16 SADAFLASH_RESET4;
|
||
UINT16 SADAFLASH_RESET5;
|
||
UINT16 SADAFLASH_RESET6;
|
||
TYPE_CAL SADAFLASH_RESET7;
|
||
TYPE_CAL SADAFLASH_RESET8;
|
||
TYPE_CAL SADAFLASH_RESET9;
|
||
}SadaCmdFlash_t;
|
||
|
||
|
||
/***********************************************
|
||
说明: Flash区
|
||
***********************************************/
|
||
typedef struct AttBackupFlash_s{
|
||
|
||
sSaveDataHead sBKHead; //校验头部
|
||
//姿控写入Flash数据
|
||
AttCmdFlash_t AttFlashPara;
|
||
//SADA写入Flash数据
|
||
SadaCmdFlash_t SadaFlashPara;
|
||
|
||
UINT32 iVldFlag; //有效标记,0x55555555为有效
|
||
} AttBackupFlash_t;
|
||
|
||
|
||
/***********************************************
|
||
说明: 在轨编程预留区
|
||
***********************************************/
|
||
typedef struct AttCmdRESET_s{
|
||
|
||
UINT8 ZGBCU8_Reset1;
|
||
UINT8 ZGBCU8_Reset2;
|
||
UINT8 ZGBCU8_Reset3;
|
||
UINT8 ZGBCU8_Reset4;
|
||
UINT8 ZGBCU8_Reset5;
|
||
UINT16 ZGBCU16_Reset1;
|
||
UINT16 ZGBCU16_Reset2;
|
||
UINT16 ZGBCU16_Reset3;
|
||
UINT16 ZGBCU16_Reset4;
|
||
UINT16 ZGBCU16_Reset5;
|
||
TYPE_CAL ZGBCF_Reset1;
|
||
TYPE_CAL ZGBCF_Reset2;
|
||
TYPE_CAL ZGBCF_Reset3;
|
||
TYPE_CAL ZGBCF_Reset4;
|
||
TYPE_CAL ZGBCF_Reset5;
|
||
} AttCmdRESET_t;
|
||
|
||
|
||
//姿控内部数据结构定义
|
||
typedef struct
|
||
{
|
||
sAttOrbitGetPara_t sOrbitPara; //轨道输入参数,数据预处理获取
|
||
sAttDataPrePara_t sPerPara; //数据据预处理参数
|
||
sAttDeterPara_t sDeterPara; //当前定姿参数
|
||
sAttCtlPara_t sCtlPara; //当前控制参数
|
||
sAttEnvPara_t sEnvPara; //当前环境模型参数
|
||
sAttGuidLawPara_t sGuidLawPara; //导引率模块参数
|
||
sAttModPara_t sModePara; //模式式参数,用于模式选择
|
||
sAttOrbitCtlInfo_t sOrbitInp; //轨控包数据
|
||
sAttTARCCtlInfo_t sTARCInp; //目标定向包数据
|
||
sAttErrCtlPara_t sErrCtlPara; //故障处理模块参数
|
||
AttCmdDsp_t sCmdDspPara; //指令分配
|
||
AttIMPTPara_t sIMPTPara; //单机使用状态
|
||
AttBKPara_t AttBKPara; //重要数据备份区
|
||
AttCtlData3T2_t AttData3T2Para; //三取二数据区
|
||
SadaCmdFlash_t ATSFlashPara; //sadaflash数据
|
||
AttCmdRESET_t sAttRESETPara; //在轨编程区预留
|
||
}sAttPriData;
|
||
|
||
//void ZKDev_PPU_OnOffProcess(UINT8 OnState);/*PPU开关机处理*/
|
||
void SetWheel(UINT8 WheelId, TYPE_CAL Value, UINT8 CmdType);
|
||
|
||
BOOL AttCtrlInit(UINT8 taskID);
|
||
void ZKPreAction(void);
|
||
void ZKPowerState(void);
|
||
void ZKCtrlReinitBK(void);
|
||
void ZKModInit(void);
|
||
void ZKDYInit(void);
|
||
void ZKMINICmdResolve(UINT8 *tmpCmd);
|
||
void ATTImportDataBackup(void);
|
||
void ATTSetBase3ToBuff(UINT8 *pTDATA, UINT8 *pSDATA);
|
||
void ZKDPAction(void);
|
||
void ZKPGAct(void);
|
||
void ZKDYAction(void);
|
||
void ZKCmdDspAct(void);
|
||
void ATTRestoreFromFlash(void);
|
||
|
||
/*AttRECheck.c文件的头文件*/
|
||
void ZKREInit(void);
|
||
void ImuPowerOnOff( UINT8 ChlON,UINT8 ChlOFF,UINT8 ONOFF, UINT32 *Cnt1 , UINT32 *Cnt2, UINT32 *Cnt3,UINT32 Cnt1Limt , UINT32 Cnt2Limt , UINT32 Cnt3Limt ,UINT32 Cnt4Limt ,UINT8 err, UINT8 *state);
|
||
void GyroImuErrJudge(void);
|
||
void SsImuErrJudge(void);
|
||
void MagImuErrJudge(void);
|
||
void WhlImuErrJudge(void);
|
||
void PPUImuErrJudge(void);
|
||
UINT8 AttLose(UINT8 i);
|
||
void AttLoseJudge(void);
|
||
void AttExJudge(void);
|
||
void AttUnStaJudge(void);
|
||
void ZKREAction(void);
|
||
|
||
/*AttPoseGet.c文件的头文件*/
|
||
void ZKPGInit(void);
|
||
void Gyro_AttChoice(void);
|
||
void Gyro_AttDeter(void);
|
||
void QuatDiffCal(TYPE_CAL * pQ_now, TYPE_CAL * pQ_pre, TYPE_CAL * pW);
|
||
void SsGyro_AngDeter(void);
|
||
void SsGyro_AttDeter(void);
|
||
void Cal_AngToSun(void);
|
||
void DertCalcBb(void);
|
||
void AttDeterOrb(void);
|
||
void AttDeterOrbCtrl(void);
|
||
void AttDeterTarRe(void);
|
||
void LoopAttDeter(void);
|
||
/*AttPoseCtrl.c文件的头文件*/
|
||
void ZKPosCtlInit(void);
|
||
void ZKPosCtlOutInit(void);
|
||
void MagDataDeltaProc(TYPE_CAL *cMagBb, TYPE_CAL *cMagBbPre, TYPE_CAL *cMagDelta, TYPE_CAL cDeltaT);
|
||
void CtrlMagBdotDamp(TYPE_CAL *cDeltBb, TYPE_CAL *cMagT);
|
||
void MagDmpMomentCal(void);
|
||
void MagSunMomentCal(void);
|
||
void WheelCalc_PD(void);
|
||
void WheelCalc_PID(void);
|
||
void Whl_Momentum_Count(void);
|
||
void CtrlWheelReleaseProc(void);
|
||
void CtrlModPD2PID(void);
|
||
void ZKPosCtlAct(sAttDeterPara_t *pAttDet, sAttGuidLawPara_t *pAttGuid, sAttCtlPara_t *pAttCtrl);
|
||
/*AttModeSel.c文件的头文件*/
|
||
void ZKModChgInit(void);
|
||
void ZKModDoSet(UINT8 newWMode);
|
||
void ZKDoModCal(void);
|
||
void ZKModeSel_Auto(void);
|
||
void ZKModeSel_Up(void);
|
||
void ZKDoModeAct(void);
|
||
/*AttEnvMod.c文件的头文件*/
|
||
void ZKEnvInit(void);
|
||
void ZKEnvCycInit(void);
|
||
void MJD_CAL_ATT(UINT32 sat_time, TYPE_CAL *pMjd);
|
||
void MJC_CAL_ATT(TYPE_CAL mjd, TYPE_CAL *pMjc, UINT8 *MJCLv);
|
||
void ObtSunVecI(TYPE_CAL JulC, TYPE_CAL *pSunVI, TYPE_CAL *pSunPVI);
|
||
void Cal_OrbAttRate_Wo(void);
|
||
void ShadowFlgCal(void);
|
||
void MagMath(TYPE_CAL *rLonLat, TYPE_CAL cgst, TYPE_CAL *B);
|
||
BOOL EarthLonLatCal(TYPE_CAL *cuR, TYPE_CAL *clonlat);
|
||
void TransMatrixIE(TYPE_CAL *clonlat, TYPE_CAL *cAie);
|
||
void ZKEnvAct(void);
|
||
/*AttDataPre.c文件的头文件*/
|
||
void ZKDPInit(void);
|
||
void Ss_DataGet(void );
|
||
|
||
#endif
|
||
|
||
|