Обрежьте и линеаризуйте корпус

В этом примере показано, как обрезать и линеаризовать корпус с помощью программного обеспечения 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: 
----------
      <strong>x</strong>      <strong>Known</strong>    <strong>SteadyState</strong>    <strong>Min</strong>     <strong>Max</strong>    <strong>dxMin</strong>    <strong>dxMax</strong>
    <strong>_____</strong>    <strong>_____</strong>    <strong>___________</strong>    <strong>____</strong>    <strong>___</strong>    <strong>_____</strong>    <strong>_____</strong>

(1.) scdairframe/EOM/ Equations of Motion (Body Axes)/Position
        0    false       true        -Inf    Inf    -Inf      Inf 
    -3048    false       true        -Inf    Inf    -Inf      Inf 
(2.) scdairframe/EOM/ Equations of Motion (Body Axes)/Theta
        0    false       true        -Inf    Inf    -Inf      Inf 
(3.) scdairframe/EOM/ Equations of Motion (Body Axes)/U,w
      984    false       true        -Inf    Inf    -Inf      Inf 
        0    false       true        -Inf    Inf    -Inf      Inf 
(4.) scdairframe/EOM/ Equations of Motion (Body Axes)/q
        0    false       true        -Inf    Inf    -Inf      Inf 

Inputs: 
----------
    <strong>u</strong>    <strong>Known</strong>    <strong>Min</strong>     <strong>Max</strong>
    <strong>_</strong>    <strong>_____</strong>    <strong>____</strong>    <strong>___</strong>

(1.) scdairframe/Fin Deflection
    0    false    -Inf    Inf

Outputs: 
----------
    <strong>y</strong>    <strong>Known</strong>    <strong>Min</strong>     <strong>Max</strong>
    <strong>_</strong>    <strong>_____</strong>    <strong>____</strong>    <strong>___</strong>

(1.) scdairframe/q
    0    false    -Inf    Inf
(2.) scdairframe/az
    0    false    -Inf    Inf

Задайте, который состояния в модели:

  • Известный в рабочей точке

  • В устойчивом состоянии в рабочей точке

Укажите что 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;

Третья спецификация состояния включает связанную ось угловые уровни U и w. Укажите, что оба состояния известны в рабочей точке и что 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 specifications were successfully met.
States: 
----------
     <strong>Min</strong>         <strong>x</strong>          <strong>Max</strong>     <strong>dxMin</strong>        <strong>dx</strong>         <strong>dxMax</strong>
    <strong>_____</strong>    <strong>__________</strong>    <strong>_____</strong>    <strong>_____</strong>    <strong>___________</strong>    <strong>_____</strong>

(1.) scdairframe/EOM/ Equations of Motion (Body Axes)/Position
        0             0        0    -Inf             984     Inf 
    -3048         -3048    -3048    -Inf               0     Inf 
(2.) scdairframe/EOM/ Equations of Motion (Body Axes)/Theta
        0             0        0    -Inf      -0.0097235     Inf 
(3.) scdairframe/EOM/ Equations of Motion (Body Axes)/U,w
      984           984      984    -Inf           22.69     Inf 
        0             0        0       0     -1.4367e-11       0 
(4.) scdairframe/EOM/ Equations of Motion (Body Axes)/q
     -Inf    -0.0097235      Inf       0      1.1477e-16       0 

Inputs: 
----------
    <strong>Min</strong>         <strong>u</strong>        <strong>Max</strong>
    <strong>____</strong>    <strong>_________</strong>    <strong>___</strong>

(1.) scdairframe/Fin Deflection
    -Inf    0.0014161    Inf

Outputs: 
----------
    <strong>Min</strong>         <strong>y</strong>         <strong>Max</strong>
    <strong>____</strong>    <strong>__________</strong>    <strong>___</strong>

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

Смотрите также

| | |

Похожие темы