Функция Matlab c2d дает другой вывод, чем таблицы Z-преобразования - PullRequest
0 голосов
/ 06 февраля 2020

c2d используется для преобразования модели из непрерывного в дискретное время. Официальный do c заявляет:

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

Почему, когда я делаю:

>> s = tf('s')
>> c2d(1/s, 1)

, я получаю:

ans =

    1
  -----
  z - 1

Sample time: 1 seconds
Discrete-time transfer function.

, но в соответствии с Z -преобразование таблицы преобразование z 1/s равно

ans =

    z
  -----
  z - 1

Почему это расхождение?

1 Ответ

1 голос
/ 06 февраля 2020

Вы смешиваете две отдельные концепции:

  1. Преобразование Лапласа для непрерывной ступенчатой ​​функции, u (t), равно 1/s.
  2. Z-преобразование дискретной ступенчатой ​​функции , u (n), равно z / (z-1).

Обратите внимание, что непрерывная пошаговая функция u (t) не является такой же, как дискретная ступенчатая функция, u (n). Последний определяется только в моменты времени t = n * T с помощью дискретизации.

Поскольку домен Лапласа предназначен для непрерывных сигналов, а домен z - для дискретных сигналов, не существует 1-к-1 или точное преобразование между двумя. Существуют только приблизительные преобразования для учета влияния действия дискретизации на непрерывные сигналы. Вот почему команда c2d должна использовать различные методы аппроксимации, по умолчанию используется удержание нулевого порядка (zoh).

Импульсно-инвариантный метод аппроксимации даст искомый результат, так как он оптимизирован для «создания модели с дискретным временем с той же импульсной характеристикой, что и система с непрерывным временем».

>> s = tf('s');
>> T = 1;
>> c2d(1/s, T, 'impulse')

ans =
    z
  -----
  z - 1

Подробнее см. в соответствующей документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...