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

В этом примере показано, как обрезать и линеаризовать корпус. Мы сначала должны найти отклонение лифта и получившийся обрезанный уровень тела (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];

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

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')