Линейно-квадратичный-Гауссов (LQG) проект
reg = lqg(sys,QXU,QWV)
reg = lqg(sys,QXU,QWV,QI)
reg = lqg(sys,QXU,QWV,QI,'1dof')
reg = lqg(sys,QXU,QWV,QI,'2dof')
reg = lqg(___,'current')
[reg,info] = lqg(___)
reg = lqg(sys,QXU,QWV) вычисляет оптимальный линейно-квадратичный-Гауссов (LQG) регулятор reg заданную модель пространства состояний sys объекта и весовых матриц QXU и QWV. Динамический регулятор reg использует y измерений, чтобы сгенерировать u управляющего сигнала, который y регулирует вокруг нулевого значения. Используйте положительную обратную связь, чтобы подключить этот регулятор к выходному y объекта.

Регулятор LQG минимизирует функцию затрат
удовлетворяющее растительным уравнениям
где w шума процесса и v шума измерения являются Гауссовыми белыми шумами с ковариацией:
reg = lqg(sys,QXU,QWV,QI) использует командную r уставки и y измерений, чтобы сгенерировать u сигнала управления. reg имеет интегральное действие, чтобы убедиться, что y отслеживает команду r.

Сервоконтроллер LQG минимизирует функцию затрат
где xi является интегралом ошибки отслеживания r - y. Для систем MIMO r, y и xi должны иметь одинаковую длину.
reg = lqg(sys,QXU,QWV,QI,'1dof') вычисляет сервопривод с одной степенью свободы контроллера который принимает e = r - y, а не [r; y] как вход.
reg = lqg(sys,QXU,QWV,QI,'2dof') эквивалентно LQG(sys,QXU,QWV,QI) и формирует сервоконтроллер с двумя степенями свободы, показанный ранее.
reg = lqg(___,'current') использует «текущую » Оценку состояния фильтра Калмана, который использует x [n | n] в качестве оценки состояния при вычислении регулятора LQG для системы дискретного времени.
[reg,info] = lqg(___) возвращает матрицы усиления контроллера и оценщика в структуре info для любого из предыдущих синтаксисов. Можно использовать коэффициент усиления контроллера и оценщика, чтобы, например, реализовать контроллер в форме наблюдателя. Для получения дополнительной информации см. «Алгоритмы».
Линейно-квадратичный-Гауссов (LQG) регулятор и сервопривод Проектирования контроллера
Этот пример показывает, как спроектировать линейный регулятор квадратичного Гауссова (LQG), сервопривод LQG с одной степенью свободы и сервопривод LQG с двумя степенями свободы для следующей системы.

