飞控姿态测算备份

main

format long
v_all = xlsread('D:\q1gongyousudu.xlsx');

v1 = v_all(:,2);
c0 = 0.3;
c1 = youliangbiandonghanshu(c0,v1);
%csvwrite('油箱1.csv',c1)
v2 = v_all(:,3);
c0 = 1.5;
c2 = youliangbiandonghanshu25(c0,v1,v2);
%csvwrite('油箱2.csv',c2)
v3 = v_all(:,4);
c0 = 2.1;
c3 = youliangbiandonghanshu(c0,v3);
%csvwrite('油箱3.csv',c3)
v4 = v_all(:,4);
c0 = 1.9;
c4 = youliangbiandonghanshu(c0,v4);
%csvwrite('油箱4.csv',c4)
%v = v_all(:,5)
%c0 = 2.6
%c5 = youliangbiandonghanshu(c0,v)
%csvwrite('油箱5.csv',c5)
v6 = v_all(:,6);
c0 = 0.8;
c6 = youliangbiandonghanshu(c0,v6);
%csvwrite('油箱6.csv',c6)
v5 = v_all(:,5);
c0 = 2.6;
c5 = youliangbiandonghanshu25(c0,v6,v5);

alpha_all = xlsread('D:\q1jiaodu.xlsx');
for i = 1:7200
alpha_all(i,2) = alpha_all(i,2)*(pi/180);
end



x = zeros(7200,1);
y = zeros(7200,1);
z = zeros(7200,1);

for i = 1:7200
    i
alpha = alpha_all(i,2);
b_c1 = c1(i,1);
a1 = 1.5;
b1 = 0.9;
H1 = 0.3;
[x10,y10,z10] =  hanshushiyong( a1,b1,b_c1,H1,alpha );
%x1(i,1) = x10;
%y1(i,1) = y10;
%z1(i,1) = z10;
b_c2 = c2(i,1);
a2 = 2.2;
b2 = 0.8;
H2 = 1.1;
[x20,y20,z20] =  hanshushiyong( a2,b2,b_c2,H2,alpha );
%x2(i,1) = x20;
%y2(i,1) = y20;
%z2(i,1) = z20;
b_c3 = c3(i,1);
a3 = 2.4;
b3 = 1.1;
H3 = 0.9;
[x30,y30,z30] =  hanshushiyong( a3,b3,b_c3,H3,alpha );
%x3(i,1) = x30;
%y3(i,1) = y30;
%z3(i,1) = z30;
b_c4 = c4(i,1);
a4 = 1.7;
b4 = 1.3;
H4 = 1.2;
[x40,y40,z40] =  hanshushiyong( a4,b4,b_c4,H4,alpha );
%x4(i,1) = x40;
%y4(i,1) = y40;
%z4(i,1) = z40;
b_c5 = c5(i,1);
a5 = 2.4;
b5 = 1.2;
H5 = 1;
[x50,y50,z50] =  hanshushiyong( a5,b5,b_c5,H5,alpha );
%x5(i,1) = x50;
%y5(i,1) = y50;
%z5(i,1) = z50;
b_c6 = c6(i,1);
a6 = 2.4;
b6 = 1;
H6 = 0.5;
[x60,y60,z60] =  hanshushiyong( a6,b6,b_c6,H6,alpha );
%x6(i,1) = x60;
%y6(i,1) = y60;
%z6(i,1) = z60;

[x_zongti,y_zongti,z_zongti] = eval('zongtizhixin(x10,y10,z10,b_c1,x20,y20,z20,b_c2,x30,y30,z30,b_c3,x40,y40,z40,b_c4,x50,y50,z50,b_c5,x60,y60,z60,b_c6)');
x(i,1) = x_zongti;
y(i,1) = y_zongti;
z(i,1) = z_zongti;
end

    
csvwrite('质心瞬时位置.csv',x,y,z)





