Извлеките коэффициенты модели

Функции для извлечения коэффициентов модели

Программное обеспечение Control System Toolbox™ включает несколько команд для извлечения коэффициентов модели, таких как числитель передаточной функции и коэффициенты знаменателя, матрицы пространства состояний и усиления пропорциональной интегральной производной (PID).

Следующие команды доступны для экстракции данных.

КомандаРезультат
tfdataИзвлеките коэффициенты передаточной функции
zpkdataНуль извлечения и местоположения полюса и системное усиление
ssdataИзвлеките матрицы пространства состояний
dssdataИзвлеките матрицы пространства состояний дескриптора
frdataИзвлеките данные о частотной характеристике из модели frd
piddataИзвлеките данные о ПИДе параллельной формы
pidstddataИзвлеките данные о ПИДе стандартной формы
getДоступ ко всем образцовым значениям свойств

Извлечение коэффициентов различного типа модели

Когда вы используете команду экстракции данных на модели другого типа, программное обеспечение вычисляет коэффициенты целевого типа модели. Например, если вы используете zpkdata на модели ss, программное обеспечение преобразовывает модель в форму zpk и возвращает нуль и местоположения полюса и системное усиление.

Извлеките числовые данные модели и задержку

Этот пример показывает, как извлечь числитель передаточной функции и коэффициенты знаменателя с помощью tfdata.

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

    s = tf('s');
    H = exp(-2.5*s)/(s+12);
  2. Извлеките коэффициенты знаменателя и числитель.

    [num,den] = tfdata(H,'v')

    Переменные num и den являются числовыми массивами. Без флага 'v' tfdata возвращает массивы ячеек.

    Примечание

    Для моделей передаточной функции SISO можно также извлечь содействующее использование:

    num = H.Numerator{1};
    den = H.Denominator{1};
  3. Извлеките задержку.

    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.

    2. Извлеките выходную задержку.

      delay = H.OutputDelay;

Извлеките коэффициенты ПИД от передаточной функции

Этот пример показывает, как извлечь ПИД (пропорционально-интегрально-производные) усиления от передаточной функции с помощью piddata. Можно использовать те же шаги, чтобы извлечь коэффициенты ПИД из модели любого типа, который представляет ПИД-регулятор, с помощью piddata или pidstddata.

  1. Создайте передаточную функцию, которая представляет ПИД-регулятор с фильтром первого порядка на производном термине.

     Czpk = zpk([-6.6,-0.7],[0,-2],0.2)
  2. Получите коэффициенты ПИД и отфильтруйте постоянный.

    [Kp,Ki,Kd,Tf] = piddata(Czpk)

    Эта команда возвращает пропорциональное усиление Kp, интеграл получает Ki, производная получают Kd, и производная фильтрует временную константу Tf. Поскольку piddata автоматически вычисляет параметры ПИД-регулятора, можно извлечь коэффициенты ПИДа, не создавая модель pid.

Связанные примеры

Больше о