zpk

Модель нулей, полюсов и усиления

    Описание

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

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

    G(s)=s23s4s2+5s+6

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

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

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

    h(s)=k(sz(1))(sz(2))(sz(m))(sp(1))(sp(2))(sp(n))

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

    Можно создать объект модели нулей, полюсов и усиления или путем определения полюсов, нулей и усилений непосредственно, или путем преобразования модели другого типа (таких как модель в пространстве состояний ss) к форме нулей, полюсов и усиления.

    Можно также использовать zpk создать обобщенное пространство состояний (genss) модели или неопределенное пространство состояний (uss (Robust Control Toolbox)) модели.

    Создание

    Описание

    пример

    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 Модели (Robust Control Toolbox). (Используя неопределенные модели требует лицензии Robust Control Toolbox™.)

      Получившаяся модель нулей, полюсов и усиления принимает

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

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

    • Идентифицированные модели LTI, такой как idtf (System Identification Toolbox), idss (System Identification Toolbox), idproc (System Identification Toolbox), idpoly (System Identification Toolbox), и idgrey Модели (System Identification Toolbox). Чтобы выбрать компонент идентифицированной модели, чтобы преобразовать, задайте 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 входные параметры включают неопределенные параметры. Используя неопределенные модели требует лицензии Robust 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' — Отобразите факторы в терминах корневых собственных частот ω 0 и коэффициенты затухания ζ.

      'frequency' формат отображения не доступен для моделей дискретного времени с Variable значение 'z^-1' или 'q^-1'.

    • 'time constant' — Отобразите факторы в терминах корневых постоянных времени τ и коэффициенты затухания ζ.

      'time constant' формат отображения не доступен для моделей дискретного времени с Variable значение 'z^-1' или 'q^-1'.

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

    DisplayName ЗначениеФактор первого порядка (действительный корень R)Фактор второго порядка (Комплексная Корневая пара R=a±jb)
    'roots'(sR)(s2αs+β), где α=2a, β=a2+b2
    'frequency'(1sω0), где ω0=R12ζ(sω0)+(sω0)2, где ω02=a2+b2, ζ=aω0
    'time constant'(1τs), где τ=1R12ζ(τs)+(τs)2, где τ=1ω0, ζ=aτ

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

    sw=z1Ts;RR1Ts,

    где Ts является шагом расчета. В дискретное время τ и ω 0 тесно совпадают с постоянной времени и собственной частотой эквивалентного корня непрерывного времени, при условии, что следующее условие выполняется: |z1|<<Ts(ω0<<πTs= Частота Найквиста).

    Модель нулей, полюсов и усиления отображает переменную в виде одного из следующего:

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

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

    • 'p' — Эквивалентный 's'

    • 'q' — Эквивалентный 'z'

    • 'z^-1' — Инверсия 'z'

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

    Транспортная задержка в виде одного из следующего:

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

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

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

    Введите задержку каждого входного канала в виде одного из следующего:

    • Скаляр — Задает входную задержку системы SISO или ту же задержку всех входных параметров мультивходной системы.

    • Nu- 1 вектор — Задают отдельные входные задержки входа мультивходной системы, где Nu количество входных параметров.

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

    Для получения дополнительной информации смотрите Задержки Линейных систем.

    Выведите задержку каждого выходного канала в виде одного из следующего:

    • Скаляр — Задает выходную задержку системы SISO или ту же задержку всех выходных параметров мультивыходной системы.

    • Ny- 1 вектор — Задают отдельные выходные задержки выхода мультивыходной системы, где Ny количество выходных параметров.

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

    Для получения дополнительной информации смотрите Задержки Линейных систем.

    Шаг расчета в виде:

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

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

    • -1 для системы дискретного времени с незаданным шагом расчета.

    Примечание

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

    Модули переменной Time в виде одного из следующего:

    • 'nanoseconds'

    • 'microseconds'

    • 'milliseconds'

    • 'seconds'

    • 'minutes'

    • 'hours'

    • 'days'

    • 'weeks'

    • 'months'

    • 'years'

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

    Введите названия канала в виде одного из следующего:

    • Вектор символов, для моделей одно входа.

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

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

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

    sys.InputName = 'controls';

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

    Можно использовать краткое обозначение u относиться к InputName свойство. Например, sys.u эквивалентно sys.InputName.

    Используйте InputName к:

    • Идентифицируйте каналы на отображении модели и графиках.

    • Извлеките подсистемы систем MIMO.

    • Задайте точки контакта когда взаимосвязанные модели.

    Введите модули канала в виде одного из следующего:

    • Вектор символов, для моделей одно входа.

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

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

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

    Введите группы канала в виде структуры. Используйте InputGroup присваивать входные каналы систем MIMO в группы и относиться к каждой группе по наименованию. Имена полей InputGroup названия группы, и значения полей являются входными каналами каждой группы. Например, введите следующее, чтобы создать входные группы под названием controls и noise это включает входные каналы 1 и 2, и 3 и 5, соответственно.

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

    Можно затем извлечь подсистему из controls входные параметры ко всем выходным параметрам с помощью следующего.

    sys(:,'controls')

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

    Выведите названия канала в виде одного из следующего:

    • Вектор символов, для моделей одно выхода.

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

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

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

    sys.OutputName = 'measurements';

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

    Можно также использовать краткое обозначение y относиться к OutputName свойство. Например, sys.y эквивалентно sys.OutputName.

    Используйте OutputName к:

    • Идентифицируйте каналы на отображении модели и графиках.

    • Извлеките подсистемы систем MIMO.

    • Задайте точки контакта когда взаимосвязанные модели.

    Выведите модули канала в виде одного из следующего:

    • Вектор символов, для моделей одно выхода.

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

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

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

    Выведите группы канала в виде структуры. Используйте OutputGroupприсваивать выходные каналы систем MIMO в группы и относиться к каждой группе по наименованию. Имена полей OutputGroup названия группы, и значения полей являются выходными каналами каждой группы. Например, создайте выходные группы под названием temperature и measurement это включает выходные каналы 1, и 3 и 5, соответственно.

    sys.OutputGroup.temperature = [1];
    sys.InputGroup.measurement = [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Передискретизируйте дискретную модель
    feedbackCоединение обратной связи многих моделей
    connectСоединения блок-схемы динамических систем
    seriesПоследовательная связь двух моделей
    parallelПараллельная связь двух моделей
    pidtuneАлгоритм настройки ПИДа для линейной модели объекта управления
    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. Рассмотрите следующий одно вход, 2D выходную модель нулей, полюсов и усиления непрерывного времени:

    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 object. The axes object with title From: Force To: Out(1) contains an object of type line. This object represents sys.

    Заметьте, что вход называет Force в заголовке переходного процесса.

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

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

    sys(s)=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)andsys2(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.

    Рассмотрите следующий 2D вход, 2D выход статическая матрица усиления 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].Матрицы пространства состояний

    Создайте модель в пространстве состояний с помощью матриц пространства состояний.

    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.
    

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

    Загрузите полиномиальную модель Бокса-Дженкинса 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 смотрите Задержки Определения.

    В данном примере спроектируйте ПИД-регулятор 2-DOF с целевой полосой пропускания 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, сбалансировать эффективность и робастность.

    Для интерактивного ПИДа, настраивающего Live Editor, смотрите Live Editor ПИД-регулятора Мелодии задача. Эта задача позволяет вам в интерактивном режиме спроектировать ПИД-регулятор и автоматически генерирует код MATLAB для вашего live скрипта.

    Для интерактивного ПИДа, настраивающего автономное приложение, используйте PID Tuner. См. Проект ПИД-регулятора для Быстрого Отслеживания уставки для примера разработки контроллера, использующего приложение.

    Алгоритмы

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

    Представлено до R2006a
    Для просмотра документации необходимо авторизоваться на сайте