Convert Model Rate

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

Описание

Преобразуйте Уровень Модели, позволяет вам в интерактивном режиме преобразовать модель LTI между непрерывным временем и дискретным временем. Можно также использовать его, чтобы передискретизировать модель дискретного времени. Задача автоматически генерирует код MATLAB® для вашего live скрипта.

Чтобы начать с задачей Уровня Модели Преобразования, выберите модель, которую вы хотите преобразовать. Можно также задать целевой шаг расчета, метод преобразования и другие параметры. Задача генерирует конвертированную модель в рабочем пространстве MATLAB и может сгенерировать график отклика, чтобы позволить вам контролировать соответствие между исходными и конвертированными моделями, когда вы экспериментируете с параметрами преобразования.

Связанные функции

Преобразуйте Уровень Модели, генерирует код с помощью следующих функций.

Convert Model Rate task in Live Editor

Откройте задачу

Добавить задачу Уровня Модели Преобразования в live скрипт в редакторе MATLAB:

  • На вкладке Live Editor выберите Task> Convert Model Rate.

  • В блоке кода в вашем скрипте введите соответствующее ключевое слово, такое как convert, rate, или c2d. Выберите Convert Model Rate от предложенных завершений команды.

Примеры

развернуть все

Используйте задачу Уровня Модели Преобразования в Live Editor в интерактивном режиме преобразовать модель с непрерывного времени до дискретного времени. Экспериментируйте с различными методами, опциями и графиками отклика. Задача автоматически генерирует код, отражающий ваши выборы. Откройте этот пример, чтобы видеть, что предварительно сконфигурированный скрипт содержит задачу Уровня Модели Преобразования.

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

G = tf([1 -50 300],[1 3 200 350]);

Чтобы дискретизировать эту модель, откройте задачу Уровня Модели Преобразования в Live Editor. На вкладке Live Editor выберите Task> Convert Model Rate. В задаче выберите G как модель, чтобы преобразовать.

Задача автоматически дискретизирует модель с помощью шага расчета по умолчанию, 0,2 с, и метода преобразования по умолчанию, Zero-order hold. Это также создает Диаграмму Боде, позволяя вам сравнить ответы исходных и конвертированных моделей.

Вертикальная линия на графике показывает частоту Найквиста, сопоставленную с шагом расчета по умолчанию. Предположим, что вы хотите использовать шаг расчета 0,15 секунд. Измените шаг расчета путем ввода нового значения в поле Sample Time. График отклика автоматически обновляется, чтобы отразить новый шаг расчета.

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

Метод Тастина может дать к лучшему соответствию в частотном диапазоне, чем нулевой порядок по умолчанию содержит метод. (См. Непрерывно-дискретные Методы Преобразования.) В Выбирают Conversion Method, выбирают Bilinear (Tustin) approximation. Первоначально, получившееся соответствие частотного диапазона более плохо, чем с нулевым порядком, содержат метод.

Можно улучшить соответствие с помощью частоты перед деформацией. Эта опция обеспечивает ответ дискретного времени, чтобы соответствовать на частоте, которую вы задаете. Резонанс G peaks на уровне приблизительно 14 рад/с. Введите то значение для частоты перед деформацией. Соответствие действительно улучшается вокруг резонанса. Однако резонанс очень близко к частоте Найквиста для шага расчета 0,15 с, который ограничивает, как близко соответствие может быть.

Задача Уровня Модели Преобразования может сгенерировать другие типы графиков отклика. Например, чтобы сравнить ответы временного интервала исходной и преобразованной модели, в Выходном Графике, выбирают step или impulse.

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

По умолчанию сгенерированный код использует sysConverted как имя выходной переменной. Конвертированная модель в рабочей области MATLAB® с помощью этого имени. Чтобы задать различное имя выходной переменной, введите новое имя в итоговой линии во главе задачи. Например, поменяйте имя на sys_d.

Задача обновляет сгенерированный код, чтобы отразить новое имя переменной и новую конвертированную модель sys_d появляется в рабочем пространстве MATLAB. Можно использовать модель для последующего анализа или системы управления, когда вы были бы любой другой объект модели. Например, симулируйте ответ конвертированной системы на вход прямоугольной волны. Используйте шаг расчета, который вы задали в задаче.

[u,t] = gensig('square',4,10,0.15);
lsim(sys_d,u,t)

Параметры

Выберите модель LTI. Список содержит все подходящие модели динамической системы непрерывного времени или дискретного времени в рабочем пространстве MATLAB, включая:

  • Числовые модели LTI, такие как tf, ss, или zpk модели.

  • Идентифицированные модели LTI, такие как idss и idtf. (Используя идентифицированные модели требует лицензии System Identification Toolbox™.)

Можно преобразовать модели SISO или модели MIMO, с или без задержек, несмотря на то, что некоторые методы преобразования только доступны для моделей SISO (см. описание параметра Method). Вы не можете использовать, Преобразуют Уровень Модели, чтобы преобразовать обобщенные модели LTI такой как genss или uss, модели данных частотной характеристики такой как frd, или модели процессов (idproc).

Задайте шаг расчета конвертированной модели в модулях 1/TimeUnit, где TimeUnit TimeUnit свойство входной модели.

  • Чтобы дискретизировать модель непрерывного времени или передискретизировать модель дискретного времени, введите целевой шаг расчета.

  • Чтобы преобразовать модель дискретного времени в непрерывное время, войдите 0.

Выберите метод преобразования уровня. Доступные методы:

  • Zero-order hold

  • First-order hold

  • Impulse-invariant discretization (непрерывное-к-дискретному преобразование только моделей SISO)

  • Bilinear (Tustin) approximation

  • Zero-pole matching method

  • Least-squares method (непрерывное-к-дискретному преобразование только моделей SISO)

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

Когда вы преобразуете уровень модели, которая имеет задержку, Bilinear (Tustin) approximation или Zero-pole matching method методы вокруг задержки к кратному ближайшего целого числа шаг расчета. Это округление может ухудшить точность динамики, особенно около частоты Найквиста.

Установите Delay Order на ненулевое целое число делать, Преобразуют Уровень Модели, аппроксимированный дробный фрагмент задержки с помощью фильтра Thiran, вместо округления. Используйте наименьшее значение, которое дает к достаточно точной преобразованной в уровень динамике для вашего приложения. Для получения дополнительной информации о фильтрах Thiran, смотрите thiran.

Когда вы дискретизируете модель непрерывного времени, если ваша система имеет важную динамику на особой частоте, которую вы хотите, чтобы преобразование уровня сохранило, можно использовать Bilinear (Tustin) approximation метод с предварительным деформированием частоты. Этот метод гарантирует соответствие между исходными и конвертированными ответами на частоте перед деформацией, которую вы задаете. См. Непрерывно-дискретные Методы Преобразования.

Преобразуйте Уровень Модели, автоматически генерирует график отклика, чтобы помочь вам проверять, что движущие силы, важные для вашего приложения, сохраняются. Задайте один из следующих типов графика отклика, чтобы сравнить ответы исходных и конвертированных моделей, в то время как вы экспериментируете с параметрами преобразования.

  • Bode

  • Step

  • Impulse

  • Pole-Zero

Код, сгенерированный задачей, включает код, чтобы создать выбранный график отклика. Чтобы не использовать график отклика, выберите None.

Введенный в R2019b