b-frame到n-frame坐标转移矩阵求解(欧拉角形式)

Skew-Symmetry(斜对称)矩阵的定义

MATLAB实现

function S = smtrix_gen(lambda)
    S = [0, -lambda(3), lambda(2); 
        lambda(3), 0, -lambda(1); 
        -lambda(2), lambda(1), 0];
end

旋转矩阵求解

 

 

将旋转过程沿x,y,z轴分为三次进行,方向向量分别为[1, 0, 0]T,[0, 1, 0]T与[0, 0, 1]T,角度分别为φ,θ与ψ。由此可得三个旋转矩阵分别如下所示:

 则

 

展开得

展开得

同时由于旋转矩阵的正交性,可得

相应的轨迹可由欧拉积分近似得到

 在MATLAB中,由欧拉角求得旋转矩阵可使用函数angle2dcm()实现,示例如下

phi = 0;
theta = 0.1;
psi = 0.7854;

dcm = angle2dcm(psi, theta, phi); %z to y to x.

 示例结果如下

 角速度转移矩阵求解

设b-frame下角速度向量为\omega _{nb}^{b} =[p, q, r]^{T},而n-frame下欧拉速度矢量(Euler rate vector)为\dot{\Theta } = \left [ \dot{\phi }, \dot{\theta}, \dot{\psi} \right ] ^{T},则可得如下关系

根据上述旋转过程(即分三次计算旋转过程) 则可得

左边展开可得

则欧拉姿态角的变化量(即欧拉速度矢量)为

 角速度转移矩阵的MATLAB实现代码如下

function T = angle_trans_euler(phi, theta)
    T = [1, sin(phi)*tan(theta), cos(phi)*tan(theta);
        0, cos(phi), -sin(phi);
        0, sin(phi)/cos(theta), cos(phi)/cos(theta)];
end

总结,6自由度下b-frame到n-frame的转移矩阵计算分为线速度的变化以及角速度的变换,其动力学方程组可表示为向量(矩阵)形式,如下

 具体MATLAB代码实现如下

function [J, J1, J2] = b_frame2n_frame_eulerangle(phi, theta, psi)
    J1 = angle2dcm(psi, theta, phi)'; %z to y to x.
    J2 = angle_trans_euler(phi, theta);
    
    J = [J1, zeros(3, 3);
        zeros(3, 3), J2];
end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值