d2c

Преобразуйте модель от дискретного до непрерывного времени

Синтаксис

sysc = d2c(sysd)
sysc = d2c(sysd,method)
sysc = d2c(sysd,opts)
[sysc,G] = d2c(sysd,method,opts)

Описание

sysc = d2c(sysd) производит непрерывно-разовую модель sysc, которая эквивалентна модели sysd динамической системы дискретного времени с помощью нулевого порядка, держатся входные параметры.

sysc = d2c(sysd,method) использует заданный метод преобразования method.

sysc = d2c(sysd,opts) преобразовывает sysd с помощью набора опции opts, заданное использование команды d2cOptions.

[sysc,G] = d2c(sysd,method,opts) возвращает матричный G, который сопоставляет состояния xd[k] модели в пространстве состояний sysd к состояниям xc(t) sysc.

Входные параметры

sysd

Модель динамической системы дискретного времени

Вы не можете непосредственно использовать модель idgrey, FunctionType которой является 'd' с d2c. Преобразуйте модель в форму idss сначала.

method

Дискретный-к-непрерывному метод преобразования времени, заданный как одно из следующих значений:

  • 'zoh' — Нулевой порядок держится входные параметры. Принимает, что входные параметры управления являются кусочной константой за период выборки.

  • 'foh' — Линейная интерполяция входных параметров (изменил хранение первого порядка). Принимает, что входные параметры управления кусочны линейный за период выборки.

  • 'tustin' — Билинейный (Тастин) приближение к производной

  • 'matched' — Нулевой полюсный метод сопоставления (только для систем SISO). См. [1].

Для получения информации об алгоритмах для каждого метода преобразования d2c см. Непрерывно-дискретные Методы Преобразования.

Значение по умолчанию: 'zoh'

opts

Дискретные-к-непрерывному опции преобразования времени, созданное использование d2cOptions.

Выходные аргументы

sysc

Непрерывно-разовая модель того же типа как входная система sysd.

Когда sysd является идентифицированной моделью (IDLTI), sysc:

  • Включает и измеренные и шумовые компоненты sysd. Если шумовым отклонением является λ в sysd, то непрерывно-разовая модель sysc имеет обозначенный уровень шумовой спектральной плотности, равной Ts*λ.

  • Не включает предполагаемую ковариацию параметра sysd. Если вы хотите перевести ковариацию при преобразовании модели используйте translatecov.

G

Матрица, сопоставляющая состояния xd[k] модели в пространстве состояний sysd к состояниям xc(t) sysc:

xc(kTs)=G[xd[k]u[k]].

