Построение и анализ логарифмических амплитудно-фазовых частотных характеристик
Введение
Логарифмические амплитудно-фазовые частотные характеристики (ЛАФЧХ) являются одним из ключевых инструментов анализа и синтеза линейных систем. Они позволяют наглядно оценить устойчивость, быстродействие и качество регулирования, а также исследовать влияние отдельных звеньев на поведение системы в целом. В современной инженерной практике автоматизация построения ЛАФЧХ с помощью вычислительных средств значительно ускоряет процесс проектирования и анализа.
В данном примере представлена реализация алгоритма построения ЛАФЧХ с помощью библиотеки ControlSystems, позволяющего оперативно исследовать частотные свойства различных типовых звеньев и их комбинаций.
Импорт библиотек
Присоединим необходимые библиотеки. Для построения ЛАФЧХ, нам понадобится библиотека ControlSystems.
#EngeePkg.purge()
#import Pkg
#Pkg.add("ControlSystems")
using ControlSystems
Функция для построения ЛАФЧХ
Передаточная функция (дробное выражение с коэффициентами) формируется при помощи функции tf(); вектор амплитуд, фазовых сдвигов и циклических частот формируется с помощью функции bode() из библиотеки ControlSystems. Построение ЛАФЧХ осуществляется на основе таких данных, как:
- начальная частота
- конечная частота
- коэффициенты полинома числителя
- коэффициенты полинома знаменателя.
Создадим функцию для построения ЛАФЧХ, в которой вычислим оптимальный для отображения на графиках диапазон частот и обозначим тип шкалы как логарифмический.
gr()
function ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
A, Ф, ω = bode(tf(Числитель, Знаменатель), 2π.*range(Нч, Кч, length = Int64(20*Кч/Нч)))
АЧХ = plot(ω./2π, 20 .* log10.(vec(A)), xscale = :log10, ylabel = "Амплитуда, дБ", title = "АЧХ")
ФЧХ = plot(ω./2π, vec(Ф), xscale = :log10, title = "ФЧХ", xlabel = "Частота, Гц", ylabel = "Фаза, °")
АФЧХ = plot(АЧХ, ФЧХ, layout=(2, 1), legend = false, lw = 2)
display(АФЧХ)
end
Построение ЛАФЧХ
Передаточная функция это один из способов математического описания системы. Коэффициенты передаточной функции перечисляются в числовом векторе как множители полинома от наибольшей степени оператора передаточной функции к наименьшей. Последний (или единственный) коэффициент будет являться множителем оператора в нулевой степени (единицы). Определим коэффициенты числителя и коэффициенты знаменателя.
Числитель = [1, 5, 50, 500]
Знаменатель = [1000, 100, 10, 1]
При данных коэффициентах, передаточная функция будет иметь следующий вид:
Определим начальную и конечную частоты и построим ЛАФЧХ.
Нч = 1
Кч = 60
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Рассмотрим ЛАФЧХ различных типовых элементарных звеньев.
Пропорциональное:
При передаточной функции равной единице:
получим ЛАФЧХ пропорционального звена.
# пропоциональное
Числитель = [1]
Знаменатель = [1]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Идеально интегрирующее:
Если передаточная функция обратно-пропорциональна оператору :
получим характеристику идеально интегрирующего звена.
# идеально интегрирующее
Числитель = [1]
Знаменатель = [1; 0]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Идеально дифференцирующее:
При передаточной функции равной оператору :
получим характеристику идеально дифференцирующего звена.
# идеально дифференцирующее
Числитель = [1; 0]
Знаменатель = [1]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Рассмотрим звенья с наиболее сложными формами ЛАФЧХ.
Апериодическое:
# апериодическое
Числитель = [1]
Знаменатель = [0.01; 1]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Периодическое:
# периодическое
Числитель = [1]
Знаменатель = [0.0001; 0.001; 1]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Неустойчивое апериодическое:
# неустойчивое апериодическое
Числитель = [1]
Знаменатель = [0.01; -1]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Дифференцирующее первого порядка:
# дифференцирующее 1-го порядка
Числитель = [0.01; 1]
Знаменатель = [1]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Форсирующее второго порядка:
# форсирующее 2-го порядка
Числитель = [0.0001; -0.002; 1]
Знаменатель = [1]
Нч = 1
Кч = 1000
ЛАФЧХ(Числитель, Знаменатель, Нч, Кч)
Заключение
Представленный пример демонстрирует эффективный подход к построению и анализу ЛАФЧХ линейных систем с помощью современных инструментов разработки. Использование библиотеки ControlSystems обеспечивает высокую скорость вычислений, гибкость настройки и наглядность результатов. Функция построения ЛАФЧХ является основой для создания интерактивных приложений (цифровых стендов), которые позволят выявлять ключевые особенности систем и оценивать их динамическую устойчивость в широком диапазоне частот. Рассмотренные примеры охватывают основные типы элементарных звеньев, что позволяет применять предложенный подход для решения широкого круга задач в теории автоматического управления и смежных областях.








