Введение
Основные функции
Системы пространства состояний можно создавать с помощью функции ss
, а передаточные функции — с помощью функции tf(num, den)
или tf(num, den, Ts)
, где num
и den
— это векторы, представляющие числитель и знаменатель рациональной функции, а Ts
— это интервал дискретизации для системы с дискретным временем. Дополнительные сведения см. в описании функции tf
или разделе [Создание систем]. Эти функции далее можно соединять и модифицировать с помощью операторов +,-,*,/
и таких функций, как append
.
Пример:
P = tf([1.0],[1,1])
T = P/(1+P)
# output
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
1.0s + 1.0
-------------------
1.0s^2 + 3.0s + 2.0
Continuous-time transfer function model
Обратите внимание, что полюса не устраняются автоматически; для этого имеется функция minreal
.
minreal(T)
# output
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
1.0
----------
1.0s + 2.0
Continuous-time transfer function model
Либо воспользуйтесь feedback(P)
, чтобы получить минимальную реализацию напрямую (рекомендуется):
feedback(P) # Эквивалентно P/(1+P)
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
1.0
----------
1.0s + 2.0
Continuous-time transfer function model
Передаточные функции представляют системы в виде многочленов и могут иметь плохие числовые характеристики для систем высокого порядка. Хорошо сбалансированные представления пространства состояний зачастую проявляют себя лучше. Дополнительные сведения см. в документе Performance considerations. |
Построение графиков
В качестве интерфейса для формирования любых графиков пакет ControlSystems использует RecipesBase.jl
(ссылка). Это означает, что пользователь сам выбирает библиотеку для построения графиков, поддерживающую RecipesBase.jl
, при этом рекомендуется пакет Plots.jl
, позволяющий пользователю свободно выбирать бэкенд. Графики в этом руководстве созданы с использованием Plots.jl
с бэкендом GR
. Если у вас есть несколько бэкендов для построения графиков, вы можете выбрать нужный с помощью соответствующего вызова Plots
(для GR
это будет Plots.gr()
; другие варианты — pyplot(), plotly(), pgfplots()
). Ниже приведен простой пример создания графика и сохранения его в файле.
Другие примеры графиков можно найти в разделе Plotting functions.
using Plots
bodeplot(tf(1,[1,2,1]))