exponenta event banner

zpk

Модель с нулевым коэффициентом усиления

    Описание

    Использовать zpk создание моделей с нулевым усилением полюсов или преобразование динамических системных моделей в форму с нулевым усилением полюсов.

    Модели с нулевым коэффициентом усиления являются представлением передаточных функций в факторизованном виде. Например, рассмотрим следующую функцию передачи SISO с непрерывным временем:

    G (s) = s2 3s 4s2 + 5s + 6

    G(s) может быть факторизован в форму с нулевым коэффициентом усиления как:

    G (s) = (s + 1) (s 4) (s + 2) (s + 3).

    Более общее представление модели усиления нулевого полюса SISO выглядит следующим образом:

    h (s) = k (s z (1)) (s z (2))... (s z (m)) (s p (1)) (s − p (2))... (s − p (n))

    Здесь, z и p являются векторами вещественных или комплексных нулей и полюсов, и K - действительное или комплексное скалярное усиление

    Объект модели с нулевым коэффициентом усиления можно создать либо путем непосредственного указания полюсов, нулей и коэффициентов усиления, либо путем преобразования модели другого типа (например, модели «состояние-пространство»). ss) к форме с нулевым полюсом и усилением.

    Также можно использовать zpk для создания обобщенного состояния-пространства (genss) модели или неопределенное состояние-пространство (uss (Надёжная панель инструментов управления)) модели.

    Создание

    Описание

    пример

    sys = zpk(zeros,poles,gain) создает непрерывную модель с нулевым полюсным усилением с помощью zeros и poles указано как векторы и скалярное значение gain. Продукция sys является zpk объект модели, хранящий данные модели. Набор zeros или poles кому [] для систем без нулей или полюсов. Эти два входа не должны иметь одинаковую длину, и модель не должна быть правильной (то есть иметь избыток полюсов).

    пример

    sys = zpk(zeros,poles,gain,ts) создает модель дискретного времени с нулевым полюсным усилением с временем выборки ts. Набор ts кому -1 или [] чтобы оставить время выборки неопределенным.

    пример

    sys = zpk(zeros,poles,gain,ltiSys) создает модель с нулевым коэффициентом усиления со свойствами, унаследованными от динамической системной модели ltiSys, включая время выборки.

    пример

    sys = zpk(m) создает модель с нулевым полюсным усилением, которая представляет статическое усиление, m.

    пример

    sys = zpk(___,Name,Value) Задает свойства модели с нулевым коэффициентом усиления, используя один или несколько аргументов пары имя-значение для любой из предыдущих комбинаций входной аргумент.

    пример

    sys = zpk(ltiSys) преобразует динамическую модель системы ltiSys в модель с нулевым усилением полюсов.

    пример

    sys = zpk(ltiSys,component) преобразует указанное component из ltiSys в форму модели с нулевым усилением полюсов. Использовать этот синтаксис только тогда, когда ltiSys является идентифицированной линейной инвариантной по времени (LTI) моделью, такой как idss или idtf модель.

    пример

    s = zpk('s') создает специальную переменную s можно использовать в рациональном выражении для создания модели с нулевым коэффициентом усиления в непрерывном времени. Использование рационального выражения иногда может быть проще и интуитивнее, чем указание полиномиальных коэффициентов.

    пример

    z = zpk('z',ts) создает специальную переменную z можно использовать в рациональном выражении для создания дискретной модели с нулевым коэффициентом усиления полюсов. Чтобы оставить время выборки неопределенным, установите ts входной аргумент для -1.

    Входные аргументы

    развернуть все

    Нули модели с нулевым коэффициентом усиления, указанной как:

    Например, если a является realp настраиваемый параметр с номинальным значением 3, то вы можете использовать zeros = [1 2 a] для создания genss модель с нулями в s = 1 и s = 2 и настраиваемый ноль при s = 3.

    Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства Z.

    Полюса модели с нулевым коэффициентом усиления, указанные как:

    Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства P.

    Коэффициент усиления модели с нулевым полюсным усилением, определяемый как:

    Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства K.

    Время выборки, указанное как скаляр. Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства Ts.

    Динамическая система, заданная как динамическая системная модель SISO или MIMO или массив динамических системных моделей. Динамические системы, которые можно использовать:

    • Непрерывные или дискретные числовые модели LTI, такие как tf, zpk, ss, или pid модели.

    • Обобщенные или неопределенные модели LTI, такие как genss или uss (Надежная панель инструментов управления). (Для использования неопределенных моделей требуется лицензия Toolbox™ надежного управления.)

      Полученная модель с нулевым коэффициентом усиления предполагает

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

      • номинальные значения модели для неопределенных проектных блоков управления.

    • Идентифицированные модели LTI, такие как idtf(Панель инструментов идентификации системы), idss(Панель инструментов идентификации системы), idproc(Панель инструментов идентификации системы), idpoly(панель инструментов идентификации системы), и idgrey(Панель инструментов идентификации системы). Чтобы выбрать компонент определенной модели для преобразования, укажите component. Если не указать component, tf преобразует измеренный компонент идентифицированной модели по умолчанию. (Для использования идентифицированных моделей требуется программное обеспечение System Identification Toolbox™.)

      Идентифицированная нелинейная модель не может быть преобразована в zpk объект модели. Сначала можно использовать линейные аппроксимационные функции, такие как linearize и linapp (Для этой функции требуется программное обеспечение System Identification Toolbox.)

    Статический коэффициент усиления, заданный как скаляр или матрица. Статический коэффициент усиления или коэффициент усиления в установившемся состоянии системы представляет отношение выходного сигнала к входному сигналу в установившемся состоянии.

    Компонент идентифицированной модели для преобразования, указанный как один из следующих:

    • 'measured' - Преобразовать измеренный компонент sys.

    • 'noise' - Преобразование шумовой составляющей sys

    • 'augmented' - Преобразовать как измеренные, так и шумовые компоненты sys.

    component применяется только тогда, когда sys является идентифицированной моделью LTI.

    Дополнительные сведения об идентифицированных моделях LTI и их измеренных и шумовых компонентах см. в разделе Идентифицированные модели LTI.

    Выходные аргументы

    развернуть все

    Выходная модель системы, возвращенная как:

    • Нулевой коэффициент усиления (zpk) объект модели, когда zeros, poles и gain входные аргументы содержат числовые значения.

    • Обобщённая модель состояния-пространства (genss) объект, когда zeros, poles и gain входные аргументы включают настраиваемые параметры, такие как realp параметры или обобщенные матрицы (genmat).

    • Неопределенная модель состояния-пространства (uss) объект, когда zeros, poles и gain входные аргументы включают неопределенные параметры. Для использования неопределенных моделей требуется лицензия Rustible Control Toolbox.

    Свойства

    развернуть все

    Системные нули, указанные как:

    • Массив ячеек нулей передаточной функции или корней числителя для моделей SISO.

    • Один Nyоколо-Nu массив ячеек векторов строк нулей для каждой пары ввода-вывода в модели MIMO, где Ny - количество выходов и Nu - количество входов.

    Значения Z может быть либо вещественным, либо комплексным.

    Системные полюса, указанные как:

    • Массив ячеек полюсов передаточных функций или корней знаменателя для моделей SISO.

    • Один Nyоколо-Nu массив ячеек векторов строк полюсов для каждой пары ввода-вывода в модели MIMO, где Ny - количество выходов и Nu - количество входов.

    Значения P может быть либо вещественным, либо комплексным.

    Усиление системы, указанное как:

    • Скалярное значение для моделей SISO.

    • Один Nyоколо-Nu матрица, хранящая значения усиления для каждой пары ввода-вывода модели MIMO, где Ny - количество выходов и Nu - количество входов.

    Значения K может быть либо вещественным, либо комплексным.

    Определяет способ факторизации многочленов числителя и знаменателя для отображения, определяемый одним из следующих параметров:

    • 'roots' - отображаемые коэффициенты в терминах расположения корней полинома. 'roots' является значением по умолчанию DisplayFormat

    • 'frequency' - Отображаемые коэффициенты в терминах корневых собственных частот start0 и коэффициентов демпфирования

      'frequency' формат дисплея недоступен для дискретно-временных моделей с Variable стоимость 'z^-1' или 'q^-1'.

    • 'time constant' - Отображаемые множители в терминах корневых констант времени startи коэффициентов коэффициентов демпфирования.

      'time constant' формат дисплея недоступен для дискретно-временных моделей с Variable стоимость 'z^-1' или 'q^-1'.

    Для моделей непрерывного времени в следующей таблице показано расположение многочленов в каждом формате отображения.

    DisplayName СтоимостьКоэффициент первого порядка (реальный корень R)Коэффициент второго порядка (пара комплексных корней R = a ± jb)
    'roots'(s R)(s2 αs + β), где α = 2a, β = a2 + b2
    'frequency'(1 sü 0), где λ 0 = R1 2start( sü 0) + (sü 0) 2, где start02  = a2 + b2,
    'time constant'(1 1 2start( thes) + (starts) 2, где  start= = 1

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

    s→w=z−1Ts; R→R−1Ts,

    где Ts - время выборки. В дискретно-временном, startи start0 близко соответствуют постоянной времени и собственной частоте эквивалентного корня непрерывного времени при условии выполнения следующего условия: | z 1 | < < Ts (start0 < < δTs = частота Найквиста).

    Отображаемая переменная модели с нулевым коэффициентом усиления, заданная как одно из следующих значений:

    • 's' - По умолчанию для моделей непрерывного времени

    • 'z' - По умолчанию для моделей дискретного времени

    • 'p' - Эквивалентно 's'

    • 'q' - Эквивалентно 'z'

    • 'z^-1' - Обратная 'z'

    • 'q^-1' - Эквивалентно 'z^-1'

    Задержка транспортировки, указанная как одно из следующих значений:

    • Скаляр - укажите задержку передачи для системы SISO или ту же задержку передачи для всех пар ввода/вывода системы MIMO.

    • Nyоколо-Nu array - укажите отдельные задержки передачи для каждой пары ввода/вывода системы MIMO. Здесь, Ny - количество выходов и Nu - количество входов.

    Для систем непрерывного времени укажите задержки транспортировки в единицах времени, указанных в TimeUnit собственность. Для систем с дискретным временем укажите задержки переноса в целых числах, кратных времени выборки. Ts. Дополнительные сведения о временной задержке см. в разделе Временные задержки в линейных системах.

    Задержка на входе для каждого входного канала, определяемая как одно из следующих значений:

    • Скаляр (Scalar) - задает задержку ввода для системы SISO или такую же задержку для всех входов системы с несколькими входами.

    • Nu-by-1 vector - Определение отдельных входных задержек для ввода системы с несколькими входами, где Nu - количество входов.

    Для систем непрерывного времени укажите задержки на входе в единицу времени, указанную TimeUnit собственность. Для дискретно-временных систем укажите входные задержки в целых кратных времени выборки, Ts.

    Дополнительные сведения см. в разделе Временные задержки в линейных системах.

    Задержка на выходе для каждого выходного канала, определяемая как одно из следующих значений:

    • Скаляр (Scalar) - указывает задержку вывода для системы SISO или такую же задержку для всех выходов системы с несколькими выходами.

    • Ny-by-1 vector - Определение отдельных выходных задержек для вывода системы с несколькими выходами, где Ny - количество выходов.

    Для систем непрерывного времени укажите задержки на выходе в единицах времени, указанных TimeUnit собственность. Для дискретно-временных систем укажите задержки на выходе в целых числах, кратных времени выборки. Ts.

    Дополнительные сведения см. в разделе Временные задержки в линейных системах.

    Время выборки, указанное как:

    • 0 для систем непрерывного времени.

    • Положительный скаляр, представляющий период выборки дискретно-временной системы. Определить Ts в единице времени, указанной TimeUnit собственность.

    • -1 для дискретно-временной системы с неопределенным временем выборки.

    Примечание

    Изменение Ts не дискретизирует и не выполняет повторную выборку модели. Для преобразования между представлениями непрерывного и дискретного времени используйте c2d и d2c. Для изменения времени выборки системы дискретного времени используйте d2d.

    Единицы переменной времени, указанные как одно из следующих значений:

    • 'nanoseconds'

    • 'microseconds'

    • 'milliseconds'

    • 'seconds'

    • 'minutes'

    • 'hours'

    • 'days'

    • 'weeks'

    • 'months'

    • 'years'

    Изменение TimeUnit не влияет на другие свойства, но изменяет общее поведение системы. Использовать chgTimeUnit преобразование между единицами времени без изменения поведения системы.

    Имена входных каналов, указанные как одно из следующих:

    • Символьный вектор для моделей с одним входом.

    • Массив ячеек символьных векторов для моделей с несколькими входами.

    • '', не указаны имена для каких-либо входных каналов.

    Кроме того, можно назначить входные имена для моделей с несколькими входами с помощью автоматического векторного расширения. Например, если sys является моделью с двумя входами, введите:

    sys.InputName = 'controls';

    Имена вводимых данных автоматически расширяются до {'controls(1)';'controls(2)'}.

    Можно использовать сокращенную нотацию u см. InputName собственность. Например, sys.u эквивалентно sys.InputName.

    Использовать InputName кому:

    • Определение каналов на дисплее модели и графиках.

    • Извлечение подсистем систем MIMO.

    • Укажите точки соединения при соединении моделей.

    Блоки входных каналов, указанные как одно из следующих:

    • Символьный вектор для моделей с одним входом.

    • Массив ячеек символьных векторов для моделей с несколькими входами.

    • '', не указаны единицы измерения для каких-либо входных каналов.

    Использовать InputUnit для задания единиц входного сигнала. InputUnit не влияет на поведение системы.

    Входные группы каналов, заданные как структура. Использовать InputGroup назначение входных каналов систем MIMO группам и ссылка на каждую группу по имени. Имена полей InputGroup - имена групп, а значения полей - входные каналы каждой группы. Например:

    sys.InputGroup.controls = [1 2];
    sys.InputGroup.noise = [3 5];

    создает входные группы с именем controls и noise которые включают входные каналы 1 и 2, и 3 и 5соответственно. Затем можно извлечь подсистему из controls входы на все выходы с использованием:

    sys(:,'controls')

    По умолчанию InputGroup - структура без полей.

    Имена выходных каналов, указанные как одно из следующих:

    • Символьный вектор для моделей с одним выходом.

    • Массив ячеек символьных векторов для моделей с несколькими выходами.

    • '', не указаны имена для каких-либо выходных каналов.

    Кроме того, можно назначить имена выходных данных для моделей с несколькими выходами с помощью автоматического векторного расширения. Например, если sys является моделью с двумя выходами, введите:

    sys.OutputName = 'measurements';

    Имена вывода автоматически расширяются до {'measurements(1)';'measurements(2)'}.

    Можно также использовать сокращенную нотацию y см. OutputName собственность. Например, sys.y эквивалентно sys.OutputName.

    Использовать OutputName кому:

    • Определение каналов на дисплее модели и графиках.

    • Извлечение подсистем систем MIMO.

    • Укажите точки соединения при соединении моделей.

    Единицы выходного канала, указанные как одно из следующих:

    • Символьный вектор для моделей с одним выходом.

    • Массив ячеек символьных векторов для моделей с несколькими выходами.

    • '', не указаны единицы измерения для каких-либо выходных каналов.

    Использовать OutputUnit для задания единиц выходного сигнала. OutputUnit не влияет на поведение системы.

    Группы выходных каналов, заданные как структура. Использовать OutputGroupназначение выходных каналов систем MIMO группам и ссылка на каждую группу по имени. Имена полей OutputGroup - имена групп, а значения полей - выходные каналы каждой группы. Например:

    sys.OutputGroup.temperature = [1];
    sys.InputGroup.measurement = [3 5];

    создает выходные группы с именем temperature и measurement которые включают выходные каналы 1, и 3 и 5соответственно. Затем можно извлечь подсистему из всех входов в measurement вывод с использованием:

    sys('measurement',:)

    По умолчанию OutputGroup - структура без полей.

    Имя системы, указанное как символьный вектор. Например, 'system_1'.

    Пользовательский текст, который требуется связать с системой, указанный как символьный вектор или массив ячеек символьных векторов. Например, 'System is MIMO'.

    Пользовательские данные, которые необходимо связать с системой, указанные как любой тип данных MATLAB.

    Сетка выборки для массивов модели, заданная как массив структуры.

    Использовать SamplingGrid для отслеживания значений переменных, связанных с каждой моделью в массиве модели, включая идентифицированные линейные инвариантные по времени (IDLTI) массивы моделей.

    Задайте имена полей структуры для имен переменных выборки. Задайте значения полей для значений выборочных переменных, связанных с каждой моделью в массиве. Все переменные выборки должны быть числовыми скалярами, а все массивы значений выборки должны соответствовать размерам массива модели.

    Например, можно создать массив линейных моделей 11 на 1. sysarr, делая снимки линейной изменяющейся во времени системы в моменты времени t = 0:10. В следующем коде хранятся выборки времени с линейными моделями.

     sysarr.SamplingGrid = struct('time',0:10)

    Аналогично, можно создать массив модели 6 на 9, M, путем независимой выборки двух переменных, zeta и w. Следующий код отображает (zeta,w) значения для M.

    [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)
    M.SamplingGrid = struct('zeta',zeta,'w',w)

    При отображении M, каждая запись в массиве включает в себя соответствующую zeta и w значения.

    M
    M(:,:,1,1) [zeta=0.3, w=5] =
     
            25
      --------------
      s^2 + 3 s + 25
     
    
    M(:,:,2,1) [zeta=0.35, w=5] =
     
             25
      ----------------
      s^2 + 3.5 s + 25
     
    ...

    Для массивов моделей, созданных путем линеаризации модели Simulink ® в нескольких значениях параметров или рабочих точках, программа заполняетSamplingGrid автоматически со значениями переменных, которые соответствуют каждой записи в массиве. Например, команды Simulink Control Design™ linearize (Simulink Control Design) и slLinearizer (Simulink Control Design) заполнить SamplingGrid автоматически.

    По умолчанию SamplingGrid - структура без полей.

    Функции объекта

    Следующие списки содержат репрезентативное подмножество функций, которые можно использовать с zpk модели. Как правило, любая функция, применимая к динамическим моделям систем, применима к zpk объект.

    развернуть все

    stepГрафик ступенчатой реакции динамической системы; данные ответа на шаг
    impulseграфик импульсной характеристики динамической системы; данные импульсной характеристики
    lsimПостройте график моделируемой временной реакции динамической системы на произвольные входы; смоделированные данные ответа
    bodeГрафик Моде частотной характеристики, или данные о величине и фазе
    nyquistНайквистский график частотной характеристики
    nicholsДиаграмма частотной характеристики Николса
    bandwidthПолоса пропускания частотного отклика
    poleПолюса динамической системы
    zeroНули и усиление динамической системы SISO
    pzplotНулевой график динамической модели системы с опциями настройки графика
    marginЗапас усиления, запас фазы и переходные частоты
    tfМодель передаточной функции
    ssМодель пространства состояний
    c2dПреобразование модели из непрерывного в дискретное время
    d2cПреобразование модели из дискретного в непрерывное время
    d2dПовторная выборка дискретно-временной модели
    feedbackОбратная связь нескольких моделей
    connectБлок-схема взаимосвязей динамических систем
    seriesПоследовательное соединение двух моделей
    parallelПараллельное соединение двух моделей
    pidtuneАлгоритм настройки PID для линейной модели установки
    rlocusГрафик корневого локуса динамической системы
    lqrКонструкция линейного квадратичного регулятора (LQR)
    lqgЛинейно-квадратично-гауссова (LQG) конструкция
    lqiЛинейно-квадратично-интегральное управление
    kalmanПроектирование фильтра Калмана для оценки состояния

    Примеры

    свернуть все

    В этом примере рассмотрим следующую непрерывную модель SISO с нулевым коэффициентом усиления:

    sys (s) = -2s (s-1-i) (s-1 + i) (s-2) Непрерывная модель с нулевым коэффициентом усиления полюсов

    Задайте нули, полюса и коэффициент усиления и создайте модель SISO с нулевым коэффициентом усиления.

    zeros = 0;
    poles = [1-1i 1+1i 2];
    gain = -2;
    sys = zpk(zeros,poles,gain)
    sys =
     
              -2 s
      --------------------
      (s-2) (s^2 - 2s + 2)
     
    Continuous-time zero/pole/gain model.
    

    Для этого примера рассмотрим следующую модель дискретного времени SISO с нулевым усилением полюсов с временем выборки 0,1 с:

    sys (s) = 7 (z-1) (z-2) (z-3) (z-6) (z-5) (z-4) Дискретная модель усиления нулевого полюса SISO

    Задайте нули, полюса, коэффициенты усиления и время выборки и создайте дискретную модель SISO с нулевым полюсом.

    zeros = [1 2 3];
    poles = [6 5 4];
    gain = 7;
    ts = 0.1;
    sys = zpk(zeros,poles,gain,ts)
    sys =
     
      7 (z-1) (z-2) (z-3)
      -------------------
       (z-6) (z-5) (z-4)
     
    Sample time: 0.1 seconds
    Discrete-time zero/pole/gain model.
    

    В этом примере создается модель усиления нулевого полюса MIMO путем объединения моделей усиления нулевого полюса SISO. Рассмотрим следующую модель с одним входом и двумя выходами с непрерывным временем с нулевым полюсным усилением:

    sys (s) = [(s-1) (s + 1) (s + 2) (s + 2 + i) (s + 2-i)].

    Укажите модель усиления нулевого полюса MIMO путем объединения записей SISO.

    zeros1 = 1;
    poles1 = -1;
    gain = 1;
    sys1 = zpk(zeros1,poles1,gain)
    sys1 =
     
      (s-1)
      -----
      (s+1)
     
    Continuous-time zero/pole/gain model.
    
    zeros2 = -2;
    poles2 = [-2+1i -2-1i];
    sys2 = zpk(zeros2,poles2,gain)
    sys2 =
     
          (s+2)
      --------------
      (s^2 + 4s + 5)
     
    Continuous-time zero/pole/gain model.
    
    sys = [sys1;sys2]
    sys =
     
      From input to output...
           (s-1)
       1:  -----
           (s+1)
     
               (s+2)
       2:  --------------
           (s^2 + 4s + 5)
     
    Continuous-time zero/pole/gain model.
    

    Создайте модель с нулевым полюсным усилением для дискретной модели с несколькими входами и несколькими выходами:

    sys (z) = [1 (z + 0,3) z (z + 0,3) - (z-2) (z + 0,3) 3 (z + 0,3)] Дискретная модель MIMO с нулевым коэффициентом усиления

    со временем выборки ts = 0.2 секунд.

    Задайте нули и полюса как массивы ячеек, а коэффициенты усиления - как массив.

    zeros = {[] 0;2 []};
    poles = {-0.3 -0.3;-0.3 -0.3};
    gain = [1 1;-1 3];
    ts = 0.2;

    Создайте дискретную модель MIMO с нулевым полюсным усилением.

    sys = zpk(zeros,poles,gain,ts)
    sys =
     
      From input 1 to output...
              1
       1:  -------
           (z+0.3)
     
           - (z-2)
       2:  -------
           (z+0.3)
     
      From input 2 to output...
              z
       1:  -------
           (z+0.3)
     
              3
       2:  -------
           (z+0.3)
     
    Sample time: 0.2 seconds
    Discrete-time zero/pole/gain model.
    

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

    zeros = 4;
    poles = [-1+2i -1-2i];
    gain = 3;
    ts = 0.05;
    sys = zpk(zeros,poles,gain,ts,'InputName','Force')
    sys =
     
      From input "Force" to output:
         3 (z-4)
      --------------
      (z^2 + 2z + 5)
     
    Sample time: 0.05 seconds
    Discrete-time zero/pole/gain model.
    

    Число входных имен должно соответствовать числу нулей.

    Именование входов и выходов может быть полезным при работе с графиками ответов для систем MIMO.

    step(sys)

    Figure contains an axes. The axes with title From: Force To: Out(1) contains an object of type line. This object represents sys.

    Обратите внимание на имя ввода Force в заголовке графика ответа на шаг.

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

    Рассмотрим следующую систему:

    sys = ss2 + 2s + 10.

    Чтобы создать модель передаточной функции, сначала укажите s в качестве zpk объект.

    s = zpk('s')
    s =
     
      s
     
    Continuous-time zero/pole/gain model.
    

    Создайте модель с нулевым коэффициентом усиления, используя s в рациональном выражении.

    sys = s/(s^2 + 2*s + 10)
    sys =
     
             s
      ---------------
      (s^2 + 2s + 10)
     
    Continuous-time zero/pole/gain model.
    

    Для этого примера создайте дискретную модель с нулевым полюсным усилением, используя рациональное выражение. Использование рационального выражения иногда может быть проще и интуитивнее, чем указание полюсов и нулей.

    Рассмотрим следующую систему:

    sys (z) = z-1z2-1,85z + 0,9 .Дискретное время нулевого усиления

    Чтобы создать модель с нулевым коэффициентом усиления, сначала укажите z в качестве zpk объект и время выборки ts.

    ts = 0.1;
    z = zpk('z',ts)
    z =
     
      z
     
    Sample time: 0.1 seconds
    Discrete-time zero/pole/gain model.
    

    Создание модели с нулевым коэффициентом усиления с помощью z в рациональном выражении.

    sys = (z - 1) / (z^2 - 1.85*z + 0.9)
    sys =
     
             (z-1)
      -------------------
      (z^2 - 1.85z + 0.9)
     
    Sample time: 0.1 seconds
    Discrete-time zero/pole/gain model.
    

    Для этого примера создайте модель с усилением нулевого полюса со свойствами, унаследованными от другой модели с усилением нулевого полюса. Рассмотрим следующие две модели с нулевым коэффициентом усиления:

    sys1 (s) = 2ss (s + 8) и sys2 (s) = 0,8 (s-1) (s + 3) (s-5).

    Для этого примера создайте sys1 с TimeUnit и InputDelay свойство имеет значение «»minutes'.

    zero1 = 0;
    pole1 = [0;-8];
    gain1 = 2;
    sys1 = zpk(zero1,pole1,gain1,'TimeUnit','minutes','InputUnit','minutes')
    sys1 =
     
        2 s
      -------
      s (s+8)
     
    Continuous-time zero/pole/gain model.
    
    propValues1 = [sys1.TimeUnit,sys1.InputUnit]
    propValues1 = 1x2 cell
        {'minutes'}    {'minutes'}
    
    

    Создание второй модели с нулевым коэффициентом усиления со свойствами, унаследованными от sys1.

    zero = 1;
    pole = [-3,5];
    gain2 = 0.8;
    sys2 = zpk(zero,pole,gain2,sys1)
    sys2 =
     
       0.8 (s-1)
      -----------
      (s+3) (s-5)
     
    Continuous-time zero/pole/gain model.
    
    propValues2 = [sys2.TimeUnit,sys2.InputUnit]
    propValues2 = 1x2 cell
        {'minutes'}    {'minutes'}
    
    

    Обратите внимание, что модель с нулевым коэффициентом усиления sys2 имеет те же свойства, что и sys1.

    Рассмотрим следующую матрицу статического усиления с двумя входами и двумя выходами m:

    m = [2435] Матрица статического усиления MIMO

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

    m = [2,4;...
        3,5];
    sys1 = zpk(m)
    sys1 =
     
      From input 1 to output...
       1:  2
     
       2:  3
     
      From input 2 to output...
       1:  4
     
       2:  5
     
    Static gain.
    

    Можно использовать статическую модель усиления с нулевым полюсом sys1 полученный выше для каскадирования его с другой моделью с нулевым коэффициентом усиления.

    sys2 = zpk(0,[-1 7],1)
    sys2 =
     
           s
      -----------
      (s+1) (s-7)
     
    Continuous-time zero/pole/gain model.
    
    sys = series(sys1,sys2)
    sys =
     
      From input 1 to output...
               2 s
       1:  -----------
           (s+1) (s-7)
     
               3 s
       2:  -----------
           (s+1) (s-7)
     
      From input 2 to output...
               4 s
       1:  -----------
           (s+1) (s-7)
     
               5 s
       2:  -----------
           (s+1) (s-7)
     
    Continuous-time zero/pole/gain model.
    

    Для этого примера вычислите модель с нулевым коэффициентом усиления для следующей модели состояния-пространства:

    A = [-2-11-2], B = [112-1], C = [10], D = [01] .Состояние-пространственные матрицы

    Создайте модель state-space с помощью матриц state-space.

    A = [-2 -1;1 -2];
    B = [1 1;2 -1];
    C = [1 0];
    D = [0 1];
    ltiSys = ss(A,B,C,D);

    Преобразование модели «состояние-пространство» ltiSys в модель с нулевым усилением полюсов.

    sys = zpk(ltiSys)
    sys =
     
      From input 1 to output:
            s
      --------------
      (s^2 + 4s + 5)
     
      From input 2 to output:
      (s^2 + 5s + 8)
      --------------
      (s^2 + 4s + 5)
     
    Continuous-time zero/pole/gain model.
    

    Вы можете использовать for цикл для задания массива моделей с нулевым коэффициентом усиления.

    Во-первых, предварительно распределите массив модели с нулевым коэффициентом усиления с нулями.

    sys = zpk(zeros(1,1,3));

    Первые два индекса представляют количество выходов и входов для моделей, в то время как третий индекс представляет количество моделей в массиве.

    Создайте массив модели с нулевым коэффициентом усиления, используя рациональное выражение в for цикл.

    s = zpk('s');                                                  
    for k = 1:3                                                             
        sys(:,:,k) = k/(s^2+s+k);                                          
    end
    sys
    sys(:,:,1,1) =
     
            1
      -------------
      (s^2 + s + 1)
     
    
    sys(:,:,2,1) =
     
            2
      -------------
      (s^2 + s + 2)
     
    
    sys(:,:,3,1) =
     
            3
      -------------
      (s^2 + s + 3)
     
    3x1 array of continuous-time zero/pole/gain models.
    

    Для этого примера извлеките измеренные и шумовые компоненты идентифицированной полиномиальной модели в две отдельные модели с коэффициентом усиления нулевого полюса.

    Загрузить модель полинома Бокса (Box) - Дженкинса (Jenkins) ltiSys в identifiedModel.mat.

    load('identifiedModel.mat','ltiSys');

    ltiSys - идентифицированная дискретно-временная модель вида: y (t) = BFu (t) + CDe (t), где BF представляет измеренную составляющую и CD составляющую шума.

    Извлеките измеренные и шумовые компоненты в виде моделей с нулевым усилением полюсов.

    sysMeas = zpk(ltiSys,'measured') 
    sysMeas =
     
      From input "u1" to output "y1":
                -0.14256 z^-1 (1-1.374z^-1)
      z^(-2) * -----------------------------
               (1-0.8789z^-1) (1-0.6958z^-1)
     
    Sample time: 0.04 seconds
    Discrete-time zero/pole/gain model.
    
    sysNoise = zpk(ltiSys,'noise')
    sysNoise =
     
      From input "v@y1" to output "y1":
                0.045563 (1+0.7245z^-1)
      --------------------------------------------
      (1-0.9658z^-1) (1 - 0.0602z^-1 + 0.2018z^-2)
     
    Input groups:        
        Name     Channels
        Noise       1    
                         
    Sample time: 0.04 seconds
    Discrete-time zero/pole/gain model.
    

    Измеряемый компонент может служить моделью установки, в то время как шумовой компонент может использоваться в качестве модели возмущения для проектирования системы управления.

    Для этого примера создайте модель SISO с нулевым коэффициентом усиления с задержкой на входе 0,5 секунды и задержкой на выходе 2,5 секунды.

    zeros = 5;
    poles = [7+1i 7-1i -3];
    gains = 1;
    sys = zpk(zeros,poles,gains,'InputDelay',0.5,'OutputDelay',2.5)
    sys =
     
                          (s-5)
      exp(-3*s) * ----------------------
                  (s+3) (s^2 - 14s + 50)
     
    Continuous-time zero/pole/gain model.
    

    Вы также можете использовать get для отображения всех свойств объекта MATLAB.

    get(sys)
                    Z: {[5]}
                    P: {[3x1 double]}
                    K: 1
        DisplayFormat: 'roots'
             Variable: 's'
              IODelay: 0
           InputDelay: 0.5000
          OutputDelay: 2.5000
                   Ts: 0
             TimeUnit: 'seconds'
            InputName: {''}
            InputUnit: {''}
           InputGroup: [1x1 struct]
           OutputName: {''}
           OutputUnit: {''}
          OutputGroup: [1x1 struct]
                Notes: [0x1 string]
             UserData: []
                 Name: ''
         SamplingGrid: [1x1 struct]
    

    Дополнительные сведения об указании временной задержки для модели LTI см. в разделе Указание временных задержек.

    Для этого примера проектируйте контроллер PID с 2 финансовыми департаментами с целевой пропускной способностью 0,75 рад/с для системы, представленной следующей моделью нулевой выгоды полюса:

    sys (s) = 1s2 + 0 .5s + 0 .1Модель с усилением от нуля до полюса

    Создание объекта модели с нулевым коэффициентом усиления sys с использованием zpk команда.

    zeros = [];
    poles = [-0.25+0.2i;-0.25-0.2i];
    gain = 1;
    sys = zpk(zeros,poles,gain)
    sys =
     
                1
      ---------------------
      (s^2 + 0.5s + 0.1025)
     
    Continuous-time zero/pole/gain model.
    

    Используя целевую полосу пропускания, используйте pidtune для создания контроллера 2-DOF.

    wc = 0.75;
    C2 = pidtune(sys,'PID2',wc)
    C2 =
     
                           1              
      u = Kp (b*r-y) + Ki --- (r-y) + Kd*s (c*r-y)
                           s              
    
      with Kp = 0.512, Ki = 0.0975, Kd = 0.574, b = 0.38, c = 0
     
    Continuous-time 2-DOF PID controller in parallel form.
    

    Использование типа 'PID2' причины pidtune для создания контроллера 2-DOF, представленного в виде pid2 объект. Этот результат подтверждается на дисплее. На дисплее также показано, что pidtune настраивает все коэффициенты контроллера, включая веса уставок b и c, чтобы сбалансировать производительность и надежность.

    Для получения информации о интерактивной настройке PID в интерактивном редакторе см. задачу Настройка контроллера PID в интерактивном редакторе. Эта задача позволяет в интерактивном режиме проектировать контроллер PID и автоматически генерировать код MATLAB для сценария в реальном времени.

    Для интерактивной настройки PID в автономном приложении используйте PID-тюнер. Пример разработки контроллера с помощью приложения см. в документе «Проектирование контроллера PID для быстрого отслеживания ссылок».

    Алгоритмы

    zpk использует функцию MATLAB roots преобразование функций переноса и функций zero и pole для преобразования моделей пространства состояний.

    Представлен до R2006a