Программное обеспечение Toolbox™ системы управления включает несколько команд для извлечения коэффициентов модели, таких как числитель передаточных функций и коэффициенты знаменателя, матрицы пространства состояний и коэффициент усиления пропорционально-интегрального производного (PID).
Для извлечения данных доступны следующие команды.
Команда | Результат |
---|---|
tfdata | Извлечение коэффициентов передаточной функции |
zpkdata | Извлеките нулевые и полюсные положения и усиление системы |
ssdata | Извлечение матриц пространства состояний |
dssdata | Извлечение матриц пространства состояний дескрипторов |
frdata | Извлеките данные частотной характеристики из frd модель |
piddata | Извлечение параллельной формы ПИД данных |
pidstddata | Извлечение ПИД стандартной формы данных |
get | Доступ ко всем значениям свойств модели |
Когда вы используете команду извлечения данных для модели другого типа, программное обеспечение вычисляет коэффициенты целевого типа модели. Для примера, если вы используете zpkdata
на ss
model, программное обеспечение преобразует модель в zpk
формирует и возвращает нулевое и полюсное положения и усиление системы.
В этом примере показано, как извлечь числитель передаточных функций и коэффициенты знаменателя с помощью tfdata
.
Создайте модель передаточной функции первого порядка и мертвого времени.
s = tf('s'); H = exp(-2.5*s)/(s+12);
Извлеките коэффициенты числителя и знаменателя.
[num,den] = tfdata(H,'v')
Переменные num
и den
являются числовыми массивами. Без 'v'
флаг, tfdata
возвращает массивы ячеек.
Примечание
Для моделей передаточной функции SISO можно также извлечь коэффициенты с помощью:
num = H.Numerator{1}; den = H.Denominator{1};
Извлечение временной задержки.
Определите, какое свойство H
содержит задержку по времени.
В SISO tf
модель, можно выразить задержку по времени как задержку на входе, задержку на выходе или задержку транспорта (ввод-вывод).
get(H)
Numerator: {[0 1]} Denominator: {[1 12]} Variable: 's' IODelay: 0 InputDelay: 0 OutputDelay: 2.5000 Ts: 0 TimeUnit: 'seconds' InputName: {''} InputUnit: {''} InputGroup: [1×1 struct] OutputName: {''} OutputUnit: {''} OutputGroup: [1×1 struct] Notes: [0×1 string] UserData: [] Name: '' SamplingGrid: [1×1 struct]
Задержка сохранена в OutputDelay
свойство.
Извлеките выход.
delay = H.OutputDelay;
В этом примере показано, как извлечь ПИД (пропорционально-интегрально-производная) из передаточной функции с помощью piddata
. Можно использовать те же шаги, чтобы извлечь коэффициенты ПИД из модели любого типа, которая представляет ПИД-регулятору, используя piddata
или pidstddata
.
Создайте передаточную функцию, которая представляет ПИД-регулятору с фильтром первого порядка на производном члене.
Czpk = zpk([-6.6,-0.7],[0,-2],0.2)
Получите коэффициенты ПИД и коэффициент фильтрации.
[Kp,Ki,Kd,Tf] = piddata(Czpk)
Эта команда возвращает пропорциональную составляющую усиления Kp
, интегральная составляющая усиления Ki
, производная по усилению Kd
, и производная фильтрует постоянную времени Tf
. Поскольку piddata
автоматически вычисляет параметры ПИД-регулятора, можно извлечь коэффициенты ПИД, не создавая pid
модель.