• 大小: 22KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: Simulink  

资源简介

首先建立卫星动力学和运动学方程;其次基于自适应PID控制方法,实现卫星姿态的渐进稳定控制。

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%基于四元素和角速度的PID控制器的设计%%%%%%%%%%%%%%
function [sysx0strtssimStateCompliance] = controller(txuflag)

switch flag

 
  case 0
    [sysx0strtssimStateCompliance]=mdlInitializeSizes;


  case 3
    sys=mdlOutputs(txu);

    
end


%
function [sysx0strtssimStateCompliance]=mdlInitializeSizes


sizes = simsizes;

sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 3;
sizes.NumInputs      = 7;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed

sys = simsizes(sizes);
x0  = [];

str = [];


ts  = [0 0];
simStateCompliance = ‘UnknownSimState‘;


function sys=mdlDerivatives(~~~)

sys = [];




function sys=mdlOutputs(~~u)
qe0=u(1);
qe1=u(2);
qe2=u(3);
qe3=u(4);
qe=[qe1 qe2 qe3]‘;
we1=u(5);
we2=u(6);
we3=u(7);
%%%%%%%%%%%%%%%%%%%自适应参数设置%%%%%%%%%%%%%%%%%
syms t;         %%%%%%%%%%%%%%%%%%定义变量t
t=sqrt(qe‘*qe);
lamda=exp(-t); 
%%基本思想是:初始阶段姿态误差角度较大时,能够实现快速机动至目标姿态附近,当接近目标时,又可以减小
%%运动速度,从而避免过大的超调,当到达控制目标后,又可以稳定在控制目标周围,且具有一定的鲁棒性
kp=(20*exp(5*t)).*[110.2425 220.113318 110.11];                         
kd=10*(1-exp(-5/t)).*[600.7569 750.8386 660.8378]; 
% kp=[110.2425 220.113318 110.11]; 
% kd=[600.7569 750.8386 660.8378]; 
ut(1)=kp(1)*qe1+kd(1)*we1;
ut(2)=kp(2)*qe2+kd(2)*we2;
ut(3)=kp(3)*qe3+kd(3)*we3;
sys(1) = ut(1);
sys(2) = ut(2);
sys(3) = ut(3);


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1549  2016-06-05 09:09  adaptive PID control\controller.m

     文件       2420  2016-06-05 09:08  adaptive PID control\fig.m

     文件       1029  2016-03-31 14:18  adaptive PID control\Initial.m

     文件      20485  2016-06-05 09:23  adaptive PID control\satellator.slx

     目录          0  2016-11-02 16:07  adaptive PID control

----------- ---------  ---------- -----  ----

                25483                    5


评论

共有 条评论