伪谱法II使用教程,详细介绍了伪谱法II的使用方法
伪谱法II使用教程,详细介绍了伪谱法II的使用方法
最优控制学习笔记,核心内容
最优控制学习笔记,核心内容
opti求解器,用于求解非线性优化问题
Matlab自带优化工具箱提供了fmincon等诸多函数解决含约束条件的优化问题,但如果需要求解含整数约束的混合优化问题,fmincon就不是特别合适了,虽然提供了遗传算法优化函数ga,不过速度可能比较慢,因此有时候需要寻求第三方工具箱,最近发现一款名为OPTI Toolbox的三方工具箱可以作为Matlab自带优化工具箱的补充,用于求解一些比较复杂的问题。OPTI Toolbox集成了一系列优化求解器,其官方主页为https://www.inverseproblem.co.nz/OPTI/index.php/Main/HomePage,上面有对OPTI Toolbox的组成和使用方法的详细介绍,其代码的github地址为https://github.com/jonathancurrie/OPTI,不过从2019年其开发者就官宣停止维护了,见https://groups.google.com/forum/#!topic/opti-toolbox-forum/dR6x-1gBMkA,比较遗憾,不过现存的版本也已经足够强大了,下面简单介绍一下OPTI Toolbox的安装方法,这里默认已经
非线性优化问题求解器ACADO
ACADO Toolkit 是一个用 C++ 编写的用于自动控制和动态优化的软件环境和算法集合。 它提供了一个通用框架,用于使用多种算法进行直接优化控制,包括模型预测控制以及状态和参数估计。ACADO 工具包是作为独立的 C++ 代码实现的,并带有用户友好的 MATLAB 界面。 面向对象的设计允许方便地耦合现有优化包并使用用户编写的优化例程对其进行扩展。它还提供(独立)高效实施的 Runge-Kutta 和 BDF 积分器,用于模拟 ODE 和 DAE。
————————————————
版权声明:本文为优快云博主「tzr0725」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/tzr0725/article/details/120632370
GPOPS2软件包、使用说明、安装方式等
GPOPS2软件包、使用说明、安装方式等全包括,用户可利用该资料进行飞行器轨迹规划,主要利用高斯伪谱法进行离散,随后利用序列二次优化方法进行寻优。
linear_solver.m
% 功能:线性代数方程求解:AX=B
% 解的判定矩阵:C=[A B]
% 求解方法分三种情况讨论:
% 唯一解:A为非奇异方阵,x=inv(A)*B
% 无穷解:rank(A)=rank(C)<n
% 基础解系:x1=null(A)
% 特解:x=pinv(A)*B
% 无解:矛盾方程的最小二乘解法
Student_5_BDS_Positioning.m
% 功能:由伪距、伪距变化率,进行单点定位、定速计算。
% 输入:-------------------------------------------------------------------
% Rou: 伪距观测值(m),32*1维
% Rou_Dot: 伪距变化率观测值(m/s),32*1维
% Weight: 权矩阵,32*32维,第 i行 i列元素为 1表示第 i个伪距观测方程有效,为 0表示无效。
%
% Pos_Sat_0: 卫星位置(m),3*32维,WGS84坐标系
% Vel_Sat_0: 卫星速度(m/s),3*32维,WGS84坐标系
%
Student_4_SatPos_Vel.m
% 功能: 计算卫星的位置与速度------------------------------------------
% 输入: -------------------------------------------------------------
% ephemeris(1); %整型,卫星编号Mark
% ephemeris(2); %整型,星期数wn
% ephemeris(3); %数据龄期aode
% ephemeris(4); %卫星钟差改正参考时刻toc(秒)
% ephemeris(5); %卫星钟差改正系数af2(秒/秒2)
% ephemeris(6);
Student_3_KF_MeasureUpdate.m
功能:扩展卡尔曼滤波EKF的测量更新
% 输入:
% GPSDat——当前时刻GPS定位定速结果,维数:1*7,时刻(s)、位置(m,n0系) 和速度(m/s,n系);
% MIMURes—— SINS惯导积分解算结果结构体,其元素有:
% MIMURes.MIMUTime 当前时刻 MIMU测量数据的时刻值
% MIMURes.dt 当前时刻积分时间间隔(s)
% MIMURes.Cb2n 当前时刻 MIMU所在载体b系到当地NED n系的方向余弦矩阵
% MIMURes.Qua 当前时刻 n系到 b系的旋转四元数
% MIMURes.Att 当前时刻 n系到 b系的旋转欧拉角(321转序),滚动角、俯仰角、偏航角,量纲:rad ;
% MIMURes.Vel 当前时刻 b系相对于 n系的平动速度,当地北东地坐标系 n系,单位:m/s
% MIMURes.BLH 当前时刻 b系所在位置的大地坐标,纬度(rad)、经度(rad)和高度(m)
% NavEarthPar——与导航相关的地球物理参数结构体,有9个元素:
% NavEarthPar.Grav_n n系中载体所在位置的地球重力加速度矢量(m/s^2)
% NavEarthPar.w_ien e系相对于 i系的旋转角速度矢量在 n系中的值(rad/s)
% NavEarthPar.w_enn n系相对于 e系的旋转角速度矢量在 n系中的值(rad/s)
% NavEarthPar.w_inn n系相对于 i系的旋转角速度矢量在 n系中的值(rad/s)
% NavEarthPar.Rn 载体所在位置地球参考椭球子午圈半径(m)
% NavEarthPar.Re 载体所在位置地球参考椭球卯酉圈半径(m)
% NavEarthPar.CB 载体所在位置大地纬度 B的余弦值
% NavEarthPar.SB 载体所在位置大地纬度 B的正弦值
% NavEarthPar.TB 载体所在位置大地纬度 B的正切值
% ErrState——当前时刻误差状态预报值,15*1数组,数据格式:
% 第1-3行——纬度误差(rad)、经度误差(rad)和高程误差(m);
% 第4-6行——速度误差(m/s),当地北东地坐标系 n系 ;
% 第7-9行——失准角(rad),n系至失准后的 n系;
% 第10-12行——陀螺偏差(rad/s);
% 第13-15行——加表偏差(m/s^2)。
% ErrStateCov—————————当前时刻误差状态预报值协方差矩阵,15x15矩阵,量纲与误差状态ErrState的对应。
% 输出:
% ErrState————————— 当前时刻误差状态测量更新值,15*1数组,数据格式:
% 第1-3行——纬度误差(rad)、经度误差(rad)和高程误差(m);
% 第4-6行——速度误差(m/s),当地北东地坐标系 n系 ;
% 第7-9行——失准角(rad),n系至失准后的 n系;
% 第10-12行——陀螺偏差(rad/s);
% 第13-15行——加表偏差(m/s^2)。
% ErrStateCov————————— 当前时刻误差状态测量更新值协方差矩阵,15x15矩阵,量纲与误差状态ErrState的对应。
惯性导航姿态动态初始化
功能:姿态动态初始化
输入:
gpsdat1 % 前一时刻GPS导航数据
BLH1 % 前一时刻载体位置
mimudat1 % 前一时刻MIMU测量数据
gpsdat2 % 当前时刻GPS导航数据
BLH2 % 当前时刻载体位置
mimudat2 % 当前时刻MIMU测量数据
输出:
attitude % 中间时刻体坐标系b 相对于移动站北东地坐标系n 的姿态角。
Q_n_b % 中间时刻移动站北东地坐标系n 至体坐标系b 的旋转四元数。
Student_1_Dynamic_Attitude_Alignment_Coarse.m
功能:用于惯性导航的位置速度姿态时间更新
输入:
t1 %时刻(s),GPST
r1 %位置,纬度(rad)、经度L(rad)、高程(m)
v1 %当地北东地坐标系n 中的速度(m/s)
q1 %n 系至 b 系的旋转单位四元数,无量纲
f1 %b系中的视加速度(m/s^2)
w1 %b系相对于i 系的旋转角速度矢量在b系中的值(rad/s)
dt %时间间隔(s)
输出:
r2 %位置,纬度(rad)、经度L(rad)、高程(m)
v2 %当地北东地坐标系n 中的速度(m/s)
q2 %n 系至 b 系的旋转单位四元数,无量纲
姿态变换matlab(1).zip
用matlab编写了不同姿态之间的相互转换函数,导航系N为北东地坐标系,依此绕Z、Y、X旋转得到载体系B,选用欧拉角、四元数和方向余弦阵进行描述,得到了dcm2eul、eul2dcm、eul2qua和qua2dcm函数。