Написание скрипта в MATLAB¶
Этот код MATLAB инициализирует параметры и начальные условия, запускает симуляцию модели в Simulink, извлекает данные результатов и управляет моделями Simulink.
clear;
% init parameters
[A, B, C, D] = uav1_data();
init = [0.1 0 0 0];
ref_signal = -0.1;
t_s = 0;
t_e = 1200;
dt = 0.1;
sim_out = sim('uav1_model.slx');
y = sim_out.get('yout');
u = y.getElement(1).Values.Data;
w = y.getElement(2).Values.Data;
q = y.getElement(3).Values.Data;
theta = y.getElement(4).Values.Data;
t = y.getElement(5).Values.Data;
bdclose('all');
open('uav1_model.slx');
Что делает скрипт¶
1. Очистка рабочей среды¶
Очищает все переменные из рабочей области MATLAB, чтобы избежать конфликтов с предыдущими данными.
2. Инициализация параметров модели¶
Функция uav1_data возвращает матрицы системы (A, B, C, D), описывающие динамику в форме состояния.
3. Начальные условия и параметры симуляции¶
init— начальные условия состояния.ref_signal— целевой сигнал управления.t_s,t_e,dt— времена начала/окончания и шаг моделирования.
4. Запуск симуляции¶
Запускает симуляцию модели uav1_model.slx. Результат сохраняется в sim_out.
5. Извлечение данных¶
y = sim_out.get('yout');
u = y.getElement(1).Values.Data;
w = y.getElement(2).Values.Data;
q = y.getElement(3).Values.Data;
theta = y.getElement(4).Values.Data;
t = y.getElement(5).Values.Data;
Достаёт из результатов значения управлений, скоростей, угла тангажа и времени.
6. Закрытие/открытие модели¶
Закрывает все открытые модели и открывает uav1_model.slx для просмотра/редактирования.