Учитывая начальное условие x0 для sysd и начального входа u0 = u[0], соответствующего начального условия для sysc (принимающий u[k] = 0 для k < 0:

xc(0)=G[x0u0].

Примеры

свернуть все

Создайте следующую передаточную функцию дискретного времени:

H(z)=z-1z2+z+0.3

H = tf([1 -1],[1 1 0.3],0.1);

Шаг расчета модели Ts=0.1s.

Выведите непрерывно-разовое, "обнулите порядок, содержат" эквивалентную модель.

Hc = d2c(H)
Hc =
 
   121.7 s + 1.405e-12
  ---------------------
  s^2 + 12.04 s + 776.7
 
Continuous-time transfer function.

Дискретизируйте получившуюся модель, Hc, с нулевым порядком по умолчанию содержат метод и шаг расчета 0,1 с, чтобы возвратить исходную дискретную модель, H.

c2d(Hc,0.1)
ans =
 
      z - 1
  -------------
  z^2 + z + 0.3
 
Sample time: 0.1 seconds
Discrete-time transfer function.

Используйте метод приближения Тастина, чтобы преобразовать H в непрерывную модель времени.

Hc2 = d2c(H,'tustin');

Дискретизируйте получившуюся модель, Hc2, чтобы возвратить исходную модель дискретного времени, H.

c2d(Hc2,0.1,'tustin');

Оцените модель передаточной функции дискретного времени и преобразуйте ее в непрерывно-разовую модель.

load iddata1
sys1d = tfest(z1,2,'Ts',0.1);
sys1c = d2c(sys1d,'zoh');

Оцените непрерывно-разовую модель передаточной функции.

sys2c = tfest(z1,2);

Сравните ответ sys1c и непосредственно предполагаемой непрерывно-разовой модели, sys2c.

compare(z1,sys1c,sys2c)

Эти две системы почти идентичны.

Преобразуйте идентифицированную модель передаточной функции дискретного времени в непрерывно-разовый.

load iddata1
sysd = tfest(z1,2,'Ts',0.1);
sysc = d2c(sysd,'zoh');

sys1c не имеет никакой информации о ковариации. Операция d2c приводит к потере данных о ковариации идентифицированных моделей.

Регенерируйте информацию о ковариации с помощью нулевого обновления итерации с теми же данными о команде и оценке оценки.

opt = tfestOptions; 
opt.SearchOptions.MaxIterations = 0;
sys1c = tfest(z1,sysc,opt);

Анализируйте эффект на неуверенность частотной характеристики.

h = bodeplot(sysd,sys1c);
showConfidence(h,3)

Неуверенность в sys1c и sysd сопоставима до частоты Найквиста. Однако sys1c показывает большую неуверенность в частотном диапазоне, для которого данные об оценке не предоставляют информации.

Если у вас нет доступа к данным об оценке, используйте команду translatecov, которая является приближением Гаусса основанный на формуле перевод ковариации через операции преобразования типа модели.

Ограничения

Приближение Тастина не задано для систем с полюсами в z = –1 и плохо обусловлено для систем с полюсами около z = –1.

Нулевой порядок содержит метод, не может обработать системы с полюсами в z = 0. Кроме того, преобразование 'zoh' увеличивает порядок модели для систем с отрицательными действительными полюсами, [2]. Порядок модели увеличивается, потому что матричный логарифм сопоставляет действительные отрицательные полюса, чтобы объединить полюса. Один комплексные полюса не физически значимы из-за своего комплексного ответа времени.

Вместо этого чтобы гарантировать, что все комплексные полюса непрерывной модели прибывают в сопряженные пары, d2c заменяет отрицательные действительные полюса z = –α с парой комплексно-сопряженных полюсов рядом –α. Преобразование затем приводит к непрерывной модели с высшим порядком. Например, чтобы преобразовать передаточную функцию дискретного времени

H(z)=z+0.2(z+0.5)(z2+z+0.4)

ввод:

Ts = 0.1  % sample time 0.1 s
H = zpk(-0.2,-0.5,1,Ts) * tf(1,[1 1 0.4],Ts)
Hc = d2c(H) 

Эти команды приводят к следующему результату.

Warning: System order was increased to handle real negative poles.
 
Zero/pole/gain:
  -33.6556 (s-6.273) (s^2 + 28.29s + 1041)
--------------------------------------------
(s^2 + 9.163s + 637.3) (s^2 + 13.86s + 1035)

Чтобы преобразовать Hc назад в дискретное время, введите:

c2d(Hc,Ts)

получение

Zero/pole/gain:
     (z+0.5) (z+0.2)
-------------------------
(z+0.5)^2 (z^2 + z + 0.4)
 
Sample time: 0.1

Эта дискретная модель совпадает с H (z) после отмены пары полюса/нуля в z = –0.5.

Советы

  • Используйте синтаксис sysc = d2c(sysd,'method'), чтобы преобразовать sysd с помощью опций по умолчанию for'method'. Чтобы задать преобразование tustin с предварительной деформацией частоты (раньше метод 'prewarp'), используйте синтаксис sysc = d2c(sysd,opts). Смотрите страницу с описанием d2cOptions для получения дополнительной информации.

Алгоритмы

d2c выполняет преобразование 'zoh' в пространстве состояний и полагается на матричный логарифм (см. logm в документации MATLAB®).

Дополнительную информацию см. в Непрерывно-дискретных Методах Преобразования на методах преобразования.

Ссылки

[1] Франклин, G.F., Пауэлл, D.J., и рабочий, М.Л., цифровое управление динамических систем (3-й выпуск), Prentice Hall, 1997.

[2] Kollár, я., Г.Ф. Франклин и Р. Пинтелон, "На Эквивалентности z-области и s-моделей-предметной-области в System Identification", Продолжения IEEE® Instrumentation и Технологической Конференции по Измерению, Брюсселя, Бельгия, июнь 1996, Издание 1, стр 14-19.

Смотрите также

| | | |

Представлено до R2006a