Создайте модель нулей и полюсов; преобразуйте в модель нулей и полюсов
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)
. Шумовые входные каналы принадлежат 'Noise'
InputGroup
. Именами шумовых входных каналов является 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
Создайте модель MIMO zpk
с помощью массивов ячеек нулей и полюсов.
Создайте 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
, чтобы преобразовать модели в пространстве состояний.