Программное обеспечение системы управления Toolbox™ включает в себя несколько команд для извлечения коэффициентов модели, таких как коэффициенты числителя и знаменателя передаточной функции, матрицы состояния-пространства и коэффициенты усиления пропорциональной интегральной производной (PID).
Для извлечения данных доступны следующие команды.
| Команда | Результат |
|---|---|
tfdata | Извлечение коэффициентов передаточной функции |
zpkdata | Извлечение нулевого положения и положения полюсов, а также усиление системы |
ssdata | Извлечение матриц состояния-пространства |
dssdata | Извлечь матрицы состояния дескриптора и пространства |
frdata | Извлечение данных частотной характеристики из frd модель |
piddata | Извлечение данных PID параллельной формы |
pidstddata | Извлечение данных PID стандартной формы |
get | Доступ ко всем значениям свойств модели |
При использовании команды извлечения данных для модели другого типа программа вычисляет коэффициенты целевого типа модели. Например, при использовании zpkdata на ss модель, программное обеспечение преобразует модель в 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;
В этом примере показано, как извлечь PID (пропорционально-интегральная производная) из передаточной функции с помощью piddata. Можно использовать те же шаги для извлечения выигрышей PID из модели любого типа, представляющей контроллер PID, используя piddata или pidstddata.
Создайте передаточную функцию, представляющую PID-контроллер с фильтром первого порядка на сроке производной.
Czpk = zpk([-6.6,-0.7],[0,-2],0.2)
Получение коэффициентов усиления PID и константы фильтра.
[Kp,Ki,Kd,Tf] = piddata(Czpk)
Эта команда возвращает пропорциональный коэффициент усиления Kp, интегральное усиление Ki, выигрыш по производной Kdи постоянная времени производного фильтра Tf. Поскольку piddata автоматически вычисляет параметры контроллера PID, можно извлечь коэффициенты PID без создания pid модель.