ГоловнаСтаттіТеорія керування

Контроль простору станів: від ẋ = Ax + Bu до оптимального коефіцієнта

Сумісність та вимірність визначають, що можливо; розміщення полюсів та LQR визначають, що є оптимальним.

mysimulator teamОновлено — червень 2026≈ 10 хв читання▶ Відкрити симуляцію

Обмін однією рівнянням на систему з них

Передана функція — це гарне описувальне рішення для окремого входу, який впливає на один вихід, але воно приховує внутрішню механіку та дуже погано працює, коли система має кілька входів, кілька виходів або справді пов’язану внутрішню динаміку. Представлення простору стану відстежує вектор внутрішніх станів x — положення, швидкості, струми, щойно визначають майбутнє системи, враховуючи її майбутні входи — і записує динаміку як одну першого порядку матричну диференціальну рівняння плюс рівняння вихідної величини:

ẋ = A x + B u рівняння стану: як внутрішній стан розвивається y = C x + D u рівняння вихідної величини: що можна насправді виміряти жива демонстрація · траєкторія стану, розгортається через фазовий простір● ЖИВА A — це внутрішні з’єднання рослини (як кожен стан живиться від кожного іншого стану), B — як вхід керуючого сигналу u, C — те, що насправді повідомляють датчики, D — прямий провід. Це одне матричне рівняння описує MIMO системи точно так само легко, як і одновхідні одновиходні, тому майже вся сучасна теорія управління за межами вступного PID побудована на ньому, а не на переданих функціях.

ẋ = A x + B u        state equation:  how the internal state evolves
y  = C x + D u        output equation: what you can actually measure
жива демонстрація · пов'язана симуляція● LIVE

Два питання, які потрібно відповісти перед проектуванням будь-чого

Стабілізованість запитує: чи ви дійсно можете керувати x у будь-якій точці простору станів за фінітної доби? Спостережливість ставить подібне питання щодо двійника: чи містить вихід y, спостерігається з часом, достатньо інформації для реконструкції повного внутрішнього стану x? Ранг Кальмана перевіряє обидва алгебраїчно, з A, B і C лише, без необхідності моделювання:

матриця стабілізованості Wc = [B AB A²B ... A^(n-1)B] матриця спостережливості Wo = [C; CA; CA²; ...; CA^(n-1)] стабілізована якщо rang(Wc) = n (повний розмір стану) спостерігається якщо rang(Wo) = n Нестабілізований режим — це частина динаміки u, яку ви просто не можете досягти — без закону зворотного зв’язку вона залишається точно такою ж швидкістю (або нестабільною), як і в відкритому циклі. Неспостережуваний режим — це режим, який сенсори структурно не бачать — він може бути стабільним і непотрібним або нестабільним режимом, який тихо відхиляється у кутку простору станів, який ви ніколи не бачите в y. Перевірка обох перед проектуванням контролера не є лише обережністю; це говорить вам, чи вирішує проблема дизайну, яку ви збираєтеся вирішити, навіть якщо ви маєте в своєму розпорядженні виконавчі механізми та сенсори.

controllability matrix   Wc = [B  AB  A²B  ...  A^(n-1)B]
observability matrix    Wo = [C; CA; CA²; ...; CA^(n-1)]

controllable  iff  rank(Wc) = n     (full state dimension)
observable    iff  rank(Wo) = n

Повний зворотний зв'язок та розміщення осей

Якщо кожен стан вимірюваний (або оцінюється), найпростіший закон керування є лінійним зворотним зв’язком із повного стану: u = -Kx, де K — це рядок коефіцієнтів, один на стан. Підставляючи це в ẋ = Ax + Bu, отримуємо ẋ = (A - BK)x — замкнена петля все ще лінійна, але тепер її динаміка визначається A - BK замість A, і головна мета полягає в тому, щоб вибрати K. Якщо система контрольована, формула Акермана обчислює єдиний K, який розміщує власні значення A - BK у будь-яких зазначених вами місцях:

K = [0 0 ... 0 1] · Wc⁻¹ · φ_desired(A) де φ_desired(A) — бажаний характеристичний поліном, оцінений за матрицею A (застосування Cayley-Hamilton), а Wc — матриця контрольованості — тому контроль є важким передумовою, а не формальністю.

K = [0 0 ... 0 1] · Wc⁻¹ · φ_desired(A)

where φ_desired(A) is the desired characteristic polynomial evaluated
at the matrix A (Cayley-Hamilton substitution), and Wc is the
controllability matrix above — which is why controllability is a
hard prerequisite, not a formality.

