exponenta event banner

Обрезка и линеаризация корпуса самолета

В этом примере показано, как выполнить обрезку и линеаризацию корпуса самолета. Сначала нам нужно найти отклонение лифта и результирующую скорость (q) обрезанного тела, которые будут генерировать заданное значение падения, когда корпус самолета движется с заданной скоростью. Как только мы найдем условие обрезки, мы сможем вывести линейную модель для динамики состояний вокруг условия обрезки.

        Fixed parameters  :
                            Incidence (Theta)
                            Body attitude (U)
                            Position
        Trimmed steady state parameters :
                            Elevator deflection (w)
                            Body rate (q)

Создание операционных точек

Откройте модель.

scdairframe

Для получения объекта спецификации операционной точки используется команда operspec:

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

States: 
----------
(1.) scdairframe/EOM/ Equations of Motion (Body Axes)/Position
	 spec:  dx = 0,  initial guess: 0
	 spec:  dx = 0,  initial guess: -3.05e+03
(2.) scdairframe/EOM/ Equations of Motion (Body Axes)/Theta
	 spec:  dx = 0,  initial guess: 0
(3.) scdairframe/EOM/ Equations of Motion (Body Axes)/U,w
	 spec:  dx = 0,  initial guess: 984
	 spec:  dx = 0,  initial guess: 0
(4.) scdairframe/EOM/ Equations of Motion (Body Axes)/q
	 spec:  dx = 0,  initial guess: 0

Inputs: 
----------
(1.) scdairframe/Fin Deflection
	 initial guess: 0            

Outputs: 
----------
(1.) scdairframe/q
	 spec:  none
(2.) scdairframe/az
	 spec:  none


Во-первых, мы задаем спецификации состояния положения, которые известны, но не в установившемся состоянии:

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

Второй спецификацией состояния является тета, которая известна, но не находится в установившемся состоянии:

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

Спецификация третьего состояния включает угловые скорости оси тела, где переменная w находится в установившемся состоянии:

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

Далее выполняется поиск рабочей точки, соответствующей данной спецификации.

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

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

Operating point specifications were successfully met.
States: 
----------
(1.) scdairframe/EOM/ Equations of Motion (Body Axes)/Position
      x:             0      dx:           984
      x:     -3.05e+03      dx:             0
(2.) scdairframe/EOM/ Equations of Motion (Body Axes)/Theta
      x:             0      dx:      -0.00972
(3.) scdairframe/EOM/ Equations of Motion (Body Axes)/U,w
      x:           984      dx:          22.7
      x:             0      dx:     -1.44e-11 (0)
(4.) scdairframe/EOM/ Equations of Motion (Body Axes)/q
      x:      -0.00972      dx:      1.72e-16 (0)

Inputs: 
----------
(1.) scdairframe/Fin Deflection
      u:       0.00142    [-Inf Inf]

Outputs: 
----------
(1.) scdairframe/q
      y:      -0.00972    [-Inf Inf]
(2.) scdairframe/az
      y:        -0.242    [-Inf 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('scdairframe',op,io);
bodemag(sys)

bdclose('scdairframe')