exponenta event banner

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

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

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

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

КомандаРезультат
tfdataИзвлечение коэффициентов передаточной функции
zpkdataИзвлечение нулевого положения и положения полюсов, а также усиление системы
ssdataИзвлечение матриц состояния-пространства
dssdataИзвлечь матрицы состояния дескриптора и пространства
frdataИзвлечение данных частотной характеристики из frd модель
piddataИзвлечение данных PID параллельной формы
pidstddataИзвлечение данных PID стандартной формы
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;

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

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

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

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

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

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

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

Подробнее