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,'--')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent H, Hd.

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

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,'-')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent 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 соответствующий триановому фильтру третьего порядка. Поскольку временная задержка, разделенная на шаг расчета, составляет 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)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent z1 (y1), sys1d: 70.77%, sys2d: 69.3%.

Две системы практически идентичны.

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

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

load iddata2
sysc = ssest(z2,4);

Спрогнозируйте предсказанный ответ на 1 шаг вперед sysc.

predict(sysc,z2)

Figure contains an axes. The axes contains an object of type line. These objects represent z2 (y1), sysc.

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

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 является моделью с двумя входами, которая использует измеренные выходные и входные сигналы ([z1.y z1.u]) для вычисления 1-шагового предсказанного отклика sysc.

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

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

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Driving inputs, Predictor.

Симуляция модели предиктора дает тот же ответ, что и 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' - Метод наименьших квадратов

  • 'damped' - Демпфированное приближение Тастина на основе TRBDF2 формула только для разреженных моделей.

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

Опции дискретизации, заданные как 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