Линейный (LTI) модели

Что такое объект?

Как правило, управляйте инженерами, начинаются путем разработки математического описания динамической системы, которой они хотят управлять. Система, которой будут управлять, называется объектом. Как пример объекта, этот раздел использует двигатель постоянного тока. Этот раздел разрабатывает дифференциальные уравнения, которые описывают электромеханические свойства двигателя постоянного тока с инерционной загрузкой. Это затем показывает вам, как использовать функции Control System Toolbox™, чтобы создать линейные модели на основе этих уравнений.

Линейные представления модели

Можно использовать функции Control System Toolbox, чтобы создать следующие представления модели:

  • Модели в пространстве состояний (SS) формы

    dxdt=Ax+Buy=Cx+Du

    где A, B, C и D являются матрицами соответствующих размерностей, x является вектором состояния, и u и y являются векторами ввода и вывода.

  • Передаточные функции (TF), например,

    H(s)=s+2s2+s+10

  • Модели (ZPK) нулей и полюсов, например,

    H(z)=3(z+1+j)(z+1j)(z+0.2)(z+0.1)

  • Модели данных о частотной характеристике (FRD), которые состоят из выбранных измерений частотной характеристики системы. Например, можно хранить экспериментально собранные данные о частотной характеристике в модели FRD.

    Примечание

    Проект моделей FRD является специализированной темой, которую не затрагивает эта тема. См. Модели Данных о частотной характеристике (FRD) для обсуждения этой темы.

Пример SISO: двигатель постоянного тока

Простая модель двигателя постоянного тока, управляющего инерционной загрузкой, показывает угловой уровень загрузки, ω(t), как вывод и примененное напряжение, υapp(t), как вход. Конечная цель этого примера должна управлять угловым уровнем путем варьирования приложенного напряжения. Эти данные показывают простую модель двигателя постоянного тока.

Простая модель двигателя постоянного тока, управляющего инерционной загрузкой

В этой модели идеализированы движущие силы самого двигателя; например, магнитное поле принято, чтобы быть постоянным. Сопротивление схемы обозначается R и самоиндукцией арматуры L. Если вы незнакомы с основами моделирования двигателя постоянного тока, консультируйтесь с любым основным текстом по поводу физического моделирования. С этот простые образцовые и основные законы физики, возможно разработать дифференциальные уравнения, которые описывают поведение этой электромеханической системы. В этом примере отношения между электрической потенциальной и механической силой являются законом Фарадея индукции и законом Ампера для силы на проводнике, перемещающемся через магнитное поле.

Математическая деривация

Крутящий момент τ замеченный в вале двигателя пропорционально текущему i, вызванному приложенным напряжением,

τ(t)=Kmi(t)

где Km, постоянная арматура, связан с физическими свойствами двигателя, такими как сила магнитного поля, количество поворотов провода вокруг проводниковой обмотки, и так далее. Спина (вызвала) электродвижущую силу, υemf, напряжение, пропорциональное угловому уровню ω замеченный в вале,

υemf(t)=Kbω(t)

где Kb, постоянная эдс, также зависит от определенных физических свойств двигателя.

Механическая деталь моторных уравнений выведена с помощью закона Ньютона, который утверждает, что инерционная загрузка времена J производная углового уровня равняется сумме всех крутящих моментов о вале двигателя. Результатом является это уравнение,

Jdwdt=τi=Kfω(t)+Kmi(t)

где Kfω линейная аппроксимация для вязкого трения.

Наконец, электрическая часть моторных уравнений может быть описана

υapp(t)υemf(t)=Ldidt+Ri(t)

или, решая для приложенного напряжения и заменяя обратную эдс,

υapp(t)=Ldidt+Ri(t)+Kbω(t)

Эта последовательность уравнений приводит к набору двух дифференциальных уравнений, которые описывают поведение двигателя, первого для вызванного тока,

didt=RLi(t)KbLω(t)+1Lυapp(t)

и второе для получившегося углового уровня,

dωdt=1JKfω(t)+1JKmi(t)

Уравнения пространства состояний для двигателя постоянного тока

Учитывая эти два дифференциальных уравнения, выведенные в последнем разделе, можно теперь разработать представление пространства состояний двигателя постоянного тока как динамическая система. Текущий i и угловой уровень ω являются двумя состояниями системы. Приложенное напряжение, υapp, вход к системе и угловая скорость, ω является вывод.

ddt[iω]=[RLKbLKmJKfJ][iω]+[1L0]υapp(t)

Представление пространства состояний примера двигателя постоянного тока

y(t)=[01][iω]+[0]υapp(t)

Создание модели SISO

После того, как вы разрабатываете набор дифференциальных уравнений, которые описывают ваш объект, можно создать модели SISO с помощью простых команд. Следующие разделы обсуждают

  • Построение модели в пространстве состояний двигателя постоянного тока

  • Преобразование между представлениями модели

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

Построение модели в пространстве состояний двигателя постоянного тока

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

R= 2.0 % Ohms
L= 0.5 % Henrys
Km = .015 % torque constant
Kb = .015 % emf constant
Kf = 0.2 % Nms
J= 0.02 % kg.m^2

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

A = [-R/L -Kb/L; Km/J -Kf/J]
B = [1/L; 0];
C = [0 1];
D = [0];
sys_dc = ss(A,B,C,D)

Эти команды возвращают следующий результат:

a = 
                        x1           x2
           x1           -4        -0.03
           x2         0.75          -10
 
 
b = 
                        u1
           x1            2
           x2            0
 
 
c = 
                        x1           x2
           y1            0            1
 
 
d = 
                        u1
           y1            0

