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

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

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

Для извлечения данных доступны следующие команды.

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

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

Когда вы используете команду извлечения данных для модели другого типа, программное обеспечение вычисляет коэффициенты целевого типа модели. Для примера, если вы используете zpkdata на ss model, программное обеспечение преобразует модель в 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 модель.

Похожие примеры

Подробнее о