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

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