Модель нулей, полюсов и усиления
Используйте 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
- Nu
массив ячеек векторов-строкНули модели нулей, полюсов и усиления в виде:
Вектор-строка для моделей SISO. Например, используйте [1,2+i,2-1]
создать модель с нулями в s = 1
, s = 2+i
, и s = 2-i
. Для примера смотрите Непрерывное время Модель Нулей, полюсов и усиления SISO.
Ny
- Nu
массив ячеек векторов-строк, чтобы задать модель нулей, полюсов и усиления MIMO, где Ny
количество выходных параметров и Nu
количество входных параметров. Для примера смотрите Дискретное время Модель Нулей, полюсов и усиления MIMO.
Например, если a
realp
настраиваемый параметр с номинальной стоимостью 3
, затем можно использовать zeros = [1 2 a]
создать genss
модель с нулями в s = 1
и s = 2
и настраиваемый нуль в s = 3
.
Также свойство zpk
объект. Этот входной параметр устанавливает начальное значение свойства Z.
poles
— Полюса модели нулей, полюсов и усиленияNy
- Nu
массив ячеек векторов-строкПолюса модели нулей, полюсов и усиления в виде:
Вектор-строка для моделей SISO. Для примера смотрите Непрерывное время Модель Нулей, полюсов и усиления SISO.
Ny
- Nu
массив ячеек векторов-строк, чтобы задать модель нулей, полюсов и усиления MIMO, где Ny
количество выходных параметров и Nu
количество входных параметров. Для примера смотрите Дискретное время Модель Нулей, полюсов и усиления MIMO.
Также свойство zpk
объект. Этот входной параметр устанавливает начальное значение свойства P.
gain
— Усиление модели нулей, полюсов и усиленияNy
- Nu
массив ячеек векторов-строкУсиление модели нулей, полюсов и усиления в виде:
Скаляр для моделей SISO. Для примера смотрите Непрерывное время Модель Нулей, полюсов и усиления SISO.
Ny
- 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
объект моделиВыведите системную модель, возвращенную как:
Нули, полюса и усиление (zpk
) объект модели, когда zeros
, poles
и gain
входные параметры содержат числовые значения.
Обобщенная модель в пространстве состояний (genss
) объект, когда zeros
, poles
и gain
входные параметры включают настраиваемые параметры, такой как realp
параметры или обобщенные матрицы (genmat
).
Неопределенная модель в пространстве состояний (uss
) объект, когда zeros
, poles
и gain
входные параметры включают неопределенные параметры. Используя неопределенные модели требует лицензии Robust Control Toolbox.
Z
— Системные нулиNy
- Nu
массив ячеек векторов-строкСистемные нули в виде:
Массив ячеек нулей передаточной функции или числителя поддерживает модели SISO.
Ny
- Nu
массив ячеек векторов-строк из нулей для каждой пары ввода-вывода в модели MIMO, где Ny
количество выходных параметров и Nu
количество входных параметров.
Значения Z
может быть или с действительным знаком или с комплексным знаком.
P
— Системные полюсаNy
- Nu
массив ячеек векторов-строкСистема орудует шестами в виде:
Массив ячеек полюсов передаточной функции или знаменателя поддерживает модели SISO.
Ny
- Nu
массив ячеек векторов-строк из полюсов для каждой пары ввода-вывода в модели MIMO, где Ny
количество выходных параметров и Nu
количество входных параметров.
Значения P
может быть или с действительным знаком или с комплексным знаком.
K
— Системные усиленияNy
- Nu
матрицаСистема получает в виде:
Скалярное значение для моделей SISO.
Ny
- Nu
матрица, хранящая значения усиления для каждой пары ввода-вывода модели MIMO, где Ny
количество выходных параметров и Nu
количество входных параметров.
Значения K
может быть или с действительным знаком или с комплексным знаком.
DisplayFormat
— Задает, как полином числителя и полином знаменателя разложен на множители для отображения'roots'
(значение по умолчанию) | 'frequency'
| 'time constant'
Задает, как полином числителя и полином знаменателя разложен на множители для отображения в виде одного из следующего:
'roots'
— Отобразите факторы в терминах местоположения полиномиальных корней. 'roots'
значение по умолчанию DisplayFormat
'frequency'
— Отобразите факторы в терминах корневых собственных частот ω 0 и коэффициенты затухания ζ.
'frequency'
формат отображения не доступен для моделей дискретного времени с Variable
значение 'z^-1'
или 'q^-1'
.
'time constant'
— Отобразите факторы в терминах корневых постоянных времени τ и коэффициенты затухания ζ.
'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
— Транспортная задержка
(значение по умолчанию) | скаляр | Ny
- Nu
массивТранспортная задержка в виде одного из следующего:
Скаляр — Задает транспортную задержку системы SISO или ту же транспортную задержку всех пар ввода/вывода системы MIMO.
Ny
- Nu
массив — Задает отдельные транспортные задержки каждой пары ввода/вывода системы MIMO. Здесь, Ny
количество выходных параметров и Nu
количество входных параметров.
Для систем непрерывного времени задайте транспортные задержки единицы измерения времени, заданной TimeUnit
свойство. Для систем дискретного времени задайте транспортные задержки целочисленных множителей шага расчета, Ts
. Для получения дополнительной информации о задержке смотрите Задержки Линейных систем.
InputDelay
— Введите задержку
(значение по умолчанию) | скаляр | Nu
- 1 векторВведите задержку каждого входного канала в виде одного из следующего:
Скаляр — Задает входную задержку системы SISO или ту же задержку всех входных параметров мультивходной системы.
Nu
- 1 вектор — Задают отдельные входные задержки входа мультивходной системы, где Nu
количество входных параметров.
Для систем непрерывного времени задайте входные задержки единицы измерения времени, заданной TimeUnit
свойство. Для систем дискретного времени задайте входные задержки целочисленных множителей шага расчета, Ts
.
Для получения дополнительной информации смотрите Задержки Линейных систем.
OutputDelay
— Выведите задержку
(значение по умолчанию) | скаляр | Ny
- 1 векторВыведите задержку каждого выходного канала в виде одного из следующего:
Скаляр — Задает выходную задержку системы SISO или ту же задержку всех выходных параметров мультивыходной системы.
Ny
- 1 вектор — Задают отдельные выходные задержки выхода мультивыходной системы, где Ny
количество выходных параметров.
Для систем непрерывного времени задайте выходные задержки единицы измерения времени, заданной TimeUnit
свойство. Для систем дискретного времени задайте выходные задержки целочисленных множителей шага расчета, Ts
.
Для получения дополнительной информации смотрите Задержки Линейных систем.
Ts
Размер шага
(значение по умолчанию) | положительная скалярная величина | -1
Шаг расчета в виде:
0 для систем непрерывного времени.
Положительная скалярная величина, представляющая период выборки системы дискретного времени. Задайте Ts
в единице измерения времени, заданной TimeUnit
свойство.
-1 для системы дискретного времени с незаданным шагом расчета.
TimeUnit
— Модули переменной Time'seconds'
(значение по умолчанию) | 'nanoseconds'
| 'microseconds'
| 'milliseconds'
| 'minutes'
| 'hours'
| 'days'
| 'weeks'
| 'months'
| 'years'
| ...Модули переменной Time в виде одного из следующего:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Изменение TimeUnit
не оказывает влияния на другие свойства, но изменяет полное поведение системы. Использование chgTimeUnit
преобразовывать между единицами измерения времени, не изменяя поведение системы.
InputName
— Введите названия канала''
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВведите названия канала в виде одного из следующего:
Вектор символов, для моделей одно входа.
Массив ячеек из символьных векторов, для мультивходных моделей.
''
, никакие заданные имена, для любых входных каналов.
В качестве альтернативы можно присвоить входные имена для мультивходных моделей с помощью автоматического векторного расширения. Например, если sys
2D входная модель, введите следующее:
sys.InputName = 'controls';
Входные имена автоматически расширяются до {'controls(1)';'controls(2)'}
.
Можно использовать краткое обозначение u
относиться к InputName
свойство. Например, sys.u
эквивалентно sys.InputName
.
Используйте InputName
к:
Идентифицируйте каналы на отображении модели и графиках.
Извлеките подсистемы систем MIMO.
Задайте точки контакта когда взаимосвязанные модели.
InputUnit
— Введите модули канала''
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВведите модули канала в виде одного из следующего:
Вектор символов, для моделей одно входа.
Массив ячеек из символьных векторов, для мультивходных моделей.
''
, никакие заданные модули, для любых входных каналов.
Используйте InputUnit
задавать модули входного сигнала. InputUnit
не оказывает влияния на поведение системы.
InputGroup
— Введите группы каналаВведите группы канала в виде структуры. Используйте InputGroup
присваивать входные каналы систем MIMO в группы и относиться к каждой группе по наименованию. Имена полей InputGroup
названия группы, и значения полей являются входными каналами каждой группы. Например, введите следующее, чтобы создать входные группы под названием controls
и noise
это включает входные каналы 1
и 2
, и 3
и 5
, соответственно.
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
Можно затем извлечь подсистему из controls
входные параметры ко всем выходным параметрам с помощью следующего.
sys(:,'controls')
По умолчанию, InputGroup
структура без полей.
OutputName
— Выведите названия канала''
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВыведите названия канала в виде одного из следующего:
Вектор символов, для моделей одно выхода.
Массив ячеек из символьных векторов, для мультивыходных моделей.
''
, никакие заданные имена, для любых выходных каналов.
В качестве альтернативы можно присвоить выходные имена для мультивыходных моделей с помощью автоматического векторного расширения. Например, если sys
2D выходная модель, введите следующее.
sys.OutputName = 'measurements';
Выходные имена автоматически расширяются до {'measurements(1)';'measurements(2)'}
.
Можно также использовать краткое обозначение y
относиться к OutputName
свойство. Например, sys.y
эквивалентно sys.OutputName
.
Используйте OutputName
к:
Идентифицируйте каналы на отображении модели и графиках.
Извлеките подсистемы систем MIMO.
Задайте точки контакта когда взаимосвязанные модели.
OutputUnit
— Выведите модули канала''
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВыведите модули канала в виде одного из следующего:
Вектор символов, для моделей одно выхода.
Массив ячеек из символьных векторов, для мультивыходных моделей.
''
, никакие заданные модули, для любых выходных каналов.
Используйте OutputUnit
задавать модули выходного сигнала. OutputUnit
не оказывает влияния на поведение системы.
OutputGroup
— Выведите группы каналаВыведите группы канала в виде структуры. Используйте OutputGroup
присваивать выходные каналы систем MIMO в группы и относиться к каждой группе по наименованию. Имена полей OutputGroup
названия группы, и значения полей являются выходными каналами каждой группы. Например, создайте выходные группы под названием temperature
и measurement
это включает выходные каналы 1
, и 3
и 5
, соответственно.
sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [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. Рассмотрите следующий одно вход, 2D выходную модель нулей, полюсов и усиления непрерывного времени:
Задайте модель нулей, полюсов и усиления 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
.
Рассмотрите следующий 2D вход, 2D выход статическая матрица усиления 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, смотрите Live Editor ПИД-регулятора Мелодии задача. Эта задача позволяет вам в интерактивном режиме спроектировать ПИД-регулятор и автоматически генерирует код MATLAB для вашего live скрипта.
Для интерактивного ПИДа, настраивающего автономное приложение, используйте PID Tuner. См. Проект ПИД-регулятора для Быстрого Отслеживания уставки для примера разработки контроллера, использующего приложение.
zpk
использует функцию MATLAB roots
преобразовывать передаточные функции и функции zero
и pole
преобразовывать модели в пространстве состояний.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.