我是靠谱客的博主 潇洒鞋子,最近开发中收集的这篇文章主要介绍遥感卫星飞行控制系统设计1 卫星姿态控制模块组成2 转动惯量和地球自转角速度3 初始姿态和目标姿态4 欧拉角转四元数及四元数转欧拉角5 仿真6 绘图分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 1 卫星姿态控制模块组成
  • 2 转动惯量和地球自转角速度
  • 3 初始姿态和目标姿态
  • 4 欧拉角转四元数及四元数转欧拉角
  • 5 仿真
  • 6 绘图分析

1 卫星姿态控制模块组成

其中执行机构为零动量反作用飞轮,此处略去;传感器测量部分也简化了,后续会补充基于EKF/UKF的星敏感器和陀螺组合的卫星姿态确定算法来代替图中的测量部分。
在这里插入图片描述

2 转动惯量和地球自转角速度

	static const double Jx = 1.25;     
	static const double Jy = 9.65;      
	static const double Jz = 9.65;   
	static const double d2r = 3.1415926 / 180.0;
	static const double we = 2 * 3.1415926 / 5431.184;

3 初始姿态和目标姿态

    double wx0 = 0.1 * d2r;                    // 角速度
    double wy0 = 0.1 * d2r;                    // 角速度
    double wz0 = 0.1 * d2r;                    // 角速度
    double roll0 = 10 * d2r;                   // 滚转角
    double pitch0 = 42.7 * d2r;                // 俯仰角
    double yaw0 = 5.6 * d2r;                   // 偏航角

    double roll1 = 5 * d2r;                  // 滚转角
    double pitch1 = 5 * d2r;                 // 俯仰角
    double yaw1 = 5 * d2r;                   // 偏航角

4 欧拉角转四元数及四元数转欧拉角

    // 顺序:Z-Y-X yaw pitch roll 
    double q0 = cos(0.5 * roll0) * cos(0.5 * pitch0) * cos(0.5 * yaw0) + sin(0.5 * roll0) * sin(0.5 * pitch0) * sin(0.5 * yaw0);
    double q1 = sin(0.5 * roll0) * cos(0.5 * pitch0) * cos(0.5 * yaw0) - cos(0.5 * roll0) * sin(0.5 * pitch0) * sin(0.5 * yaw0);
    double q2 = cos(0.5 * roll0) * sin(0.5 * pitch0) * cos(0.5 * yaw0) + sin(0.5 * roll0) * cos(0.5 * pitch0) * sin(0.5 * yaw0);
    double q3 = cos(0.5 * roll0) * cos(0.5 * pitch0) * sin(0.5 * yaw0) - sin(0.5 * roll0) * sin(0.5 * pitch0) * cos(0.5 * yaw0);
    
     // 顺序:Z-Y-X yaw pitch roll
    double roll = atan2(2.0 * (q2 * q3 + q0 * q1), q0 * q0 - q1 * q1 - q2 * q2 + q3 * q3);
    double pitch = asin(-2.0 * (q1 * q3 - q0 * q2));
    double yaw = atan2(2.0 * (q1 * q2 + q0 * q3), q0 * q0 + q1 * q1 - q2 * q2 - q3 * q3);

5 仿真

int main()
{
    Satellite satellite;
    satellite.Initialize(8, x0);
    satellite.SetTargetAttitude(roll1, pitch1, yaw1);
    while (satellite.gettime() <= 10)   satellite.OneStep(8, 0.01);   // 卫星仿真一步长
    return 0;
}

6 绘图分析

可以看到 C++ 和 Siimulink 仿真结果基本相同;
星体系相对于惯性系的角速度在星体系投影 wb_bi
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
星体系相对于轨道系的卫星姿态角
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
控制器指令控制力矩 Mc
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后

以上就是潇洒鞋子为你收集整理的遥感卫星飞行控制系统设计1 卫星姿态控制模块组成2 转动惯量和地球自转角速度3 初始姿态和目标姿态4 欧拉角转四元数及四元数转欧拉角5 仿真6 绘图分析的全部内容,希望文章能够帮你解决遥感卫星飞行控制系统设计1 卫星姿态控制模块组成2 转动惯量和地球自转角速度3 初始姿态和目标姿态4 欧拉角转四元数及四元数转欧拉角5 仿真6 绘图分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部