Объект имеет три состояния (x), два входа управления (u), три случайных входа (w), один выход (y), шум измерения для выхода (v) и следующее состояние и уравнения измерения.
где
Система имеет следующие данные о шуме ковариации:
Для регулятора используйте следующую функцию затрат, чтобы определить компромисс между эффективностью регулирования и усилиями по управлению:
Для контроллеров сервопривода используйте следующую функцию затрат, чтобы определить компромисс между эффективностью трекера и усилиями по управлению:
Для проектирования контроллеров LQG для этой системы:
Создайте систему в пространстве состояний путем ввода следующего текста в Командном окне MATLAB:
A = [0 1 0;0 0 1;1 0 0]; B = [0.3 1;0 1;-0.3 0.9]; C = [1.9 1.3 1]; D = [0.53 -0.61]; sys = ss(A,B,C,D);
Задайте данные ковариации шума и матрицы взвешивания путем ввода следующих команд:
nx = 3; %Number of states ny = 1; %Number of outputs Qn = [4 2 0; 2 1 0; 0 0 1]; Rn = 0.7; R = [1 0;0 2] QXU = blkdiag(0.1*eye(nx),R); QWV = blkdiag(Qn,Rn); QI = eye(ny);
Сформировать регулятор LQG можно путем ввода следующей команды:
KLQG = lqg(sys,QXU,QWV)
A =
x1_e x2_e x3_e
x1_e -6.212 -3.814 -4.136
x2_e -4.038 -3.196 -1.791
x3_e -1.418 -1.973 -1.766
B =
y1
x1_e 2.365
x2_e 1.432
x3_e 0.7684
C =
x1_e x2_e x3_e
u1 -0.02904 0.0008272 0.0303
u2 -0.7147 -0.7115 -0.7132
D =
y1
u1 0
u2 0
Input groups:
Name Channels
Measurement 1
Output groups:
Name Channels
Controls 1,2
Continuous-time model.Сформируйте сервопривод LQG с одной степенью свободы контроллера путем ввода следующей команды:
KLQG1 = lqg(sys,QXU,QWV,QI,'1dof')A =
x1_e x2_e x3_e xi1
x1_e -7.626 -5.068 -4.891 0.9018
x2_e -5.108 -4.146 -2.362 0.6762
x3_e -2.121 -2.604 -2.141 0.4088
xi1 0 0 0 0
B =
e1
x1_e -2.365
x2_e -1.432
x3_e -0.7684
xi1 1
C =
x1_e x2_e x3_e xi1
u1 -0.5388 -0.4173 -0.2481 0.5578
u2 -1.492 -1.388 -1.131 0.5869
D =
e1
u1 0
u2 0
Input groups:
Name Channels
Error 1
Output groups:
Name Channels
Controls 1,2
Continuous-time model.Сформируйте сервопривод LQG с двух контроллеров свободы путем ввода следующей команды:
KLQG2 = lqg(sys,QXU,QWV,QI,'2dof')A =
x1_e x2_e x3_e xi1
x1_e -7.626 -5.068 -4.891 0.9018
x2_e -5.108 -4.146 -2.362 0.6762
x3_e -2.121 -2.604 -2.141 0.4088
xi1 0 0 0 0
B =
r1 y1
x1_e 0 2.365
x2_e 0 1.432
x3_e 0 0.7684
xi1 1 -1
C =
x1_e x2_e x3_e xi1
u1 -0.5388 -0.4173 -0.2481 0.5578
u2 -1.492 -1.388 -1.131 0.5869
D =
r1 y1
u1 0 0
u2 0 0
Input groups:
Name Channels
Setpoint 1
Measurement 2
Output groups:
Name Channels
Controls 1,2
Continuous-time model.lqg может использоваться как для объектов непрерывного, так и дискретного времени. В дискретном времени, lqg использует x [n | n-1] в качестве оценки состояния по умолчанию. Чтобы использовать x [n | n] в качестве оценки состояния и вычислить оптимальный контроллер LQG, используйте 'current' входной параметр. Для получения дополнительной информации о оценщиках состояния смотрите kalman.
Для вычисления регулятора LQG, lqg использует команды lqr и kalman. Чтобы вычислить сервоконтроллер, lqg использует команды lqi и kalman.
Когда вы хотите большей гибкости для разработки регуляторов, вы можете использовать lqr, kalman, и lqgreg команды. Когда вы хотите большей гибкости для разработки контроллеров сервопривода, вы можете использовать lqi, kalman, и lqgtrack команды. Для получения дополнительной информации об использовании этих команд и о том, как решить, когда их использовать, смотрите Linear-Quadratic-Gaussian (LQG) Design for Regulation and Linear-Quadratic-Gaussian (LQG) Design of Servo Controlller with Integral Action.
Уравнения контроллера:
Для непрерывного времени:
Для дискретного времени:
Задержка оценки:
Оценка тока:
Вот,
A, B, C и D являются матрицами пространства состояний регулятора LQG, reg.
xi является интегралом ошибки отслеживания r - y.
Kx, Kw, Ki, L, Mx, и Mw являются контроллером, и матрицы выгоды оценщика возвратились в info.