LQR: дайте оптимізаційній задати обрати коефіцієнти для вас

Дизайн лінійного-квадратної стабілізатора перевертає питання з ніг на голову: замість того, щоб вказувати розташування осей безпосередньо, визначається те, за чим ви віддаєте перевагу, і математика знаходить коефіцієнт, який оптимізує цей компроміс. Визначте вартість, яка штрафує як похибку стану, так і зусилля управління впродовж усього майбутнього часу:

J = ∫₀^∞ ( xᵀ Q x + uᵀ R u ) dt Q (n×n, позитивно визначена) — вартість перебування подалі від x = 0 R (m×m, позитивно визначена) — вартість витрат зусиль управління u, який мінімізує J, знову ж таки є лінійним зворотним зв’язком стану, u = -Kx, але тепер K = R⁻¹BᵀP, де P розв’язує алгебраїчну рівняння Ріккаті, AᵀP + PA - PBR⁻¹BᵀP + Q = 0 — нелінійне матричне рівняння, але з швидкими та надійними числовими розв’язниками, тому на практиці його ніколи не розв’язують вручну. Замість цього ви налаштовуєте елементи Q і R: важливо стан у Q і LQR витрачатиме більше зусиль управління, щоб тримати його близько до нуля; важливо R, і LQR буде заощаджувати енергію виконавчих механізмів навіть за рахунок більш розпливчастого відстеження стану. Цей гвинт — фізично інтерпретований, повністю у ваших руках — є основною причиною того, що LQR витіснив хаотичне розміщення осей як метод повної конфігурації після того, як комп’ютери зробили розв’язання рівняння Ріккаті рутинним.

J = ∫₀^∞ ( xᵀ Q x  +  uᵀ R u ) dt

Q  (n×n, positive semi-definite)  — cost of being away from x = 0
R  (m×m, positive definite)       — cost of spending control effort

Коли ви не можете виміряти кожен стан

Повне зворотне з’єднання припускає, що x повністю відомий, але більшість реальних датчиків надають вам лише y = Cx. Якщо система спостережувана, Люндбергівський спостерігач (або, для шумного об’єкта, фільтр Калмана) запускає власну копію моделі рослини поряд із реальною та коригує її за допомогою розбіжності між прогнозованим і виміряним виходом, зводячи до нуля її оцінку x̂ у напрямку справжнього x. Принцип розділення — це заспокійливий теорема, яка дозволяє вам проєктувати коефіцієнт зворотного зв’язку станом K та коефіцієнт спостерігача L повністю незалежно і потім просто об'єднувати їх — власні значення замкненої петлі повного спостерігача-плюс-контролера точно відповідають власним значенням A - BK разом із власними значеннями динаміки помилки спостереження, без будь-якого перехресного впливу для турбот.

Часті запитання

Яка різниця між методом розташування полюсів і LQR?

Обидва обчислюють коефіцієнт зворотного зв’язку з управлінням K, але метод розташування полюсів вимагає вказати точне положення закритих кілець, а LQR – вказати компроміс між витратами на помилку стану (Q) та зусиллями управління (R), і розв’язати рівняння Ріккаті для отримання K, яке оптимізує його. LQR зазвичай є кращим варіантом, оскільки налаштування Q та R більш інтуїтивно зрозуміле, ніж припущення про хороші положення полюсів у високих розмірностях.

Що таке справжнє значення керованості?

Це означає, що вхідний сигнал управління може, в принципі, привести стан з будь-якої початкової точки до будь-якої іншої точки за кінцевий час. Це перевіряється алгебраїчно за допомогою рангу матриці керованості [B AB A²B ...]; якщо ця ранг менший за кількість станів, частина динаміки просто недоступна для u, незалежно від того, як обрано коефіцієнт зворотного зв’язку.

Чи потрібен мені обсерватор, якщо я не можу вимірювати всі стани?

Так, якщо система є спостережуваною. Люенберговський обсерватор (або фільтр Калмана для шумних вимірювань) запускає модель рослини разом із реальною системою та коригує оцінку стану на основі доступних виходів. Принцип розділення гарантує, що ви можете розробити коефіцієнт зворотного зв’язку з управлінням і коефіцієнт обсерватора незалежно один від одного та поєднати їх без взаємодії між ними.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте State-Space Controller і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію State-Space Controller

Що ви знайшли?

Додати кроки відтворення (опційно)