主要内容

对机身进行配平和线性化

此示例说明如何使用 Simulink® Control Design™ 软件对机身进行配平和线性化。

目标是找到当飞机以设定速度飞行时,能够产生给定迎角的升降舵偏转角以及由此产生的配平机体角速度。

一旦找到配平条件,就可以计算出描述配平条件附近状态动态特性的线性模型。

固定参数:

  • 迎角 (Theta)

  • 机体姿态 (U)

  • 位置

配平稳态参数:

  • 升降舵偏转角 (w)

  • 机体角速度 (q)

计算工作点

打开模型。

mdl = 'scdairframe';
open_system(mdl)

使用模型初始条件为模型创建一个工作点设定对象。

opspec = operspec(mdl)
opspec = 


 Operating point specification for the Model scdairframe.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
     x         Known    SteadyState     Min         Max        dxMin       dxMax   
___________ ___________ ___________ ___________ ___________ ___________ ___________
                                                                                   
(1.) scdairframe/EOM/3DOF (Body Axes)/Position
     0         false       true        -Inf         Inf        -Inf         Inf    
-3047.9999     false       true        -Inf         Inf        -Inf         Inf    
(2.) scdairframe/EOM/3DOF (Body Axes)/Theta
     0         false       true        -Inf         Inf        -Inf         Inf    
(3.) scdairframe/EOM/3DOF (Body Axes)/U,w
    984        false       true        -Inf         Inf        -Inf         Inf    
     0         false       true        -Inf         Inf        -Inf         Inf    
(4.) scdairframe/EOM/3DOF (Body Axes)/q
     0         false       true        -Inf         Inf        -Inf         Inf    

Inputs: 
----------
  u   Known  Min   Max 
_____ _____ _____ _____
                       
(1.) scdairframe/Fin Deflection
  0   false -Inf   Inf 

Outputs: 
----------
        y               Known              Min               Max             Period       PeriodicTolerance
_________________ _________________ _________________ _________________ _________________ _________________
                                                                                                           
(1.) scdairframe/q
        0               false             -Inf               Inf               -1              0.0001      
(2.) scdairframe/az
        0               false             -Inf               Inf               -1              0.0001      

指定模型中哪些状态:

  • 在工作点处已知

  • 在工作点处处于稳态

指定 Position 状态为已知,且不处于稳态。对于状态值(在 opspec.States(1).x 中指定),使用模型初始条件的默认值。

opspec.States(1).Known = [1;1];
opspec.States(1).SteadyState = [0;0];

指定第二个状态(对应于迎角 Theta)为已知,但不处于稳态。与位置状态一样,使用模型初始条件的默认状态值。

opspec.States(2).Known = 1;
opspec.States(2).SteadyState = 0;

第三个状态设定包括机体轴线角速度 Uw。指定两个状态在工作点处均为已知,且 w 处于稳态。

opspec.States(3).Known = [1 1];
opspec.States(3).SteadyState = [0 1];

搜索满足这些设定的工作点。

op = findop(mdl,opspec);
 Operating point search report:
---------------------------------

opreport = 


 Operating point search report for the Model scdairframe.
 (Time-Varying Components Evaluated at time t=0)

Operating point search completed successfully using optimization.
States: 
----------
    Min          x          Max        dxMin        dx         dxMax   
___________ ___________ ___________ ___________ ___________ ___________
                                                                       
(1.) scdairframe/EOM/3DOF (Body Axes)/Position
     0           0           0         -Inf         984         Inf    
-3047.9999  -3047.9999  -3047.9999     -Inf          0          Inf    
(2.) scdairframe/EOM/3DOF (Body Axes)/Theta
     0           0           0         -Inf     -0.0097235      Inf    
(3.) scdairframe/EOM/3DOF (Body Axes)/U,w
    984         984         984        -Inf       22.6897       Inf    
     0           0           0           0      -1.4367e-11      0     
(4.) scdairframe/EOM/3DOF (Body Axes)/q
   -Inf     -0.0097235      Inf          0      1.1477e-16       0     

Inputs: 
----------
   Min        u        Max   
_________ _________ _________
                             
(1.) scdairframe/Fin Deflection
  -Inf    0.0014161    Inf   

Outputs: 
----------
   Min         y         Max    
__________ __________ __________
                                
(1.) scdairframe/q
   -Inf    -0.0097235    Inf    
(2.) scdairframe/az
   -Inf     -0.24207     Inf    

模型线性化

要在计算出的工作点处对模型进行线性化,请首先指定线性化输入和输出点。

io(1) = linio('scdairframe/Fin Deflection',1,'input');
io(2) = linio('scdairframe/EOM',3,'output');
io(3) = linio('scdairframe/Selector',1,'output');

在工作点处对模型进行线性化。

sys = linearize(mdl,op,io);

绘制线性模型的波特幅值响应。

bodemag(sys)

bdclose('scdairframe')

另请参阅

| | |

主题