exponenta event banner

Проверка линеаризации в частотной области с использованием FRESTIMATE

В этом примере показано, как проверить результат блочной аналитической линеаризации с использованием оценки частотной характеристики. Для выполнения этого примера необходимо программное обеспечение Aerospace Blockset™.

Открытие модели

Откройте модель Simulink для легкого самолета. Дополнительные сведения об этой модели см. в разделе Облегченный дизайн самолетов (аэрокосмический блок).

mdl = 'scdskyhogg';
open_system(mdl)

Аналитически линеаризованная модель

Можно линеаризовать облегченную модель самолета по командному сигналу высоты, AltCmd, на измеренную высоту, h_sensed. Эти точки линейного анализа уже определены в модели.

io = getlinio(mdl)
2x1 vector of Linearization IOs: 
--------------------------
1. Linearization input perturbation located at the following signal:
- Block: scdskyhogg/Pilot/Add
- Port: 1
- Signal Name: AltCmd
2. Linearization output measurement located at the following signal:
- Block: scdskyhogg/Vehicle System Model/Avionics/Autopilot/Bus Selector1
- Port: 1
- Signal Name: <h_sensed>

Линеаризация модели с помощью linearize функция. Модель предварительно сконфигурирована для использования рабочей точки, полученной с помощью имитационного снимка при t = 75.

sys = linearize(mdl,io);
bode(sys)

Оценка частотной характеристики

Чтобы определить, правильно ли фиксируют результаты линеаризации характеристики нелинейной модели, например антирезонанс около 6,28 рад/с, можно проверить результат линеаризации с помощью frestimate.

Создайте входной сигнал синестрима. Используйте результат линеаризации в качестве входного аргумента для автоматической установки различных параметров синестрименного входного сигнала, таких как набор частот и количество периодов для каждой частоты, на основе линейной системы.

in = frest.Sinestream(sys);
in.Amplitude = 0.5
 
The sinestream input signal:
 
      Frequency           : [0.0034142;0.0054345;0.0086502;0.013768 ...] (rad/s)
      Amplitude           : 0.5
      SamplesPerPeriod    : [110417;69370;43582;27381 ...]
      NumPeriods          : [4;4;4;4 ...]
      RampPeriods         : 0
      FreqUnits (rad/s,Hz): rad/s
      SettlingPeriods     : [1;1;1;1 ...]
      ApplyFilteringInFRESTIMATE (on/off)    : on
      SimulationOrder (Sequential/OneAtATime): Sequential
 

Программное обеспечение выбирает 25 частоты, на которых вычисляется отклик. Эти частоты варьируются от 0,0034 рад/с до 14,5 рад/с. Частоты, которые выбираются автоматически, фокусируются на том, где происходит интересная динамика (например, антирезонанс при 6,28 рад/с). Количество периодов, которое потребуется системе для достижения устойчивого состояния, оценивается для каждой из этих частот и варьируется между 1 периодом (для 0,0034 рад/с) и 188 периодами (для 14,5 рад/с).

Оцените частотную характеристику с помощью этого входного сигнала. frestimate моделирует модель с помощью входного сигнала, что может занять длительное время в обычной имитационной модели. Чтобы ускорить моделирование, настройте модель для использования быстрого режима ускорения.

set_param(mdl,'SimulationMode','rapid');

Использование режима быстрого ускорения может значительно увеличить скорость моделирования. Фактическое повышение скорости зависит от конфигурации компьютера.

Для выполнения оценки частотного отклика используйте следующую команду.

sysest = frestimate(mdl,in,io);

В этом примере можно загрузить результат оценки из MAT-файла.

load scdskyhogg_frestresults.mat;

Сравните результат аналитической линеаризации с данными частотной характеристики из frestimate. Данные частотной характеристики и результаты аналитической линеаризации хорошо совпадают, что подтверждает наличие антирезонанса между частотами 1 и 10 рад/с в реальной модели нелинейного самолета.

bode(sys,sysest,'r*')

Закройте модель.

bdclose('scdskyhogg')

См. также

Связанные темы