c2d

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

Описание

пример

sysd = c2d(sysc,Ts) дискретизирует модель sysc динамической системы непрерывного времени использование нулевого порядка держится входные параметры и шаг расчета Ts.

пример

sysd = c2d(sysc,Ts,method) задает метод дискретизации.

пример

sysd = c2d(sysc,Ts,opts) задает дополнительные опции для дискретизации.

[sysd,G] = c2d(___), где sysc модель в пространстве состояний, возвращает матрицу, G это сопоставляет непрерывные начальные условия x 0 и u 0 из модели в пространстве состояний к вектору начального состояния дискретного времени x [0].

Примеры

свернуть все

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

H(s)=e-0.3ss-1s2+4s+5.

Эта система имеет входную задержку 0,3 с. Дискретизируйте систему с помощью треугольника (задержка первого порядка) приближение с шагом расчета Ts = 0,1 с.

H = tf([1 -1],[1 4 5],'InputDelay', 0.3); 
Hd = c2d(H,0.1,'foh');

Сравните переходные процессы непрерывного времени и дискретизированных систем.

step(H,'-',Hd,'--')

Дискретизируйте следующую задержанную передаточную функцию с помощью нулевого порядка, держатся вход, и 10 Гц, производящих уровень.

H(s)=e-0.25s10s2+3s+10.

h = tf(10,[1 3 10],'IODelay',0.25); 
hd = c2d(h,0.1)
hd =
 
           0.01187 z^2 + 0.06408 z + 0.009721
  z^(-3) * ----------------------------------
                 z^2 - 1.655 z + 0.7408
 
Sample time: 0.1 seconds
Discrete-time transfer function.

В этом примере, дискретизированной модели hd имеет задержку трех периодов выборки. Алгоритм дискретизации поглощает остаточную задержку полупериода в коэффициенты hd.

Сравните переходные процессы непрерывного времени и дискретизированных моделей.

step(h,'--',hd,'-')

Создайте модель в пространстве состояний непрерывного времени с двумя состояниями и входной задержкой.

sys = ss(tf([1,2],[1,4,2]));
sys.InputDelay = 2.7
sys =
 
  A = 
       x1  x2
   x1  -4  -2
   x2   1   0
 
  B = 
       u1
   x1   2
   x2   0
 
  C = 
        x1   x2
   y1  0.5    1
 
  D = 
       u1
   y1   0
 
  Input delays (seconds): 2.7 
 
Continuous-time state-space model.

Дискретизируйте модель с помощью метода дискретизации Тастина и фильтра Thiran, чтобы смоделировать дробные задержки. Шаг расчета Ts = 1 секунда.

opt = c2dOptions('Method','tustin','FractDelayApproxOrder',3);
sysd1 = c2d(sys,1,opt)
sysd1 =
 
  A = 
              x1         x2         x3         x4         x5
   x1    -0.4286    -0.5714   -0.00265    0.06954      2.286
   x2     0.2857     0.7143  -0.001325    0.03477      1.143
   x3          0          0    -0.2432     0.1449    -0.1153
   x4          0          0       0.25          0          0
   x5          0          0          0      0.125          0
 
  B = 
             u1
   x1  0.002058
   x2  0.001029
   x3         8
   x4         0
   x5         0
 
  C = 
              x1         x2         x3         x4         x5
   y1     0.2857     0.7143  -0.001325    0.03477      1.143
 
  D = 
             u1
   y1  0.001029
 
Sample time: 1 seconds
Discrete-time state-space model.

Дискретизированная модель теперь содержит три дополнительных состояния x3, x4, и x5 соответствие третьему порядку фильтр Thiran. Поскольку задержка, разделенная на шаг расчета, 2.7, третий порядок фильтр Thiran ('FractDelayApproxOrder' = 3) может аппроксимировать целую задержку.

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

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

Оцените передаточную функцию дискретного времени второго порядка.

sys2d = tfest(z1,2,'Ts',0.1);

Сравните ответ дискретизированной модели передаточной функции непрерывного времени, sys1d, и непосредственно предполагаемая модель дискретного времени, sys2d.

compare(z1,sys1d,sys2d)

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

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

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

load iddata2
sysc = ssest(z2,4);

Предскажите, что 1 шаг вперед предсказал ответ sysc.

predict(sysc,z2)

Дискретизируйте модель.

sysd = c2d(sysc,0.1,'zoh');

Создайте модель предиктора из дискретизированной модели, sysd.

[A,B,C,D,K] = idssdata(sysd);
Predictor = ss(A-K*C,[K B-K*D],C,[0 D],0.1);

Predictor 2D входная модель, которая использует измеренный выход и входные сигналы ([z1.y z1.u]) вычислить 1 шаг предсказало ответ sysc.

Симулируйте модель предиктора, чтобы получить тот же ответ как predict команда.

lsim(Predictor,[z2.y,z2.u])

Симуляция модели предиктора дает тот же ответ как predict(sysc,z2).

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

свернуть все

Модель непрерывного времени в виде модели динамической системы, такой как tf, ss, или zpk. sysc не может быть модель данных частотной характеристики. sysc может быть SISO или система MIMO, за исключением того, что 'matched' метод дискретизации поддерживает системы SISO только.

sysc может иметь ввод/вывод или внутренние задержки; однако, 'matched', 'impulse', и 'least-squares' методы не поддерживают модели в пространстве состояний с внутренними задержками.

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

  • idgrey модели, чей FunctionType 'c'. Преобразуйте в idss модель сначала.

  • idproc модели. Преобразуйте в idtf или idpoly модель сначала.

Шаг расчета в виде положительной скалярной величины, которая представляет период выборки получившейся системы дискретного времени. Ts находится в TimeUnit, который является sysc.TimeUnit свойство.

Метод дискретизации в виде одного из следующих значений:

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

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

  • 'impulse' — Импульсная дискретизация инварианта

  • 'tustin' — Билинейный (Тастин) метод. Задавать этот метод с предварительным деформированием частоты (раньше известный как 'prewarp' метод), используйте PrewarpFrequency опция c2dOptions.

  • 'matched' — Нулевой полюсный метод сопоставления

  • 'least-squares' — Метод наименьших квадратов

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

Опции дискретизации в виде c2dOptions объект. Например, задайте частоту перед деформацией, порядок фильтра Thiran или метода дискретизации как опция.

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

свернуть все

Модель дискретного времени, возвращенная как модель динамической системы того же типа как входная система sysc.

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

  • Включает и измеренные и шумовые компоненты sysc. Инновационное отклонение λ непрерывного времени идентифицировало модель sysc, сохраненный в его NoiseVarianceсвойство, интерпретирован как интенсивность спектральной плотности шумового спектра. Шумовое отклонение в sysd таким образом λ/Ts.

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

Отображение начальных условий непрерывного времени x 0 и u 0 из модели в пространстве состояний sysc к вектору начального состояния дискретного времени x [0], возвращенный как матрица. Отображение начальных условий к вектору начального состояния следующие:

x[0]=G[x0u0]

Для моделей в пространстве состояний с задержками, c2d заполняет матричный G с обнуляет, чтобы составлять дополнительные состояния, введенные путем дискретизации тех задержек. См. Непрерывно-дискретные Методы Преобразования для обсуждения моделирования задержек дискретизированных систем.

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