Преобразование между представлениями модели

Теперь, когда у вас есть представление пространства состояний двигателя постоянного тока, можно преобразовать в другие представления модели, включая передаточную функцию (TF) и нулевые/полюса/усиления модели (ZPK).

Представление Передаточной функции.  Можно использовать tf, чтобы преобразовать от представления пространства состояний до передаточной функции. Например, используйте этот код, чтобы преобразовать в представление передаточной функции двигателя постоянного тока.

sys_tf = tf(sys_dc)
Transfer function:
       1.5
------------------
s^2 + 14 s + 40.02

Нулевой/Полюс/Усиление Представление.  Точно так же функция zpk преобразовывает от пространства состояний или представлений передаточной функции нулевому/полюсу/усилению формату. Используйте этот код, чтобы преобразовать от представления пространства состояний до нулевого/полюса/усиления формы для двигателя постоянного тока.

sys_zpk = zpk(sys_dc)
 
Zero/pole/gain:
        1.5
-------------------
(s+4.004) (s+9.996)

Примечание

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

Построение Моделей Передаточной функции и Нуля/Полюса/Усиления

В примере двигателя постоянного тока подход пространства состояний производит набор матриц, который представляет модель. Если вы выбираете другой подход, можно создать соответствующие модели с помощью tf, zpk, ss или frd.

sys = tf(num,den)               % Transfer function
sys = zpk(z,p,k)                % Zero/pole/gain
sys = ss(a,b,c,d)               % State-space
sys = frd(response,frequencies) % Frequency response data

Например, можно создать передаточную функцию путем определения числителя и знаменателя с этим кодом.

sys_tf = tf(1.5,[1 14 40.02])
 
Transfer function:
       1.5
------------------
s^2 + 14 s + 40.02

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

s = tf('s');
sys_tf = 1.5/(s^2+14*s+40.02)

Эти команды приводят к этой передаточной функции.

Transfer function:
        1.5
--------------------
s^2 + 14 s + 40.02

Чтобы создать нулевой/полюс/усиление модель, используйте эту команду.

sys_zpk = zpk([],[-9.996 -4.004], 1.5)

Эта команда возвращает следующее нулевой/полюс/усиление представление.

Zero/pole/gain:
        1.5
-------------------
(s+9.996) (s+4.004)

Построение систем дискретного времени

Программное обеспечение Control System Toolbox оказывает полную поддержку для систем дискретного времени. Можно создать дискретные системы таким же образом, что вы создаете аналоговые системы; единственная разница - то, что необходимо задать период шага расчета для любой модели, которую вы создаете. Например,

sys_disc = tf(1, [1 1], .01);

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

Transfer function:
  1
-----
z + 1
 
Sample time: 0.01

Добавляющие время задержки с моделями дискретного времени

Можно добавить время задержки с моделями дискретного времени путем определения входной задержки, вывести задержку или задержку ввода-вывода при создавании модели. Задержка должна быть неотрицательным целым числом, которое представляет кратное шагу расчета. Например,

sys_delay = tf(1, [1 1], 0.01,'ioDelay',5)

возвращает систему с задержкой ввода-вывода 5 с.

Transfer function:
           1
z^(-5) * -----
         z + 1
 
Sample time: 0.01

Добавление задержек с линейными моделями

Можно добавить время задержки с линейными моделями путем определения входной задержки, вывести задержку или задержку ввода-вывода при создавании модели. Например, чтобы добавить задержку ввода-вывода с двигателем постоянного тока, используйте этот код.

sys_tfdelay = tf(1.5,[1 14 40.02],'ioDelay',0.05)

Эта команда создает передаточную функцию двигателя постоянного тока, но добавляет 0,05 вторых задержки.

Transfer function:
                      1.5
exp(-0.05*s) * ------------------
               s^2 + 14 s + 40.02

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

Объекты LTI

Для удобства программное обеспечение Control System Toolbox использует названные объекты LTI пользовательских структур данных хранить связанные с моделью данные. Например, переменная sys_dc , созданная для примера двигателя постоянного тока, называется объектом SS. Существует также TF, ZPK и объекты FRD для передаточной функции, нуля/полюса/усиления и моделей ответа данных о частоте соответственно. Четыре объекта LTI инкапсулируют данные модели и позволяют вам управлять линейными системами как одной сущностям, а не как наборы векторов или матриц.

Чтобы видеть, что содержат объекты LTI, используйте команду get. Этот код описывает содержимое sys_dc от примера двигателя постоянного тока.

get(sys_dc)
                A: [2×2 double]
                B: [2×1 double]
                C: [0 1]
                D: 0
                E: []
           Scaled: 0
        StateName: {2×1 cell}
        StateUnit: {2×1 cell}
    InternalDelay: [0×1 double]
       InputDelay: 0
      OutputDelay: 0
               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]

Можно управлять данными, содержавшимися в объектах LTI с помощью команды set; смотрите Control System Toolbox онлайновые страницы с описанием для описаний set и get.

Другой удобный способ установить или получить свойства модели LTI состоит в том, чтобы получить доступ к ним непосредственно использующий запись через точку. Например, если вы хотите получить доступ к значению матрицы A, вместо того, чтобы использовать get, можно ввести

sys_dc.A

в подсказке MATLAB®. Это обозначение возвращает матрицу A.

ans =

   -4.0000   -0.0300
    0.7500  -10.0000

Точно так же, если вы хотите изменить значения матрицы A, можно сделать так непосредственно, как этот код показывает.

A_new = [-4.5 -0.05; 0.8 -12.0];
sys_dc.A = A_new;

Смотрите также

| |

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

Больше о

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