Обычно инженеры по управлению начинают с разработки математического описания динамической системы, которой они хотят управлять. Управляемая система называется заводом. В качестве примера установки в этом разделе используется двигатель постоянного тока. В этом разделе описываются дифференциальные уравнения, описывающие электромеханические свойства двигателя постоянного тока с инерционной нагрузкой. Затем показано, как использовать функции Toolbox™ системы управления для построения линейных моделей на основе этих уравнений.
Функции панели инструментов системы управления можно использовать для создания следующих представлений модели:
Модели пространства состояний (SS) формы
Cx + Du
где A, B, C и D - матрицы соответствующих размеров, x - вектор состояния, а u и y - входной и выходной векторы.
Передаточные функции (TF), например,
+ s + 10
Модели с нулевым коэффициентом усиления (ZPK), например,
(z + 0,2) (z + 0,1)
Модели данных частотной характеристики (FRD), которые состоят из выборочных измерений частотной характеристики системы. Например, можно сохранить экспериментально собранные данные частотной характеристики в модели FRD.
Примечание
Дизайн моделей FRD является специализированным предметом, который эта тема не затрагивает. Обсуждение этой темы см. в разделе Модели данных частотного отклика (FRD).
Простая модель двигателя постоянного тока, приводящего в действие инерционную нагрузку, показывает угловую скорость нагрузки, ), в качестве выходного сигнала и приложенного напряжения, качестве входного сигнала. Конечной целью этого примера является управление угловой скоростью путем изменения приложенного напряжения. На этом рисунке показана простая модель двигателя постоянного тока.
Простая модель двигателя постоянного тока, приводящего в действие инерционную нагрузку

В этой модели идеализируется динамика самого мотора; например, предполагается, что магнитное поле является постоянным. Сопротивление цепи обозначается R, а самоиндуктивность якоря - L. Если вы не знакомы с основами моделирования двигателей постоянного тока, обратитесь к любому базовому тексту по физическому моделированию. С помощью этой простой модели и основных законов физики можно разработать дифференциальные уравнения, описывающие поведение этой электромеханической системы. В этом примере взаимосвязи между электрическим потенциалом и механической силой являются законом индукции Фарадея и законом Ампера для силы на проводнике, движущемся через магнитное поле.
Крутящий момент, наблюдаемый на валу двигателя, пропорционален току i, индуцированному приложенным напряжением,
(t)
где Km, постоянная якоря, связана с физическими свойствами двигателя, такими как напряженность магнитного поля, количество витков провода вокруг катушки проводника и так далее. Обратная (индуцированная) электродвижущая сила, , представляет собой напряжение, пропорциональное угловой скорости , наблюдаемой на валу,
(t)
где Kb, постоянная ЭДС, также зависит от определенных физических свойств двигателя.
Механическая часть уравнений двигателя выводится с помощью закона Ньютона, который утверждает, что инерционная нагрузка J, умноженная на производную угловой скорости, равна сумме всех моментов вокруг вала двигателя. Результатом является это уравнение,
(t)
где - линейная аппроксимация для вязкого трения.
Наконец, электрическая часть уравнений двигателя может быть описана
+ Ri (t)
или, решение для приложенного напряжения и замена для задней emf,
+ Кбом (t)
Эта последовательность уравнений приводит к набору из двух дифференциальных уравнений, которые описывают поведение двигателя, первое для индуцированного тока,
1Lstartapp (t)
и второй для результирующей угловой скорости,
1JKmi (t)
Учитывая два дифференциальных уравнения, полученные в последнем разделе, теперь можно разработать представление состояния-пространства двигателя постоянного тока как динамической системы. Ток i и угловая скорость λ являются двумя состояниями системы. Прикладываемое напряжение это входное напряжение системы, а угловая скорость λ - это выходное напряжение.
)
Пример представления состояния и пространства двигателя постоянного тока
(t)
После разработки набора дифференциальных уравнений, описывающих растение, можно создавать модели 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 функция преобразует из представлений state-space или transfer function в формат нуля/полюса/усиления. Этот код используется для преобразования представления состояния-пространства в форму нуля/полюса/усиления для двигателя постоянного тока.
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
Дополнительные сведения о добавлении временных задержек в модели см. в разделе Временные задержки в линейных системах.
Для удобства программа 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 команда; см. справочные страницы панели инструментов системы управления для описания 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;