Автоматический запуск Simulink из Matlab

Использование современных программных средств, таких как Matlab/Simulink, позволяет существенно упростить анализ различных сложных систем. Скрипты Matlab позволяют в автоматическом режиме запускать схемы Simulink с изменением различных параметров.

Такая задача может появиться, к примеру, при построении амплитудно-частотной характеристики (АЧХ) некоторого фильтра. Если фильтр достаточно сложный, то его аналитическое описание не всегда представляется возможным. В таком случае прибегают к численным методам анализа.

Simulink позволяет представить рассматриваемый фильтр в виде совокупности элементов, из которого он состоит, и сымитировать его работу при подаче на него определённого входного сигнала, например, напряжения.

Известно, что АЧХ представляет собой характеристику, описывающую амплитуду выходного сигнала в зависимости от входного при различных частотах. То есть для её построения необходимо изменять частоту входного сигнала при неизменной амплитуде и измерять амплитуду выходного сигнала. Это итерационная процедура, которая может быть автоматизирована.

Рассмотрим простейший фильтр, представленный на рис. 1. Параметры фильтра R = 1 Ом, L = 10 мГн, C = 400 мкФ.


Рис. 1. Исследуемый фильтр

Для построения АЧХ необходимо при известной амплитуде входного напряжения Uвх измерять амплитуду выходного напряжения Uвых при различных частотах входного напряжения и формировать замер

A = Uвых / Uвх.

Для этого в Simulink собрана схема, представленная на рис. 2. Сама модель в Simulink: circuit.mdl.


Рис. 2. Схема в Simulink для построения АЧХ фильтра

Таким образом, схему по рис. 2 необходимо прогонять определённое число раз, при этом изменяя частоту источника ЭДС и измеряя выходное напряжение с помощью вольтметра Voltage. Для этого воспользуемся следующим скриптом Matlab (сам скрип вы можете скачать: simulink_start.m):

open('circuit.mdl'); % название модели
U_in = 100; % амплитуда источника ЭДС
U_out = []; % массив для сохранения амплитуды выходного напряжения
f = 0:1:500; % массив частот входного напряжения
for k = 1:length(f)
    set_param('circuit/U','Frequency','f(k)'); % задание частоты источника ЭДС
    sim('circuit'); % запуск моделирования
    U_out = [U_out max(abs(Uout.signals.values(Uout.time>=1)))]; % добавление выходного напряжения для определённой частоты в массив
plot(f,U_out/U_in,'k-') % построение выходного графика
grid on
hold on

Для автоматического задания параметров элементов модели в Simulink в Matlab используется функция set_param. Для запуска моделирования используется функция sim. После окончания работы скрипта формируется АЧХ, представленная на рис. 3.


Рис. 3. АЧХ исследуемого фильтра

Итак, в статье представлен пример использования запуска модели в Simulink с помощью скрипта в Matlab для построения АЧХ фильтра.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.