getf.m

来自「前人用四阶龙格库塔方法进行微分方程解算,用matlab编写的源代码,主要用于四元」· M 代码 · 共 27 行

M
27
字号
function Ft = getf(qnb, vn, pos, fb)
%求系统矩阵Ft
    global glv
    [wnie,wnen,rmh,rnh,gn] = earth(pos,vn);
	sl = sin(pos(1)); cl = cos(pos(1)); tl = sl/cl; secl = 1/cl; secl2 = secl^2;;
    f_RMh = 1/rmh; f_RNh = 1/rnh; f_RMh2 = f_RMh^2; f_RNh2 = f_RNh^2;
    %%%
    M1 = [0, 0, 0; -glv.wie*sl, 0, 0; glv.wie*cl, 0, 0];
    M2 = [0, -f_RMh, 0; f_RNh, 0, 0; f_RNh*tl, 0, 0];
    M3 = [0, 0, vn(2)*f_RMh2; 0, 0, -vn(1)*f_RNh2; vn(1)*secl2*f_RNh, 0, -vn(1)*tl*f_RNh2];
    M13 = M1+M3;
    M4 = askew(vn)*M2 - askew(2*wnie+wnen);                                                                         
    M5 = askew(vn)*(2*M1+M3);
    M6 = [0, f_RMh, 0; secl*f_RNh, 0, 0; 0, 0, 1];
    M7 = [0, 0, -vn(2)*f_RMh2; vn(1)*secl*tl*f_RNh, 0, -vn(1)*secl*f_RNh2; 0, 0, 0];
    S1 = askew(wnie+wnen); S3 = askew(qmulv(qnb,fb));
    o3 = zeros(3,3);   Cnb = q2cnb(qnb);
    %%%%%  fi    dvn   dpos     eb       db 
    Ft = [ -S1   M2    M13       -Cnb      o3 
           S3    M4    M5         o3        Cnb 
           o3    M6    M7         o3        o3  
           o3    o3    o3         o3        o3 
           o3    o3    o3         o3       o3  ]; 
%     Ft = [ -S1   M2    M13 
%            S3    M4    M5 
%            o3    M6    M7   ]; 
                      

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?