function c = youliangbiandonghanshu( c0,v )
[d,n] = size(v)
m = zeros(d,1)
m(1,1) = c0*850
for i = 1:m
    m(i+1,1) = m(i,1) - v(i,1)
end
c = m/850
csvwrite('油箱1.csv',c)
end

function c = youliangbiandonghanshu( c0,c16,v )
[d,n] = size(v)
m = zeros(d,1)
m(1,1) = c0*850
for i = 1:m
    m(i+1,1) = m(i,1) - v(i,1)
end
c = m/850 + c16
%csvwrite('油箱1.csv',c)
end


function [x1,y1,z1] = youxiangjiaodu1(a,b,c,H,alpha)
syms x y z pa ph;
%pa = solve('c = (a-pa)*b*H+(2*H-pa*tan(alpha))*pa*b/2');%取正值
if alpha>=0
pa = abs(eval('((2^(1/2)*(-b*tan(alpha)*(c - H*a*b))^(1/2))/(b*tan(alpha)))'))
ph = eval('H - pa*tan(alpha)'); 
%ph = (H - ((H - c + H*a*b)/(tan(alpha)/2 + H*b))*tan(alpha))
x1 = eval('(int(int(int(x,z,-H/2,-H/2+ph+(a/2-x)*tan(alpha)),y,-b/2,b/2),x,a/2,a/2-pa)+int(int(int(x,z,-H/2,H/2),y,-b/2,b/2),x,a/2-pa,-a/2))/c');
y1 =   eval('(int(int(int(y,z,-H/2,-H/2+ph+(a/2-x)*tan(alpha)),y,-b/2,b/2),x,a/2,a/2-pa)+int(int(int(y,z,-H/2,H/2),y,-b/2,b/2),x,a/2-pa,-a/2))/c');
z1 =  eval('(int(int(int(z,z,-H/2,-H/2+ph+(a/2-x)*tan(alpha)),y,-b/2,b/2),x,a/2,a/2-pa)+int(int(int(z,z,-H/2,H/2),y,-b/2,b/2),x,a/2-pa,-a/2))/c');
else
    alpha = abs(alpha);
    pa = abs(eval('((2^(1/2)*(-b*tan(alpha)*(c - H*a*b))^(1/2))/(b*tan(alpha)))'))
    ph = eval('H - pa*tan(alpha)'); 
    x1 = eval('(int(int(int(x,z,-H/2,H/2),y,-b/2,b/2),x,a/2,a/2-pa)+int(int(int(x,z,-H/2,H/2-(x-(-a/2+pa))*tan(alpha)),y,-b/2,b/2),x,a/2-pa,-a/2))/c');
    y1 = eval('(int(int(int(y,z,-H/2,H/2),y,-b/2,b/2),x,a/2,a/2-pa)+int(int(int(y,z,-H/2,H/2-(x-(-a/2+pa))*tan(alpha)),y,-b/2,b/2),x,a/2-pa,-a/2))/c');
    z1 = eval('(int(int(int(z,z,-H/2,H/2),y,-b/2,b/2),x,a/2,a/2-pa)+int(int(int(z,z,-H/2,H/2-(x-(-a/2+pa))*tan(alpha)),y,-b/2,b/2),x,a/2-pa,-a/2))/c');
%CESHIHANSHU 此处显示有关此函数的摘要
%   此处显示详细说明x
end
end


function [x1,y1,z1] = youxiangjiaodu2(a,b,c,H,alpha)
syms x y z;
x1 = eval('(int(int(int(x,z,-H/2,-H/2+((2*c-b*a^2*tan(alpha))/(2*a*b))+(a/2-x)*tan(alpha)),y,-b/2,b/2),x,a/2,-a/2))/c');
y1 = eval('(int(int(int(y,z,-H/2,-H/2+((2*c-b*a^2*tan(alpha))/(2*a*b))+(a/2-x)*tan(alpha)),x,a/2,-a/2),y,-b/2,b/2))/c');
z1 = eval('(int(int(int(z,z,-H/2,-H/2+((2*c-b*a^2*tan(alpha))/(2*a*b))+(a/2-x)*tan(alpha)),y,-b/2,b/2),x,a/2,-a/2))/c');
%CESHIHANSHU 此处显示有关此函数的摘要
%   此处显示详细说明x
end


