⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 curve.m

📁 用Matlab实现的一个卫星自动导航模拟系统
💻 M
字号:
function curve(action)

xa=0;ya=1;za=0;
xb=sqrt(3)/2;yb=-1/2;zb=0;
xc=-sqrt(3)/2;yc=-1/2;zc=0;             %%A,B,C坐标

xn=0;yn=0;zn=-1;                       %%初始卫星所对准的点N

a=str2num(get(findobj(gcf,'tag','h_e1'),'string'));
b=str2num(get(findobj(gcf,'tag','h_e2'),'string'));
c=str2num(get(findobj(gcf,'tag','h_e3'),'string'));
xp=a;yp=b;zp=c;                        %%要求卫星所对准的点P



alpha1=acos((xa*xp+ya*yp)/(sqrt(xa^2+ya^2)*sqrt(xp^2+yp^2)));   
alpha2=acos((xb*xp+yb*yp)/(sqrt(xb^2+yb^2)*sqrt(xp^2+yp^2)));   
alpha3=acos((xc*xp+yc*yp)/(sqrt(xc^2+yc^2)*sqrt(xp^2+yp^2)));   
 
A=[alpha1;
   alpha2;
   alpha3];

alpha=min(A,[],1);                   %%计算alpha

      
 beta=acos((xn*xp+yn*yp+zn*zp)/sqrt(xn^2+yn^2+zn^2)/sqrt(xp^2+yp^2+zp^2));          %%计算beta
 
 
 v=50;   %%喷气对卫星本身的相对速度,单位是m/s
 Q=0.004*v;   %%喷气喷量最大值,单位是Kg/s
 J1=30000;  %%卫星对于过其质心一轴的转动惯量,单位是Kg*m^2
 J2=20000;  %%卫星对于过其质心另一轴的转动惯量,单位是Kg*m^2
 r=1;   %%6个喷嘴到卫星转动轴的距离,单位是m
 l=10;   %%上下两组喷嘴平面之间的距离,单位是m 
 
 
  
a1=6*Q*v*r/J2;
Time1=sqrt(alpha/a1);          %%计算第一次加速减速总时间                                      

a2=2*Q*v*l/J1;
Time2=sqrt(beta/a2);         %%计算第二次加速减速总时间  

aa=(cos(alpha)+cos(pi/3-alpha)+(sin(pi/3-alpha)-sin(alpha))*cos(pi/3+alpha)/sin(pi/3+alpha))*Q*v*l/J1;
Time=sqrt(beta/aa);         %%计算加速减速总时间   


t11=linspace(0,Time1,100);
t12=linspace(Time1,2*Time1,100);
y11=a1.*t11;
y12=2*a1*Time1-a1.*t12;

t21=linspace(0,Time2,100);
t22=linspace(Time2,2*Time2,100);
y21=a2.*t21;
y22=2*a2*Time2-a2.*t22;

beta11=a2.*t21.^2/2;
beta12=a2*Time2^2/2+a2*Time2.*(t22-Time2)-a2.*(t22-Time2).^2/2;

tt1=linspace(0,Time,100);
tt2=linspace(Time,2*Time,100);
yy1=aa.*tt1;
yy2=2*aa*Time-aa.*tt2;

beta21=aa.*tt1.^2/2;
beta22=aa*Time^2/2+aa*Time.*(tt2-Time)-aa.*(tt2-Time).^2/2;

figure
  
set(gcf,'numbertitle','off','name','角速度与转角曲线图');

set(gcf,'defaultuicontrolfontsize',11,'color',[0.4 0.8 0.6]);
  
    uicontrol(gcf,'style','text',...
                   'unit','normalized',...
                   'position',[0.24 0.94 0.1 0.03],...
                   'string','模型一',...
                   'fontsize',10);
                
    uicontrol(gcf,'style','text',...
                   'unit','normalized',...
                   'position',[0.70 0.64 0.1 0.03],...
                   'string','模型二',...
                   'fontsize',10);
  
  subplot(3,2,1)
  plot(t11,y11,'r',t12,y12,'r')
  ylabel('自转角速度')
  xlabel('时间')
  hold on
  
  subplot(3,2,3)
  plot(2*Time1,0,'k',2*Time1+t21,y21,'k',2*Time1+t22,y22,'k')
  ylabel('角速度')
  xlabel('时间')
  hold on
  
  subplot(3,2,5)
  plot(2*Time1,0,'r',2*Time1+t21,beta11,'r',2*Time1+t22,beta12,'r')
  ylabel('转角')
  xlabel('时间')
  hold on
  
  subplot(3,2,4)
  plot(tt1,yy1,'k',tt2,yy2,'k')
  ylabel('角速度')
  xlabel('时间')
  hold on
  
  subplot(3,2,6)
  plot(tt1,beta21,'r',tt2,beta22,'r')
  ylabel('转角')
  xlabel('时间')
 
 

⌨️ 快捷键说明

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