Модель с нулями , полюса и усиления
Использование zpk
для создания моделей с нулями , полюса и усиления или для преобразования динамических моделей системы в форму с нулями , полюса и усиления.
Модели нули , полюса и усиления являются представлением передаточных функций в факторизованном виде. Для примера рассмотрите следующую передаточную функцию SISO в непрерывном времени:
G(s)
может быть факторизирован в форму с нулями , полюса и усиления как:
Более общее представление модели нулевого полюса SISO с нулями , полюса и усиления выглядит следующим образом:
Здесь, z
и p
являются векторами действительных или комплексных нулей и полюсов, и K
- действительный или комплексный скалярный коэффициент усиления
Можно создать объект модели с нулями , полюса и усиления либо путем определения полюсов, нулей и усилений непосредственно, либо путем преобразования модели другого типа (такой как модель пространства состояний ss
) в форму нули , полюса и усиления.
Можно также использовать zpk
для создания обобщенного пространства состояний (genss
) моделирует или неопределенное пространство состояний (uss
(Robust Control Toolbox)) модели.
создает непрерывную модель с нулями , полюса и усиления с sys
= zpk(zeros
,poles
,gain
)zeros
и poles
задается как векторы и скалярное значение gain
. Область выхода sys
является zpk
объект модели, хранящий данные модели. Задайте zeros
или poles
на []
для систем без нулей или полюсов. Эти два входов не должны иметь одинаковую длину, и модель не должна быть правильной (то есть иметь избыток полюсов).
s = zpk('s')
создает специальную переменную s
который можно использовать в рациональном выражении, чтобы создать непрерывную модель с нулями , полюса и усиления. Использование рационального выражения иногда может быть проще и интуитивнее, чем определение полиномиальных коэффициентов.
zeros
- Нули модели с нулями , полюса и усиленияNy
-by- Nu
массив ячеек векторов-строкНули модели нули , полюса и усиления, заданные как:
A вектора-строки для моделей SISO. Для образца используйте [1,2+i,2-1]
чтобы создать модель с нулями в s = 1
, s = 2+i
, и s = 2-i
. Для получения примера смотрите Непрерывное время Модель Нулей , полюса и усиления SISO.
Система координат Ny
-by- Nu
массив ячеек из векторов-строк для задания модели MIMO с нулями , полюса и усиления, где Ny
количество выходов и Nu
- количество входов. Для получения примера смотрите Модель Нулей , полюса и усиления MIMO в дискретном времени.
Для образца, если a
является realp
настраиваемый параметр с номинальным значением 3
, тогда можно использовать zeros = [1 2 a]
для создания genss
модель с нулями в s = 1
и s = 2
и настраиваемый нуль в s = 3
.
Также свойство zpk
объект. Этот входной параметр устанавливает начальное значение свойства Z.
poles
- Поляки модели с нулями , полюса и усиленияNy
-by- Nu
массив ячеек векторов-строкПолюса модели нули , полюса и усиления, заданные как:
A вектора-строки для моделей SISO. Для получения примера смотрите Непрерывное время Модель Нулей , полюса и усиления SISO.
Система координат Ny
-by- Nu
массив ячеек из векторов-строк для задания модели MIMO с нулями , полюса и усиления, где Ny
количество выходов и Nu
- количество входов. Для получения примера смотрите Модель Нулей , полюса и усиления MIMO в дискретном времени.
Также свойство zpk
объект. Этот входной параметр устанавливает начальное значение свойства P.
gain
- Усиление модели нули , полюса и усиленияNy
-by- Nu
массив ячеек векторов-строкКоэффициент усиления модели нулей , полюса и усиления, заданный как:
Скаляр для моделей SISO. Для получения примера смотрите Непрерывное время Модель Нулей , полюса и усиления SISO.
Система координат Ny
-by- Nu
матрица для задания модели с нулями , полюса и усиления MIMO, где Ny
количество выходов и Nu
- количество входов. Для получения примера смотрите Модель Нулей , полюса и усиления MIMO в дискретном времени.
Также свойство zpk
объект. Этот входной параметр устанавливает начальное значение свойства K.
ts
- Шаг расчетаШаг расчета, заданный как скаляр. Также свойство zpk
объект. Этот входной параметр устанавливает начальное значение свойства Ts.
ltiSys
- Динамическая системаДинамическая система, заданная как SISO или MIMO динамическая системная модель или массив динамических системных моделей. Динамические системы, которые можно использовать, включают:
Непрерывные или дискретные числовые модели LTI, такие как tf
, zpk
, ss
, или pid
модели.
Обобщенные или неопределенные модели LTI, такие как genss
или uss
(Robust Control Toolbox) модели. (Для использования неопределенных моделей требуется лицензия Robust Control Toolbox™.)
Получившиеся нули , полюса и усиления модель принимают
текущие значения настраиваемых компонентов для настраиваемых блоков проекта системы управления.
номинальные значения модели для неопределенных блоков проекта системы управления.
Идентифицированные модели LTI, такие как idtf
(System Identification Toolbox), idss
(System Identification Toolbox), idproc
(System Identification Toolbox), idpoly
(System Identification Toolbox), и idgrey
(System Identification Toolbox) модели. Чтобы выбрать компонент идентифицированной модели для преобразования, задайте component
. Если вы не задаете component
, tf
преобразует измеренный компонент идентифицированной модели по умолчанию. (Использование идентифицированных моделей требует System Identification Toolbox™ программного обеспечения.)
Идентифицированная нелинейная модель не может быть преобразована в zpk
объект модели. Вы можете сначала использовать линейные функции приближения, такие как linearize
и linapp
(Для выполнения этой функции требуется программное обеспечение System Identification Toolbox.)
m
- Статический коэффициент усиленияСтатический коэффициент усиления, заданный как скаляр или матрица. Статический коэффициент усиления или коэффициент усиления в установившемся состоянии системы представляет отношение выхода к входу в установившемся условии.
component
- Компонент идентифицированной модели'measured'
(по умолчанию) | 'noise'
| 'augmented'
Компонент идентифицированной модели для преобразования, заданный как один из следующих:
'measured'
- Преобразуйте измеренный компонент sys
.
'noise'
- Преобразуйте шумовой компонент sys
'augmented'
- Преобразуйте как измеренную, так и шумовые компоненты sys
.
component
применяется только тогда, когда sys
является идентифицированной моделью LTI.
Для получения дополнительной информации об идентифицированных моделях LTI и их измеренных и шумовых компонентах, смотрите Идентифицированные модели LTI.
sys
- Модель выходной системыzpk
объект модели | genss
объект модели | uss
объект моделиСистемная модель, возвращенная как:
A нулей , полюса и усиления (zpk
) объект модели, когда zeros
, poles
и gain
входные параметры содержат числовые значения.
Обобщенная модель пространства состояний (genss
) объект, когда zeros
, poles
и gain
входные параметры включают настраиваемые параметры, такие как realp
параметры или обобщенные матрицы (genmat
).
Модель неопределенного пространства состояний (uss
) объект, когда zeros
, poles
и gain
входные параметры включают неопределенные параметры. Для использования неопределенных моделей требуется лицензия Robust Control Toolbox.
Z
- Системные нулиNy
-by- Nu
массив ячеек векторов-строкСистемные нули, заданные как:
Массив ячеек с нулями передаточной функции или корнями числителя для моделей SISO.
Система координат Ny
-by- Nu
массив ячеек из векторов-строк нулей для каждой пары ввода-вывода в модели MIMO, где Ny
количество выходов и Nu
- количество входов.
Значения Z
может быть либо реальным, либо комплексным.
P
- Системные столбыNy
-by- Nu
массив ячеек векторов-строкСистемные столбы, заданные как:
Массив ячеек из полюсов передаточной функции или корней знаменателя для моделей SISO.
Система координат Ny
-by- Nu
массив ячеек из векторов-строк полюсов для каждой пары ввода-вывода в модели MIMO, где Ny
количество выходов и Nu
- количество входов.
Значения P
может быть либо реальным, либо комплексным.
K
- Коэффициент усиления системыNy
-by- Nu
матрицаКоэффициент усиления системы, заданный как:
Скалярное значение для моделей SISO.
Система координат Ny
-by- Nu
матрица, сохраняющая значения усиления для каждой пары ввода-вывода модели MIMO, где Ny
количество выходов и Nu
- количество входов.
Значения K
может быть либо реальным, либо комплексным.
DisplayFormat
- Определяет, как числитель и полиномы знаменателя факторизированы для отображения'roots'
(по умолчанию) | 'frequency'
| 'time constant'
Задает, как числитель и полиномы знаменателя факторизированы для отображения, заданное как одно из следующего:
'roots'
- Отображать факторы в терминах расположения полиномиальных корней. 'roots'
- значение по умолчанию DisplayFormat
'frequency'
- Отображение коэффициенты в терминах корневых естественных частот ω 0 и коэффициенты затухания ζ .
The 'frequency'
формат отображения недоступен для моделей в дискретном времени с Variable
значение 'z^-1'
или 'q^-1'
.
'time constant'
- Отображать коэффициенты в терминах корневых временных констант τ и коэффициентов затухания ζ.
The 'time constant'
формат отображения недоступен для моделей в дискретном времени с Variable
значение 'z^-1'
или 'q^-1'
.
Для моделей в непрерывном времени в следующей таблице показано, как полиномиальные множители расположены в каждом формате отображения.
DisplayName Значение | Коэффициент первого порядка (реальный корень ) | Коэффициент второго порядка (пара комплексных корней ) |
---|---|---|
'roots' | где | |
'frequency' | где | где |
'time constant' | где | где |
Для моделей в дискретном времени полиномиальные множители расположены аналогично моделям в непрерывном времени со следующими переменными заменами:
где Ts - шаг расчета. В дискретном времени τ и ω 0 тесно совпадают с постоянной по времени и естественной частотой эквивалентного корня непрерывного времени при условии выполнения следующего условия :.
Variable
- Переменная отображения модели с нулями , полюса и усиления's'
(по умолчанию) | 'z'
| 'p'
| 'q'
| 'z^-1'
| 'q^-1'
Модель нулей , полюса и усиления отображает переменную, заданную как одно из следующего:
's'
- По умолчанию для моделей в непрерывном времени
'z'
- По умолчанию для моделей в дискретном времени
'p'
- Эквивалентно 's'
'q'
- Эквивалентно 'z'
'z^-1'
- Обратное 'z'
'q^-1'
- Эквивалентно 'z^-1'
IODelay
- Задержка транспортировки0
(по умолчанию) | скалярный | Ny
-by- Nu
массивЗадержка транспортировки, указанная как одно из следующего:
Скаляр - Задает задержку переноса для системы SISO или ту же задержку переноса для всех пар вход/выход системы MIMO.
Ny
-by- Nu
массив - Задайте отдельные задержки транспорта для каждой входно-выходной пары системы MIMO. Здесь, Ny
количество выходов и Nu
- количество входов.
Для систем непрерывного времени задайте задержки транспорта в модуле времени, заданной TimeUnit
свойство. Для систем в дискретном времени задайте задержки транспорта в целочисленных множителях шага расчета, Ts
. Для получения дополнительной информации о временной задержке см. Раздел «Задержки в линейных системах».
InputDelay
- Входная задержка0
(по умолчанию) | скалярный | Nu
-by-1 векторВходная задержка для каждого входного канала, заданная как одно из следующего:
Скаляр - Задает входную задержку для системы SISO или ту же задержку для всех входов мультивхода.
Nu
-by-1 вектор - Задайте отдельные задержки входных параметров для входа мультивхода, где Nu
- количество входов.
Для систем непрерывного времени задайте входные задержки в модуле времени, заданной TimeUnit
свойство. Для систем в дискретном времени задайте входные задержки в целочисленных множителях шага расчета, Ts
.
Для получения дополнительной информации см. раздел Задержки в линейных системах.
OutputDelay
- Выход0
(по умолчанию) | скалярный | Ny
-by-1 векторВыходная задержка для каждого выходного канала, заданная как одно из следующего:
Скаляр - Задает выходную задержку для системы SISO или ту же задержку для всех выходов мультивыхода.
Ny
-by-1 вектор - Задайте отдельные выходные задержки для вывода мультивыхода, где Ny
- количество выходов.
Для систем непрерывного времени задайте выходные задержки в модуле времени, заданной TimeUnit
свойство. Для систем в дискретном времени задайте выходные задержки в целочисленных множителях шага расчета, Ts
.
Для получения дополнительной информации смотрите Задержки в Линейных системах.
Ts
- Шаг расчета0
(по умолчанию) | положительный скалярный | -1
Шаг расчета, заданная как:
0
для систем непрерывного времени.
A положительной скалярной величины, представляющее период дискретной дискретной системы времени. Задайте Ts
в модуле времени, заданной TimeUnit
свойство.
-1
для системы в дискретном времени с неопределенным шагом расчета.
TimeUnit
- модули измерения переменной времени'seconds'
(по умолчанию) | 'nanoseconds'
| 'microseconds'
| 'milliseconds'
| 'minutes'
| 'hours'
| 'days'
| 'weeks'
| 'months'
| 'years'
| ...Модули переменной времени, заданные как одно из следующего:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Изменение TimeUnit
не влияет на другие свойства, но изменяет общее поведение системы. Использовать chgTimeUnit
для преобразования между модулями времени без изменения поведения системы.
InputName
- Входные имена каналов''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВходные имена каналов, заданные как одно из следующих:
Вектор символов, для моделей с одним входом.
Массив ячеек из векторов символов для мультивходов.
''
, имена для каких-либо входов каналов не заданы.
Кроме того, можно назначить входные имена для мультивходов с помощью автоматического расширения вектора. Для примера, если sys
является моделью с двумя входами, введите:
sys.InputName = 'controls';
Имена входа автоматически расширяются на {'controls(1)';'controls(2)'}
.
Можно использовать сокращённое обозначение u
для ссылки на InputName
свойство. Для примера, sys.u
эквивалентно sys.InputName
.
Использование InputName
кому:
Идентифицируйте каналы на отображении модели и графиках.
Извлечение подсистем систем MIMO.
Задайте точки соединения при соединении моделей.
InputUnit
- Входные модули канала''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВходные модули канала, заданные как один из следующих:
Вектор символов, для моделей с одним входом.
Массив ячеек из векторов символов для мультивходов.
''
, никаких модулей, заданных для любых входных каналов.
Использование InputUnit
для определения модулей входного сигнала. InputUnit
не влияет на поведение системы.
InputGroup
- Входные группы каналовВходные группы каналов, заданные как структура. Использование InputGroup
присвоение входных каналов систем MIMO группам и указание каждой группы по имени. Имена полей InputGroup
являются именами групп, а значения полей являются входными каналами каждой группы. Для примера:
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
создает входные группы с именем controls
и noise
которые включают входные каналы 1
и 2
, и 3
и 5
, соответственно. Затем можно извлечь подсистему из controls
входы для всех выходов с помощью:
sys(:,'controls')
По умолчанию InputGroup
- структура без полей.
OutputName
- Выходы каналов''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВыходы каналов, заданные как одно из следующих:
Вектор символов, для моделей с одним выходом.
Массив ячеек из векторов символов для мультивыходов.
''
, имена для каких-либо выходов каналов не заданы.
Кроме того, можно назначить выходные имена для мультивыходов с помощью автоматического расширения вектора. Для примера, если sys
является двухвыпускной моделью, введите:
sys.OutputName = 'measurements';
Выходы данных автоматически расширяются на {'measurements(1)';'measurements(2)'}
.
Можно также использовать сокращённое обозначение y
для ссылки на OutputName
свойство. Для примера, sys.y
эквивалентно sys.OutputName
.
Использование OutputName
кому:
Идентифицируйте каналы на отображении модели и графиках.
Извлечение подсистем систем MIMO.
Задайте точки соединения при соединении моделей.
OutputUnit
- модули выходного канала''
(по умолчанию) | вектор символов | массив ячеек из векторов символовВыход модулей канала, заданный как один из следующих:
Вектор символов, для моделей с одним выходом.
Массив ячеек из векторов символов для мультивыходов.
''
, никакие модули не заданы для каких-либо выходов каналов.
Использование OutputUnit
для определения модулей выходного сигнала. OutputUnit
не влияет на поведение системы.
OutputGroup
- Выходы каналовВыходные группы каналов, заданные как структура. Использование OutputGroup
присвоение выходных каналов систем MIMO группам и указание каждой группы по имени. Имена полей OutputGroup
- имена групп, а значения полей являются выходными каналами каждой группы. Для примера:
sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5];
создает выходные группы с именем temperature
и measurement
которые включают выходные каналы 1
, и 3
и 5
, соответственно. Затем можно извлечь подсистему из всех входов в measurement
выходы с использованием:
sys('measurement',:)
По умолчанию OutputGroup
- структура без полей.
Name
- Имя системы''
(по умолчанию) | вектор символовИмя системы, заданное как вектор символов. Для примера, 'system_1'
.
Notes
- Пользовательский текст{}
(по умолчанию) | вектор символов | массив ячеек из векторов символовЗаданный пользователем текст, который необходимо связать с системой, заданный как вектор символов или массив ячеек векторов символов. Для примера, 'System is MIMO'
.
UserData
- Пользовательские данные[]
(по умолчанию) | любой MATLAB® тип данныхПользовательские данные, которые необходимо связать с системой, заданные как любой тип данных MATLAB.
SamplingGrid
- Матрица дискретизации для массивов моделейСетка дискретизации для массивов моделей, заданная как массив структур.
Использование SamplingGrid
чтобы отследить значения переменных, сопоставленные с каждой моделью в массиве моделей, включая идентифицированные линейные инвариантные по времени (IDLTI) массивы моделей.
Установите имена полей структуры в имена переменных выборки. Установите значения полей к выборочным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми скалярами, и все массивы выборочных значений должны совпадать с размерностями массива моделей.
Для примера можно создать массив линейных моделей 11 на 1, sysarr
, путем создания моментальных снимков линейной изменяющейся во времени системы в определенные моменты времени t = 0:10
. Следующий код хранит временные выборки с помощью линейных моделей.
sysarr.SamplingGrid = struct('time',0:10)
Точно так же можно создать массив моделей 6 на 9, M
, путем независимой выборки двух переменных, zeta
и w
. Следующий код сопоставляет (zeta,w)
значения в M
.
[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
Когда вы отображаете M
каждая запись в массиве включает соответствующие zeta
и w
значения.
M
M(:,:,1,1) [zeta=0.3, w=5] = 25 -------------- s^2 + 3 s + 25 M(:,:,2,1) [zeta=0.35, w=5] = 25 ---------------- s^2 + 3.5 s + 25 ...
Для массивов моделей, сгенерированных линеаризацией Simulink® моделируйте в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет SamplingGrid
автоматически со значениями переменных, соответствующими каждой записи в массиве. Например, команды Simulink Control Design™ linearize
(Simulink Control Design) и slLinearizer
(Simulink Control Design) заполните SamplingGrid
автоматически.
По умолчанию SamplingGrid
- структура без полей.
Следующие списки содержат репрезентативное подмножество функций, с которыми можно использовать zpk
модели. В целом любая функция, применимая к динамическим системным моделям, применима к zpk
объект.
step | Переходный процесс динамической системы; переходные характеристики |
impulse | График импульсной характеристики динамической системы; данные импульсной характеристики |
lsim | Постройте моделируемую временную характеристику динамической системы на произвольные входы; симулированные отклики |
bode | Диаграмма Боде частотной характеристики, или данные величины и фазы |
nyquist | Годограф Найквиста частотной характеристики |
nichols | График Николса частотной характеристики |
bandwidth | Полоса пропускания частотной характеристики |
pidtune | Алгоритм настройки ПИДа для линейной модели объекта управления |
rlocus | Корневой годограф динамической системы |
lqr | Проект линейно-квадратичного регулятора (LQR) |
lqg | Линейно-квадратичный-Гауссов (LQG) проект |
lqi | Линейно-квадратичное-интегральное управление |
kalman | Проект фильтра Калмана для оценки состояния |
В данном примере рассмотрим следующую модель SISO с нулями , полюса и усиления в непрерывном времени:
Задайте нули, полюсы и усиление и создайте модель SISO с нулями , полюса и усиления.
zeros = 0; poles = [1-1i 1+1i 2]; gain = -2; sys = zpk(zeros,poles,gain)
sys = -2 s -------------------- (s-2) (s^2 - 2s + 2) Continuous-time zero/pole/gain model.
В данном примере рассмотрите следующую модель SISO в дискретном времени с нулями , полюса и усиления со шаг расчета 0,1 с:
Задайте нули, полюсы, усиления и шаг расчета и создайте модель SISO с нулями , полюса и усиления в дискретном времени.
zeros = [1 2 3]; poles = [6 5 4]; gain = 7; ts = 0.1; sys = zpk(zeros,poles,gain,ts)
sys = 7 (z-1) (z-2) (z-3) ------------------- (z-6) (z-5) (z-4) Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
В этом примере вы создаете модель с нулями , полюса и усиления MIMO путем конкатенации моделей с нулями , полюса и усиления SISO. Рассмотрим следующую модель с одним входом, двумя выходами с непрерывным временем нули , полюса и усиления:
Задайте модель MIMO с нулями , полюса и усиления путем конкатенации записей SISO.
zeros1 = 1; poles1 = -1; gain = 1; sys1 = zpk(zeros1,poles1,gain)
sys1 = (s-1) ----- (s+1) Continuous-time zero/pole/gain model.
zeros2 = -2; poles2 = [-2+1i -2-1i]; sys2 = zpk(zeros2,poles2,gain)
sys2 = (s+2) -------------- (s^2 + 4s + 5) Continuous-time zero/pole/gain model.
sys = [sys1;sys2]
sys = From input to output... (s-1) 1: ----- (s+1) (s+2) 2: -------------- (s^2 + 4s + 5) Continuous-time zero/pole/gain model.
Создайте модель с нулями , полюса и усиления для модели с дискретным временем, несколькими входами и несколькими выходами:
со шаг расчета ts = 0.2
секунд.
Задайте нули и полюсы как массивы ячеек, а усиления как массив.
zeros = {[] 0;2 []}; poles = {-0.3 -0.3;-0.3 -0.3}; gain = [1 1;-1 3]; ts = 0.2;
Создайте модель MIMO с нулями , полюса и усиления в дискретном времени.
sys = zpk(zeros,poles,gain,ts)
sys = From input 1 to output... 1 1: ------- (z+0.3) - (z-2) 2: ------- (z+0.3) From input 2 to output... z 1: ------- (z+0.3) 3 2: ------- (z+0.3) Sample time: 0.2 seconds Discrete-time zero/pole/gain model.
Задайте нули, полюсы и усиление вместе со шагом расчета и создайте модель с нулевым полюсом и нулями , полюса и усиления, задав состояние и входные имена с помощью пар "имя-значение".
zeros = 4; poles = [-1+2i -1-2i]; gain = 3; ts = 0.05; sys = zpk(zeros,poles,gain,ts,'InputName','Force')
sys = From input "Force" to output: 3 (z-4) -------------- (z^2 + 2z + 5) Sample time: 0.05 seconds Discrete-time zero/pole/gain model.
Количество имен входа должно совпадать с количеством нулей.
Наименование входов и выходов может быть полезно при работе с графиками отклика для систем MIMO.
step(sys)
Заметьте входное имя Force
в названии переходного процесса.
В данном примере создайте модель с нулями , полюса и усиления в непрерывном времени с использованием рациональных выражений. Использование рационального выражения иногда может быть проще и интуитивнее, чем определение полюсов и нулей.
Рассмотрите следующую систему:
Чтобы создать модель передаточной функции, сначала задайте s
как zpk
объект.
s = zpk('s')
s = s Continuous-time zero/pole/gain model.
Создайте модель с нулями , полюса и усиления, используя s в рациональном выражении.
sys = s/(s^2 + 2*s + 10)
sys = s --------------- (s^2 + 2s + 10) Continuous-time zero/pole/gain model.
В данном примере создайте модель с нулями , полюса и усиления в дискретном времени с использованием рационального выражения. Использование рационального выражения иногда может быть проще и интуитивнее, чем определение полюсов и нулей.
Рассмотрите следующую систему:
Чтобы создать модель с нулями , полюса и усиления, сначала задайте z
как zpk
объект и шаг расчета ts
.
ts = 0.1;
z = zpk('z',ts)
z = z Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
Создайте модель с нулями , полюса и усиления с помощью z
в рациональном выражении.
sys = (z - 1) / (z^2 - 1.85*z + 0.9)
sys = (z-1) ------------------- (z^2 - 1.85z + 0.9) Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
В данном примере создайте модель с нулями , полюса и усиления со свойствами, унаследованными от другой модели с нулями , полюса и усиления. Рассмотрим следующие две модели с нулем , полюса и усиления:
В данном примере создайте sys1
с TimeUnit
и InputDelay
значение свойства установлено на 'minutes
'.
zero1 = 0; pole1 = [0;-8]; gain1 = 2; sys1 = zpk(zero1,pole1,gain1,'TimeUnit','minutes','InputUnit','minutes')
sys1 = 2 s ------- s (s+8) Continuous-time zero/pole/gain model.
propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 = 1x2 cell
{'minutes'} {'minutes'}
Создайте вторую модель с нулями , полюса и усиления с свойствами, унаследованными от sys1
.
zero = 1; pole = [-3,5]; gain2 = 0.8; sys2 = zpk(zero,pole,gain2,sys1)
sys2 = 0.8 (s-1) ----------- (s+3) (s-5) Continuous-time zero/pole/gain model.
propValues2 = [sys2.TimeUnit,sys2.InputUnit]
propValues2 = 1x2 cell
{'minutes'} {'minutes'}
Заметьте, что модель с нулями , полюса и усиления sys2
имеет те же свойства, что и sys1
.
Рассмотрим следующую статическую матрицу усиления с двумя входами m
:
Задайте матрицу усиления и создайте статическую модель усиления с нулями , полюса и усиления.
m = [2,4;...
3,5];
sys1 = zpk(m)
sys1 = From input 1 to output... 1: 2 2: 3 From input 2 to output... 1: 4 2: 5 Static gain.
Можно использовать статическую модель усиления с нулями , полюса и усиления sys1
полученный выше, чтобы каскадировать его с другой моделью с нулями , полюса и усиления.
sys2 = zpk(0,[-1 7],1)
sys2 = s ----------- (s+1) (s-7) Continuous-time zero/pole/gain model.
sys = series(sys1,sys2)
sys = From input 1 to output... 2 s 1: ----------- (s+1) (s-7) 3 s 2: ----------- (s+1) (s-7) From input 2 to output... 4 s 1: ----------- (s+1) (s-7) 5 s 2: ----------- (s+1) (s-7) Continuous-time zero/pole/gain model.
В данном примере вычислите модель с нулями , полюса и усиления для следующей модели с пространством состояний:
Создайте модель пространства состояний с помощью матриц пространства состояний.
A = [-2 -1;1 -2]; B = [1 1;2 -1]; C = [1 0]; D = [0 1]; ltiSys = ss(A,B,C,D);
Преобразуйте модель пространства состояний ltiSys
к модели с нулями , полюса и усиления.
sys = zpk(ltiSys)
sys = From input 1 to output: s -------------- (s^2 + 4s + 5) From input 2 to output: (s^2 + 5s + 8) -------------- (s^2 + 4s + 5) Continuous-time zero/pole/gain model.
Можно использовать for
цикл, чтобы задать массив моделей с нулями , полюса и усиления.
Во-первых, предварительно выделите массив моделей с нулями , полюса и усиления с нулями.
sys = zpk(zeros(1,1,3));
Первые два индекса представляют количество выходов и входов для моделей, в то время как третий индекс является количеством моделей в массиве.
Создайте массив моделей с нулями , полюса и усиления с помощью рационального выражения в for
цикл.
s = zpk('s'); for k = 1:3 sys(:,:,k) = k/(s^2+s+k); end sys
sys(:,:,1,1) = 1 ------------- (s^2 + s + 1) sys(:,:,2,1) = 2 ------------- (s^2 + s + 2) sys(:,:,3,1) = 3 ------------- (s^2 + s + 3) 3x1 array of continuous-time zero/pole/gain models.
В данном примере извлечите измеренные и шумовые компоненты идентифицированной полиномиальной модели в две отдельные модели с нулем , полюса и усиления.
Загрузка полиномиальной модели Бокса-Дженкинса ltiSys
в identifiedModel.mat
.
load('identifiedModel.mat','ltiSys');
ltiSys
- идентифицированная модель вида в дискретном времени: , где представляет измеренный компонент, шумовым компонентом.
Извлеките измеренные и шумовые компоненты как модели с нулями , полюса и усиления.
sysMeas = zpk(ltiSys,'measured')
sysMeas = From input "u1" to output "y1": -0.14256 z^-1 (1-1.374z^-1) z^(-2) * ----------------------------- (1-0.8789z^-1) (1-0.6958z^-1) Sample time: 0.04 seconds Discrete-time zero/pole/gain model.
sysNoise = zpk(ltiSys,'noise')
sysNoise = From input "v@y1" to output "y1": 0.045563 (1+0.7245z^-1) -------------------------------------------- (1-0.9658z^-1) (1 - 0.0602z^-1 + 0.2018z^-2) Input groups: Name Channels Noise 1 Sample time: 0.04 seconds Discrete-time zero/pole/gain model.
Измеренный компонент может служить моделью объекта управления, в то время как шумовой компонент может использоваться в качестве модели возмущения для разработки системы управления.
В данном примере создайте модель SISO с нулями , полюса и усиления с задержкой на входе 0,5 секунды и задержкой на выходе 2,5 секунды.
zeros = 5; poles = [7+1i 7-1i -3]; gains = 1; sys = zpk(zeros,poles,gains,'InputDelay',0.5,'OutputDelay',2.5)
sys = (s-5) exp(-3*s) * ---------------------- (s+3) (s^2 - 14s + 50) Continuous-time zero/pole/gain model.
Можно также использовать get
команда для отображения всех свойств объекта MATLAB.
get(sys)
Z: {[5]} P: {[3x1 double]} K: 1 DisplayFormat: 'roots' Variable: 's' IODelay: 0 InputDelay: 0.5000 OutputDelay: 2.5000 Ts: 0 TimeUnit: 'seconds' InputName: {''} InputUnit: {''} InputGroup: [1x1 struct] OutputName: {''} OutputUnit: {''} OutputGroup: [1x1 struct] Notes: [0x1 string] UserData: [] Name: '' SamplingGrid: [1x1 struct]
Для получения дополнительной информации об указании временной задержки для модели LTI, смотрите Определение временных задержек.
В данном примере разработайте 2-DOF ПИД-регуляторы с целевой шириной полосы 0,75 рад/с для системы, представленной следующей нулям , полюса и усиления моделью:
Создайте объект модели с нулями , полюса и усиления sys
использование zpk
команда.
zeros = []; poles = [-0.25+0.2i;-0.25-0.2i]; gain = 1; sys = zpk(zeros,poles,gain)
sys = 1 --------------------- (s^2 + 0.5s + 0.1025) Continuous-time zero/pole/gain model.
Используя целевую полосу пропускания, используйте pidtune
чтобы сгенерировать контроллер 2-DOF.
wc = 0.75;
C2 = pidtune(sys,'PID2',wc)
C2 = 1 u = Kp (b*r-y) + Ki --- (r-y) + Kd*s (c*r-y) s with Kp = 0.512, Ki = 0.0975, Kd = 0.574, b = 0.38, c = 0 Continuous-time 2-DOF PID controller in parallel form.
Использование типа 'PID2'
причины pidtune
чтобы сгенерировать контроллер 2-DOF, представленный как pid2
объект. Отображение подтверждает этот результат. На отображении также показано, что pidtune
настраивает все коэффициенты контроллера, включая веса уставок b
и c
, для баланса эффективности и робастности.
Интерактивную настройку ПИД в Live Editor см. в задаче Tune ПИД-регулятора Live Editor. Эта задача позволяет вам в интерактивном режиме проектировать ПИД-регулятор и автоматически генерирует код MATLAB для вашего live скрипта.
Для интерактивной настройки ПИД в автономном приложении используйте PID Tuner. Смотрите ПИД-регулятор Design для Fast Reference Tracking для примера разработки контроллера с помощью приложения.
zpk
использует функцию MATLAB roots
для преобразования передаточных функций и функций zero
и pole
для преобразования моделей в пространстве состояний.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.