exponenta event banner

c2d

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

Описание

пример

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

пример

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

пример

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

[sysd,G] = c2d(___), где sysc - модель состояния-пространства, возвращает матрицу, G который отображает непрерывные начальные условия x0 и u0 модели пространства состояний в вектор начального состояния с дискретным временем 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.

Дискретизируйте модель с использованием метода дискретизации Тустина и фильтра Тирана для моделирования дробных задержек. Время выборки 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, фильтр Тирана третьего порядка ('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).

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

свернуть все

Модель непрерывного времени, заданная как динамическая модель системы, например idtf, idss, или idpoly. 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' - Демпфированное приближение Tustin на основе TRBDF2 формула только для разреженных моделей.

Сведения о алгоритмах для каждого метода преобразования см. в разделе Методы непрерывного-дискретного преобразования.

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

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

свернуть все

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

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

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

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

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

x [0]=G⋅[x0u0]

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

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