Доступ к данным о нулях и полюсах
[z,p,k] = zpkdata(sys)
[z,p,k,Ts] = zpkdata(sys)
[z,p,k,Ts,covz,covp,covk] = zpkdata(sys)
[z,p,k] = zpkdata(sys) возвращает нули z, p полюсов и усиление (усиления) k модели sys нулей и полюсов. Выходные параметры z и p являются массивами ячеек со следующими характеристиками:
z и p имеют столько же строк сколько выходные параметры и столько же столбцов сколько входные параметры.
Записи (i,j) z{i,j} и p{i,j} являются (столбец) векторами нулей и полюсами передаточной функции от входа j до вывода i.
Вывод k является матрицей со столькими же строк сколько выходные параметры и столько же столбцов сколько входные параметры, таким образом, что k(i,j) является усилением передаточной функции от входа j до вывода i. Если sys является передаточной функцией или моделью в пространстве состояний, он сначала преобразован в форму нулей и полюсов с помощью zpk.
Для моделей нулей и полюсов SISO, синтаксиса
[z,p,k] = zpkdata(sys,'v')
zpkdata сил, чтобы возвратить нули и орудует шестами непосредственно как вектор-столбцы, а не как массивы ячеек (см. пример ниже).
[z,p,k,Ts] = zpkdata(sys) также возвращает шаг расчета Ts.
[z,p,k,Ts,covz,covp,covk] = zpkdata(sys) также возвращает ковариации нулей, полюсов и усиления идентифицированной модели sys. covz является массивом ячеек, таким образом, что covz{ky,ku} содержит информацию о ковариации о нулях в векторном z{ky,ku}. covz{ky,ku} является трехмерным массивом размерности 2 2 nz, где Nz является длиной z{ky,ku}, так, чтобы элемент (1,1) был отклонением действительной части, элемент (2,2) является отклонением мнимой части, и (1,2) и элементы (2,1) содержат ковариацию между действительными и мнимыми частями. covp имеет подобное отношение к p.covk, матрица, содержащая отклонения элементов k.
Можно получить доступ к остающимся свойствам LTI sys с get или прямой ссылкой, например,
sys.Ts sys.inputname
Учитывая модель нулей и полюсов с двумя выходными параметрами и одним входом
H = zpk({[0];[-0.5]},{[0.3];[0.1+i 0.1-i]},[1;2],-1)
Zero/pole/gain from input to output...
z
#1: -------
(z-0.3)
2 (z+0.5)
#2: -------------------
(z^2 - 0.2z + 1.01)
Sample time: unspecified
можно извлечь нулевые/полюса/усиления данные, встроенные в H с
[z,p,k] = zpkdata(H)
z =
[ 0]
[-0.5000]
p =
[ 0.3000]
[2x1 double]
k =
1
2
Чтобы получить доступ к нулям и полюсам второго выходного канала H, получите содержимое второй ячейки в z и p путем ввода
z{2,1}
ans =
-0.5000
p{2,1}
ans =
0.1000+ 1.0000i
0.1000- 1.0000i
Извлеките матрицы ZPK и их стандартные отклонения для с 2 входами, 1 вывод идентифицировал передаточную функцию.
load iddata7
модель передаточной функции
sys1 = tfest(z7, 2, 1, 'InputDelay',[1 0]);
эквивалентная модель процесса
sys2 = procest(z7, {'P2UZ', 'P2UZ'}, 'InputDelay',[1 0]);
1, p1, k1, ~, dz1, dp1, dk1] = zpkdata(sys1);
[z2, p2, k2, ~, dz2, dp2, dk2] = zpkdata(sys2);Используйте iopzplot, чтобы визуализировать нулевые полюсом местоположения и их ковариации
h = iopzplot(sys1, sys2); showConfidence(h)