Расположение полюсов и нулей
В этом примере показано, как исследовать расположение полюсов и нулей динамических систем. Это можно сделать графически, построив карту с помощью pzmap
. А можно найти численные значения с помощью функции zpkdata
.
Изучение расположения полюсов и нулей может быть полезно для таких задач, как анализ устойчивости. В этом примере сравниваются две системы с замкнутым контуром, которые имеют одинаковую передаточную функцию объекта управления и разные контроллеры.
Создадим две модели систем с замкнутым контуром.
Pkg.add(["ControlSystems"])
using ControlSystems
G = zpk([], [-5, -5, -10], 100)
C1 = pid(2.9, 7.1)
CL1 = feedback(G * C1, 1)
C2 = pid(29, 7.1)
CL2 = feedback(G * C2, 1)
Контроллер C2 имеет гораздо более высокое пропорциональное усиление. В остальном две системы с замкнутым контуром CL1 и CL2 одинаковы.
Графически исследуем расположение полюсов и нулей обеих систем.
pzmap(CL1,label="CL1")
pzmap!(CL2,label="CL2")
pzmap
отображает расположение полюсов и нулей на комплексной плоскости в виде x и o меток соответственно. При предоставлении нескольких моделей, полюса и нули каждой модели отображаются другим цветом. Здесь полюса и нули CL1 выделены оранжевым цветом, а полюса и нули CL2 - фиолетовым. Нули у функций одинаковы, поэтому накладываясь друг на друга получается зеленый цвет.
График показывает, что все полюса CL1 находятся в левой полуплоскости и, следовательно, CL1 устойчива. Модель системы CL2 содержит полюса в правой полуплоскости, поэтому неустойчива.
Вычислим числовые значения расположения полюсов и нулей в CL2 с помощью zpkmap
. Эта кункция возвращает три значения в следующем порядке: коэффициент усиления (k), полюса (p), нули (z).
z,p,k = zpkdata(CL2)
display(z)
display(p)
Также есть отдельная функция для поиска полюсов - poles
, и для поиска нулей - tzeros
. Найдем отдельные значения для системы CL1.
poles(CL2)
tzeros(CL1)
tzero
и poles
возвращают векторы-столбцы, содержащие местоположения нулей и полюсов системы.
С помощью знания нахождения полюсов и нулей передаточной функции системы, можно судить об ее устойчивости. Больше функций для анализа устойчивости системы можно найти в разделе Анализ.