Частотная характеристика MIMO систем
В этом примере показано, как можно исследовать частотную характеристику многоканальной системы с несколькими входами и выходами (MIMO) двумя способами: путём вычисления частотной характеристики и путём вычисления сингулярных значений.
Перед началом работы подключите пакет ControlSystems.jl
.
import Pkg
Pkg.add("ControlSystems")
using ControlSystems
s = tf('s');
Рассчитайте частотную характеристику модели MIMO и проанализируйте размер выходного сигнала.
H = ssrand(2,2,3)
mag, phase, w = bode(H)
size_mag = size(mag)
Первое и второе измерения массива данных mag
— это количество выходов и входов . Третье измерение — это количество точек в векторе частот w (Команда bode определяет это количество автоматически, если вы не указываете вектор частот). Таким образом, mag(i,j,:)
— это частотная характеристика от j-го входа к i-му выходу. Массив фазовых данных phase
имеет ту же форму, что и mag
.
Постройте частотную характеристику каждой пары вход/выход в .
bodeplot(H, title = ["Input 1" "Input 2" "" "" "" "" "" ""], leg = false)
bodeplot
отражает амплитуду и фазу частотной характеристики каждой пары «вход-выход» в H (Поскольку ssrand
генерирует случайную модель пространства состояний, вы можете увидеть другие характеристики, отличные от представленных на рисунке). В первом столбце графики частотных характеристик цепей идущих от первого входного сигнала к первому и второму выходу. Во втором столбце аналогично, но от второго входного сигнала к двум выходам системы.
Постройте график сингулярных значений в зависимости от частоты.
sigmaplot(H)
Диаграмма sigmaplot
показывает зависимость сингулярных значений MIMO системы от частоты. Максимальное сингулярное значение на определенной частоте - это максимальное усиление системы по всем линейным комбинациям входных сигналов на этой частоте. Сингулярные значения могут дать лучшее представление об общем отклике, стабильности и настройке системы MIMO, чем поканальный график Боде.
Вычислите сингулярные значения в диапазоне от 0.1 до 10 рад/с.
ω = collect(1:0.001:10);
sv,w = sigma(H,ω)
display([sv,w])
Когда вы вызываете sigma
, команда возвращает сингулярные значения в массиве данных sv
. Входные данные массива указывают sigma
на необходимость вычисления сингулярных значений в диапазоне частот от 0.1 до 10 рад/с. Функция sigma
возвращает эти частоты в векторе w. Каждая строка sv
содержит сингулярные значения на частотах w.
Вывод
С помощью рассмотренного примера мы научились исследовать частотную характеристику MIMO системы.