function [x1,y1,z1] = youxiangjiaodu2(a,b,c,H,alpha)
syms x y z;
if alpha>=0
%pa = solve('(a-pa)^2*tan(alpha)*b/2=c','pa')%取小于a的数值
pa =  abs(eval('(a - (2^(1/2)*c^(1/2))/(b^(1/2)*tan(alpha)^(1/2)))'))
x1 = eval('(int(int(int(x,z,-H/2,-H/2+[x-(a/2-pa)]*tan(alpha)),y,-b/2,b/2),x,a/2- pa,-a/2))/c');
y1 = eval('(int(int(int(y,z,-H/2,-H/2+[x-(a/2-pa)]*tan(alpha)),y,-b/2,b/2),x,a/2- pa,-a/2))/c');
z1 = eval('(int(int(int(z,z,-H/2,-H/2+[x-(a/2-pa)]*tan(alpha)),y,-b/2,b/2),x,a/2- pa,-a/2))/c');
else 
    alpha = abs(alpha)
    pa =  abs(eval('(a - (2^(1/2)*c^(1/2))/(b^(1/2)*tan(alpha)^(1/2)))'))
    x1 = eval('(int(int(int(x,z,-H/2,-H/2+[x-(pa-a/2)]*tan(alpha)),y,-b/2,b/2),x,a/2,pa-a/2))/c');
    y1 = eval('(int(int(int(y,z,-H/2,-H/2+[x-(pa-a/2)]*tan(alpha)),y,-b/2,b/2),x,a/2,pa-a/2))/c');
    z1 = eval('(int(int(int(z,z,-H/2,-H/2+[x-(pa-a/2)]*tan(alpha)),y,-b/2,b/2),x,a/2,pa-a/2))/c');
    %CESHIHANSHU 此处显示有关此函数的摘要
%   此处显示详细说明x
end

function [x,y,z] = zongtizhixin(x1,y1,z1,c1,x2,y2,z2,c2,x3,y3,z3,c3,x4,y4,z4,c4,x5,y5,z5,c5,x6,y6,z6,c6)
format long
x_1 = eval('x1 + 8.91304348')
y_1 = eval('y1 + 1.20652174')
z_1 = eval('z1 + 0.61669004')
x_2 = eval('x2 + 6.91304348')
y_2 = eval('y2 + -1.39347826')
z_2 = eval('z2 + 0.21669004')
x_3 = eval('x2 + -1.68695652')
y_3 = eval('y3 + 1.20652174')
z_3 = eval('z3 + -0.28330996')
x_4 = eval('x4 + 3.11304348')
y_4 =eval(' y4 + 0.60652174')
z_4 = eval('z4 + -0.18330996')
x_5 = eval('x5 + -5.28695652')
y_5 = eval('y5 + -0.29347826')
z_5 = eval('z5 + 0.41669004')
x_6 = eval('x6 + -2.08695652')
y_6 = eval('y6 + -1.49347826')
z_6 = eval('z6 + 0.21669004')
x = (x_1*c1+x_2*c2+x_3*c3+x_4*c4+x_5*c5+x_6*c6)/(c1+c2+c3+c4+c5+c6)
y = (y_1*c1+y_2*c2+y_3*c3+y_4*c4+y_5*c5+y_6*c6)/(c1+c2+c3+c4+c5+c6)
z = (z_1*c1+z_2*c2+z_3*c3+z_4*c4+z_5*c5+z_6*c6)/(c1+c2+c3+c4+c5+c6)
end

猜你喜欢

转载自blog.csdn.net/qq_42830971/article/details/112461313
今日推荐