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

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

Программное обеспечение 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 содержит задержку.

      В tf SISO модель, можно выразить задержку как входную задержку, выходную задержку или транспортную задержку (задержка ввода-вывода).

      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 модель.

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

Больше о