Создайте модель нулей, полюсов и усиления; преобразуйте в модель нулей, полюсов и усиления
sys = zpk(Z,P,K)
sys = zpk(Z,p,k,Ts)
sys = zpk(M)
sys = zpk(Z,p,k,ltisys)
s = zpk('s')
z = zpk('z',Ts)
zsys = zpk(sys)
zsys = zpk(sys,
'measured')
zsys = zpk(sys, 'noise')
zsys = zpk(sys, 'augmented')
Используемый zpk
создать модели нулей, полюсов и усиления (zpk
объекты модели), или преобразовывать динамические системы в форму нулей, полюсов и усиления.
sys = zpk(Z,P,K)
создает модель нулей, полюсов и усиления непрерывного времени с нулями Z
, полюса P
, и усиление (усиления) K
. Выход sys
zpk
объект модели, хранящий данные модели.
В случае SISO, Z
и P
векторы действительных - или нули с комплексным знаком и полюса и K
действительное - или скалярное усиление с комплексным знаком:
Установите Z
или p
к []
для систем без нулей или полюсов. Эти два вектора не должны иметь равной длины и потребности модели не быть соответствующими (то есть, иметь избыток полюсов).
Чтобы создать модель нулей, полюсов и усиления MIMO, задайте нули, полюса и усиление каждой записи SISO этой модели. В этом случае:
Z
и P
массивы ячеек векторов со столькими же строк сколько выходные параметры и столько же столбцов сколько входные параметры и K
матрица со столькими же строк сколько выходные параметры и столько же столбцов сколько входные параметры.
Векторы Z{i,j}
и P{i,j}
задайте нули и полюса передаточной функции от входа j
к выходу i
.
K(i,j)
задает (скалярное) усиление передаточной функции от входа j
к выходу i
.
Смотрите ниже для примера MIMO.
sys = zpk(Z,p,k,Ts)
создает модель нулей, полюсов и усиления дискретного времени с шагом расчета Ts
(в секундах). Установите Ts = -1
или Ts = []
оставить шаг расчета незаданным. Входные параметры Z
P
K
как в случае непрерывного времени.
sys = zpk(M)
задает статическое усиление M
.
sys = zpk(Z,p,k,ltisys)
создает модель нулей, полюсов и усиления со свойствами, наследованными от модели LTI ltisys
(включая шаг расчета).
Создать массив zpk
объекты модели, используйте for
цикл, или используют многомерные массивы ячеек в Z
и P
, и многомерный массив для K
.
Любой из предыдущих синтаксисов может сопровождаться именем свойства / пары значения свойства.
'PropertyName',PropertyValue
Каждая пара задает конкретное свойство модели, например, входных имен или входное время задержки. Для получения дополнительной информации о свойствах zpk
объекты модели, смотрите Свойства. Обратите внимание на то, что
sys = zpk(Z,P,K,'Property1',Value1,...,'PropertyN',ValueN)
ярлык для следующей последовательности команд.
sys = zpk(Z,P,K) set(sys,'Property1',Value1,...,'PropertyN',ValueN)
Можно также использовать рациональные выражения, чтобы создать модель ZPK. Для этого первый тип также:
s = zpk('s')
задавать модель ZPK с помощью рациональной функции в переменной Лапласа, s
.
z = zpk('z',Ts)
задавать модель ZPK с шагом расчета Ts
с помощью рациональной функции в переменной дискретного времени, z
.
Если вы задаете любую из этих переменных, можно задать модели ZPK непосредственно как рациональные выражения в переменной s
или z
путем ввода передаточной функции как рационального выражения в любом s
или z
.
zsys = zpk(sys)
преобразует произвольную модель LTI sys
к форме нулей, полюсов и усиления. Выход zsys
объект ZPK. По умолчанию, zpk
использование zero
вычислить нули при преобразовании от пространства состояний до нулей, полюсов и усиления. В качестве варианта,
zsys = zpk(sys,'inv')
формулы инверсии использования для моделей в пространстве состояний, чтобы вычислить нули. Этот алгоритм быстрее, но менее точен для старших моделей с низким усилением в s = 0.
Идентифицированная модель представлена уравнением ввода - вывода формы y(t) = Gu(t) + He(t)
, где u(t)
набор измеренных входных каналов и e(t)
представляет шумовые каналы. Если Λ= LL' представляет ковариацию шумового e(t)
, это уравнение может также быть записано как y(t) = Gu(t) + HLv(t)
, где cov(v(t)) = I
.
zsys = zpk(sys)
, или zsys = zpk(sys,
'measured')
преобразует измеренный компонент идентифицированной линейной модели в форму ZPK. sys
модель типа idss
, idproc
, idtf
, idpoly
, или idgrey
. zsys
представляет отношение между u
и y
.
zsys = zpk(sys, 'noise')
преобразует шумовой компонент идентифицированной линейной модели в форму ZPK. Это представляет отношение между шумовым входом, v(t)
и выход, y_noise = HL v(t)
. Шумовые входные каналы принадлежат InputGroup
'Noise'
. Именами шумовых входных каналов является v@yname
, где yname
имя соответствующего выходного канала. zsys
имеет столько же входных параметров сколько выходные параметры.
zsys = zpk(sys, 'augmented')
преобразует и измеренную и шумовую динамику в модель ZPK. zsys
имеет ny+nu
вводит таким образом что первый nu
входные параметры представляют каналы u(t)
в то время как остающиеся каналами представляют шумовые каналы v(t)
. zsys.InputGroup
содержит 2 входных группы, 'measured'
и 'noise'
. zsys.InputGroup.Measured
установлен в 1:nu
в то время как zsys.InputGroup.Noise
установлен в nu+1:nu+ny. zsys
представляет уравнение y(t) = [G HL] [u; v]
.
Идентифицированная нелинейная модель не может быть преобразована в систему ZPK. Используйте функции линейной аппроксимации, такие как linearize
и linapp
.
Что касается передаточных функций, можно задать который переменная использовать в отображении моделей нулей, полюсов и усиления. Доступный выбор включает s (значение по умолчанию) и p для моделей непрерывного времени и z (значение по умолчанию), z-1, q-1 (эквивалентный z-1), или q (эквивалентный z) для моделей дискретного времени. Повторно присвойте 'Variable'
свойство заменить значения по умолчанию. Замена переменной влияет только на отображение моделей нулей, полюсов и усиления.
zpk
объекты имеют следующие свойства:
|
Системные нули.
| ||||||||||||
|
Системные полюса.
| ||||||||||||
|
Системные усиления.
| ||||||||||||
|
Задает, как полином числителя и полином знаменателя разложен на множители в целях отображения. Полином числителя и полином знаменателя каждый отображен как продукт первых - и факторы второго порядка.
Для моделей непрерывного времени следующая таблица показывает, как полиномиальные факторы написаны в каждом формате отображения.
Для моделей дискретного времени полиномиальные факторы записаны как в непрерывное время со следующими подстановками переменных: где Ts является шагом расчета. В дискретное время τ и ω 0 тесно совпадают с постоянной времени и собственной частотой эквивалентного корня непрерывного времени, обеспечил |z–1 | ≪ Ts (ω 0 ≪ π/Ts = частота Найквиста). Значение по умолчанию: | ||||||||||||
|
Переменная отображения передаточной функции, заданная как одно из следующего:
Значение Значение по умолчанию: | ||||||||||||
|
Транспортные задержки. Для систем непрерывного времени задайте транспортные задержки единицы измерения времени, сохраненной в Для системы MIMO с Значение по умолчанию: | ||||||||||||
|
Введите задержку каждого входного канала, заданного как скалярное значение или числовой вектор. Для систем непрерывного времени задайте входные задержки единицы измерения времени, сохраненной в Для системы с Можно также установить Значение по умолчанию: 0 | ||||||||||||
|
Выведите задержки. Для системы с Значение по умолчанию: 0 для всех выходных каналов | ||||||||||||
|
'SampleTime' . Для моделей непрерывного времени, Изменение этого свойства не дискретизирует или передискретизирует модель. Используйте Значение по умолчанию: | ||||||||||||
|
Модули для переменной времени, шаг расчета
Изменение этого свойства не оказывает влияния на другие свойства, и поэтому изменяет полное поведение системы. Используйте Значение по умолчанию: | ||||||||||||
|
Введите названия канала, заданные как одно из следующего:
В качестве альтернативы используйте автоматическое векторное расширение, чтобы присвоить входные имена для мультивходных моделей. Например, если sys.InputName = 'controls'; Входные имена автоматически расширяются до Можно использовать краткое обозначение Входные названия канала имеют несколько использования, включая:
Значение по умолчанию: | ||||||||||||
|
Введите модули канала, заданные как одно из следующего:
Используйте Значение по умолчанию: | ||||||||||||
|
Введите группы канала. sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; создает входные группы под названием sys(:,'controls') Значение по умолчанию: Struct без полей | ||||||||||||
|
Выведите названия канала, заданные как одно из следующего:
В качестве альтернативы используйте автоматическое векторное расширение, чтобы присвоить выходные имена для мультивыходных моделей. Например, если sys.OutputName = 'measurements'; Выходные имена автоматически расширяются до Можно использовать краткое обозначение Выходные названия канала имеют несколько использования, включая:
Значение по умолчанию: | ||||||||||||
|
Выведите модули канала, заданные как одно из следующего:
Используйте Значение по умолчанию: | ||||||||||||
|
Выведите группы канала. sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; создает выходные группы под названием sys('measurement',:) Значение по умолчанию: Struct без полей | ||||||||||||
|
Имя системы, заданное как вектор символов. Например, Значение по умолчанию: | ||||||||||||
|
Любой текст, который вы хотите сопоставить с системой, сохраненной как строка или массив ячеек из символьных векторов. Свойство хранит, какой бы ни тип данных вы обеспечиваете. Например, если sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' Значение по умолчанию: | ||||||||||||
|
Любой тип данных вы хотите сопоставить с системой, заданной как любой тип данных MATLAB®. Значение по умолчанию: | ||||||||||||
|
Выборка сетки для массивов моделей, заданных как структура данных. Для массивов моделей, которые выведены путем выборки одной или нескольких независимых переменных, это дорожки свойства значения переменных, сопоставленные с каждой моделью в массиве. Эта информация появляется, когда вы отображаете или строите массив моделей. Используйте эту информацию, чтобы проследить результаты до независимых переменных. Установите имена полей структуры данных к именам переменных выборки. Установите значения полей к произведенным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми и скаляр, оцененный, и все массивы произведенных значений должны совпадать с размерностями массива моделей. Например, предположите, что вы создаете 11 1 массив линейных моделей, sysarr.SamplingGrid = struct('time',0:10) Точно так же предположите, что вы создаете 6 9 массив моделей, [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',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® в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет Значение по умолчанию: |
Создайте непрерывное время передаточная функция SISO:
Создайте h (s) как zpk
объектное использование:
h = zpk(0, [1-i 1+i 2], -2);
Задайте следующее с одним входом, 2D выходную модель нулей, полюсов и усиления:
Для этого, введите:
Z = {[] ; -0.5}; P = {0.3 ; [0.1+i 0.1-i]}; K = [1 ; 2]; H = zpk(Z,P,K,-1); % unspecified sample time
Преобразуйте передаточную функцию
h = tf([-10 20 0],[1 7 20 28 19 5]);
к форме нулей, полюсов и усиления, с помощью:
zpk(h)
Эта команда возвращает результат:
Zero/pole/gain: -10 s (s-2) ---------------------- (s+1)^3 (s^2 + 4s + 5)
Создайте модель ZPK дискретного времени из рационального выражения в переменной z
.
z = zpk('z',0.1); H = (z+.1)*(z+.2)/(z^2+.6*z+.09)
Эта команда возвращает следующий результат:
Zero/pole/gain: (z+0.1) (z+0.2) --------------- (z+0.3)^2 Sample time: 0.1
Создайте zpk
MIMO модель с помощью массивов ячеек нулей и полюсов.
Создайте 2D вход, 2D выходную модель нулей, полюсов и усиления
путем ввода:
Z = {[],-5;[1-i 1+i] []}; P = {0,[-1 -1];[1 2 3],[]}; K = [-1 3;2 0]; H = zpk(Z,P,K);
Использование
как заполнитель в Z
или P
когда соответствующая запись H (s) не имеет никаких нулей или полюсов.
Извлеките измеренные и шумовые компоненты идентифицированной полиномиальной модели в две отдельных модели ZPK. Первый (измеренный компонент) может служить моделью объекта управления, в то время как последний может служить возмущением для проекта системы управления.
load icEngine z = iddata(y,u,0.04); nb = 2; nf = 2; nc = 1; nd = 3; nk = 3; sys = bj(z, [nb nc nd nf nk]);
sys
модель формы, y(t) = B/F u(t) + C/D e(t)
, где B/F
представляет измеренный компонент и C/D
шумовой компонент.
sysMeas = zpk(sys, 'measured')
В качестве альтернативы использование может просто использовать zpk(sys)
извлекать измеренный компонент.
sysNoise = zpk(sys, 'noise')
zpk
использует функцию MATLAB roots
преобразовывать передаточные функции и функции zero
и pole
преобразовывать модели в пространстве состояний.