Модуль IV·Статья I·~4 мин чтения

Линейные системы: управляемость и наблюдаемость

Линейное управление и устойчивость

Превратить статью в подкаст

Выберите голоса, формат и длину — AI запишет аудио

Линейные системы: управляемость и наблюдаемость

Прежде чем «оптимально» управлять системой, нужно ответить на два фундаментальных вопроса: можно ли вообще привести её в нужное состояние? И можно ли понять, в каком состоянии она находится, по доступным измерениям? Эти вопросы — управляемости и наблюдаемости — решаются классическими критериями Калмана, открывшими теорию линейных систем в 1960-х. Без понимания этих понятий невозможно проектировать ни наблюдатель Люенбергера, ни регулятор LQR, ни фильтр Калмана.

Линейные стационарные системы

Стандартная форма (state-space representation): ẋ = A·x + B·u, y = C·x + D·u.

Здесь x ∈ ℝⁿ — вектор состояния (положение, скорость, температуры, токи), u ∈ ℝᵐ — вход (управление), y ∈ ℝᵖ — выход (измерения). Матрицы A (n×n), B (n×m), C (p×n), D (p×m) описывают физику системы. Часто D = 0.

Решение: x(t) = e^{At}·x(0) + ∫₀^t e^{A(t−s)}·B·u(s) ds.

Матричная экспонента: e^{At} = Σ_{k=0}^∞ (At)^k/k! — фундаментальная матрица. Вычисляется через собственное разложение A = V·Λ·V⁻¹: e^{At} = V·diag(e^{λ_i·t})·V⁻¹.

Пример. Гармонический осциллятор: A = [0, 1; −ω², 0]. Собственные значения ±iω, e^{At} = [cos ωt, sin ωt/ω; −ω·sin ωt, cos ωt] — поворот в фазовом пространстве.

Управляемость

Определение. Система (A, B) управляема, если для любых начального x₀ и целевого x₁ состояний существует управление u(t) на конечном [0, T], переводящее x(0) = x₀ в x(T) = x₁.

Матрица управляемости: 𝓒 = [B | A·B | A²·B | ... | A^{n−1}·B] ∈ ℝ^{n × n·m}.

Критерий Калмана: Система управляема ⟺ rank(𝓒) = n.

Геометрическая интуиция. rank(𝓒) — размерность подпространства состояний, достижимых из начала координат. Если rank < n, существуют направления в пространстве состояний, в которые управление «не дотягивается».

Численный пример: двойной интегратор

ẋ₁ = x₂, ẋ₂ = u. A = [0, 1; 0, 0], B = [0; 1]. n = 2. 𝓒 = [B | A·B] = [0, 1; 1, 0]. rank(𝓒) = 2 = n → система управляема.

Это значит: из любого положения с любой скоростью мы можем за конечное время прийти в любое другое положение с любой скоростью, выбрав подходящее ускорение u(t).

Контрпример: неуправляемая система

A = [1, 0; 0, 2], B = [1; 0]. Состояние x₂ эволюционирует ẋ₂ = 2·x₂, на него никак не влияет u. �𝒞 = [1, 1; 0, 0], rank = 1 < 2. Неуправляема.

Физически: x₂ — независимая переменная, не реагирующая на наше воздействие.

Наблюдаемость

Определение. Система (A, C) наблюдаема, если начальное состояние x(0) можно однозначно восстановить по выходу y(t), t ∈ [0, T], при заданном (или нулевом) u(t).

Матрица наблюдаемости: 𝒪 = [C; C·A; C·A²; ...; C·A^{n−1}] ∈ ℝ^{p·n × n}.

Критерий: Система наблюдаема ⟺ rank(𝒪) = n.

Двойственность Калмана: (A, B) управляема ⟺ (Aᵀ, Bᵀ) наблюдаема. Это означает: задачи управления и оценивания — «зеркальные», и алгоритмы для одной автоматически дают алгоритмы для другой.

Канонические формы

При полной управляемости можно линейным преобразованием z = T·x перевести систему в управляемую каноническую форму — A_c = [0, 1, 0, ..., 0; 0, 0, 1, ..., 0; ...; −a_0, −a_1, ..., −a_{n−1}], B_c = [0; 0; ...; 1]. Это упрощает синтез регулятора.

При полной наблюдаемости — аналогичная наблюдаемая каноническая форма.

Наблюдатель Люенбергера

Если состояние x(t) недоступно прямому измерению, его можно оценить через наблюдатель:

x̂̇ = A·x̂ + B·u + L·(y − C·x̂).

Здесь L — матрица усиления наблюдателя. Ошибка оценки e = x − x̂ удовлетворяет ė = (A − L·C)·e. Выбор L таким, чтобы все собственные значения (A − L·C) лежали в левой полуплоскости (например, с большим запасом устойчивости), обеспечивает экспоненциальную сходимость x̂ → x.

Принцип отделения (separation principle): В линейных системах задачу управления (выбор K в u = −K·x̂) и задачу оценивания (выбор L) можно решать независимо, и результат — комбинация регулятора и наблюдателя — обеспечивает заданное качество замкнутой системы.

Численный пример: наблюдатель для двойного интегратора

Система: ẋ₁ = x₂, ẋ₂ = u, y = x₁ (измеряем только положение). C = [1, 0]. Матрица наблюдаемости 𝒪 = [1, 0; 0, 1] — rank 2, наблюдаема.

Желаемые собственные значения наблюдателя: λ = −5, −5 (быстрая сходимость). L = [l₁; l₂] такое, что det(s·I − A + L·C) = (s + 5)² → l₁ = 10, l₂ = 25. Наблюдатель сходится за ~1 секунду — достаточно для большинства приложений.

Реальные применения

  • GPS-приёмники. Состояние x = (положение, скорость, ошибка часов), измерения — псевдодальности до спутников. Наблюдатель (расширенный фильтр Калмана) восстанавливает позицию с точностью 5-10 метров.
  • Энергосистемы. State estimation в SCADA: измерения напряжений и токов в узлах сети → оценка состояния всей сети (тысячи переменных) → диспетчерское управление.
  • Автомобильная электроника. Оценка состояния заряда батареи (SoC) электромобиля по току и напряжению — наблюдатель Люенбергера или фильтр Калмана.
  • Биомедицинские приборы. Глюкометры непрерывного мониторинга оценивают «истинную» концентрацию глюкозы в крови по показаниям подкожного датчика — задача наблюдаемости.

Задание. Двойной интегратор: ẋ₁ = x₂, ẋ₂ = u, y = x₁. (а) Проверьте управляемость и наблюдаемость через ранги 𝒞 и 𝒪. (б) Найдите u = −K·x (обратная связь по состоянию) такое, чтобы собственные значения A − B·K были {−2 + 2i, −2 − 2i}. (в) Постройте наблюдатель L со спектром A − L·C = {−5, −5}. (г) Симулируйте замкнутую систему с наблюдателем при x(0) = (1, 0), x̂(0) = (0, 0). Постройте на графике x(t), x̂(t), u(t).

§ Акт · что дальше