Skip to main content

Управление и алгоритмы — Динамическая алгебра поведения

Алгоритмы управления — это переводчик между хаосом реального мира и порядком вычислительной модели. В 2026 году это не просто фильтры и регуляторы, а иерархия абстракций, где каждый уровень решает свою задачу: от подавления шума наносекундных измерений до планирования траекторий на горизонте секунд.

Философия управления: Два взгляда на одну систему

1. Классический (детерминированный) подход

“Я знаю мир, я управляю миром”

  • Предпосылка: Система линейна или линеаризуема, параметры известны
  • Математика: Дифференциальные уравнения, передаточные функции
  • Инструменты: PID, ПИД-регуляторы, LQR
  • Преимущество: Гарантии устойчивости, простота реализации
  • Слабость: Хрупкость к неопределённостям модели

2. Современный (стохастический/адаптивный) подход

“Я изучаю мир, пока управляю им”

  • Предпосылка: Система нелинейна, параметры неизвестны или меняются
  • Математика: Стохастические процессы, байесовский вывод, RL
  • Инструменты: Фильтры Калмана, MPC, нейросетевые контроллеры
  • Преимущество: Робастность, адаптивность
  • Слабость: Вычислительная сложность, отсутствие гарантий

Слой 1: Фильтрация — Извлечение сигнала из энтропии

Скользящее среднее: Тепловая смерть информации

Физическая интерпретация: Накопитель с утечкой — старые данные забываются.

\[ \hat{x}_k = \frac{1}{N} \sum_{i=0}^{N-1} x_{k-i} \]\[ |H(f)| = \left|\frac{\sin(\pi N f T_s)}{N \sin(\pi f T_s)}\right| \]

где \(T_s\) — период дискретизации.

\[ \tau_{group} = \frac{N-1}{2} T_s \]

Пример 2026: Для IMU с \(f_s = 1 \, \text{кГц}\), \(N=20\) дает:

  • Подавление шума: \( \sigma_{out} = \sigma_{in}/\sqrt{20} \approx 0.22\sigma_{in} \)
  • Задержка: \( \tau = 9.5 \, \text{мс} \) — катастрофа для балансирующего робота!

Экспоненциальное скользящее среднее (EMA): Память с экспоненциальным забыванием

\[ \hat{x}_k = \alpha x_k + (1-\alpha) \hat{x}_{k-1} \]

где \(\alpha = \frac{T_s}{\tau}\), \(\tau\) — постоянная времени.

Преимущество: Линейная сложность \(O(1)\), не требует буфера.

\[ H(z) = \frac{\alpha}{1 - (1-\alpha)z^{-1}} \]

Медианный фильтр: Защита от катастроф

Математика: \( \hat{x}_k = \text{median}\{x_{k-m}, ..., x_k, ..., x_{k+m}\} \)

Теория устойчивости: Стойкость к выбросам (breakdown point) = 50% — фильтр остаётся рабочим даже если половина выборок испорчена.

Алгоритмическая оптимизация 2026: Скользящая медиана Хуана со сложностью \(O(\log k)\) вместо \(O(k \log k)\).

Комплементарный фильтр: Синергия измерений

Физическая задача: Объединение данных двух сенсоров с ортогональными характеристиками.

Канонический пример — ориентация:

  • Гироскоп: Высокая полоса, низкий дрейф → точность в высоких частотах
  • Акселерометр: Низкая полоса, статическая точность → точность в низких частотах
\[ \hat{\theta}(s) = \underbrace{\frac{\tau s}{\tau s + 1}}_{HPF} \cdot \theta_{gyro}(s) + \underbrace{\frac{1}{\tau s + 1}}_{LPF} \cdot \theta_{acc}(s) \]\[ \hat{\theta}_k = (1-\alpha)(\hat{\theta}_{k-1} + \omega_k T_s) + \alpha \theta_{acc,k} \]

где \(\alpha = \frac{T_s}{T_s + \tau}\).

Оптимизация 2026: Адаптивный коэффициент \(\alpha\), зависящий от доверительной оценки каждого сенсора.

Фильтр Калмана: Оптимальный байесовский вывод

Философия: Не просто фильтрация, а оптимальная оценка состояния динамической системы.

Двухэтапный процесс:

  1. \[ \hat{x}_{k|k-1} = F_k \hat{x}_{k-1|k-1} + B_k u_k \]\[ P_{k|k-1} = F_k P_{k-1|k-1} F_k^T + Q_k \]
  2. \[ K_k = P_{k|k-1} H_k^T (H_k P_{k|k-1} H_k^T + R_k)^{-1} \]\[ \hat{x}_{k|k} = \hat{x}_{k|k-1} + K_k (z_k - H_k \hat{x}_{k|k-1}) \]\[ P_{k|k} = (I - K_k H_k) P_{k|k-1} \]

Физический смысл матриц:

  • \(Q\) — ковариация шума процесса (насколько мы доверяем модели)
  • \(R\) — ковариация шума измерений (насколько мы доверяем сенсору)
  • \(K\) — коэффициент Калмана, балансирующий между моделью и измерением

Расширенные версии 2026:

  • EKF (Extended Kalman Filter): Линеаризация нелинейных систем через Якобиан
  • UKF (Unscented Kalman Filter): Метод сигма-точек без линеаризации
  • EnKF (Ensemble Kalman Filter): Монте-Карло реализация для больших систем

Слой 2: Детерминированное управление — Создание желаемой динамики

PID-регулятор: Три кибернетических инстинкта

\[ u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt} \]\[ u_k = K_p e_k + K_i T_s \sum_{i=0}^k e_i + K_d \frac{e_k - e_{k-1}}{T_s} \]

Физическая интерпретация:

  • P (Proportional): Сила, пропорциональная ошибке — “стремление”
  • I (Integral): Накопление прошлых ошибок — “память”
  • D (Derivative): Предвидение будущих ошибок — “предчувствие”

Методы настройки 2026:

  1. Аналитические: Метод Циглера-Николса, частотные характеристики
  2. Эмпирические: Метод градиентного спуска по функционалу качества
  3. Автоматические: Auto-tuning PID через релейную обратную связь

Каскадные ПИД-регуляторы: Иерархия целей

Для робота-манипулятора:

[Внешний контур: Позиция] → [Внутренний контур: Скорость] → [Двигатель]
       (медленный)                     (быстрый)              (быстрейший)

Математика: Каждый контур работает на своей частоте дискретизации, создавая вложенные временные масштабы.

LQR (Linear Quadratic Regulator): Оптимальное управление с полной информацией

\[ J = \int_0^\infty (x^T Q x + u^T R u) dt \]\[ A^T P + P A - P B R^{-1} B^T P + Q = 0 \]\[ u = -K x, \quad K = R^{-1} B^T P \]

Преимущество: Гарантированная оптимальность, устойчивость.

Ограничение: Требует полного измерения состояния \(x\).


Слой 3: Продвинутые методы — Управление в условиях неопределённости

MPC (Model Predictive Control): Шахматная партия с природой

Идея: На каждом шаге решать конечно-горизонтную задачу оптимизации.

Алгоритм:

  1. Измеряем текущее состояние \(x_k\)
  2. Решаем оптимизацию на горизонте \(N\): \[ \min_{u_{k},...,u_{k+N-1}} \sum_{i=0}^{N-1} (x_{k+i}^T Q x_{k+i} + u_{k+i}^T R u_{k+i}) + x_{k+N}^T P x_{k+N} \]
  3. Применяем только первый элемент оптимальной последовательности \(u_k^*\)
  4. Повторяем на следующем шаге

Преимущества 2026:

  • Учёт ограничений (максимальное напряжение, углы сочленений)
  • Явное использование модели системы
  • Естественная работа с мультимодальными задачами

Вычислительный вызов: Требует решения задач нелинейной оптимизации в реальном времени → специализированные ускорители (FPGA, GPU).

Адаптивное управление (MRAC, L1-Adaptive)

Задача: Управление системой с неизвестными или меняющимися параметрами.

\[ J\ddot{\theta} + b\dot{\theta} = u - mgl\sin\theta \]

где \(J, m\) неизвестны.

Идея: Онлайн оценка параметров + корректировка закона управления.

Нейросетевые контроллеры

Архитектуры 2026:

  1. Нейронные ПИД: Параметры \(K_p, K_i, K_d\) — выходы нейросети
  2. Глубокое обучение с подкреплением (DRL): Прямое отображение состояние→действие
  3. Нейро-адаптивное управление: Нейросеть как компенсатор нелинейностей
\[ \text{Actor: } \mu(s|\theta^\mu), \quad \text{Critic: } Q(s,a|\theta^Q) \]\[ \nabla_{\theta^\mu} J \approx \mathbb{E}[\nabla_a Q(s,a|\theta^Q)|_{a=\mu(s)} \nabla_{\theta^\mu}\mu(s|\theta^\mu)] \]

Практикум: “От шума к траектории”

Задача: Стабилизация перевёрнутого маятника на тележке.

Экспериментальная установка:

[MPU6050] → [STM32] → [L298N] → [Мотор] → [Тележка+маятник]
     ↓           ↓
  Фильтр      ПИД/LQR
  Калмана

Поэтапная реализация:

Этап 1 — Фильтрация:

class ComplementaryFilter {
    float angle = 0;
    float alpha = 0.98;
public:
    float update(float gyro_rate, float accel_angle, float dt) {
        angle = alpha * (angle + gyro_rate * dt) + (1-alpha) * accel_angle;
        return angle;
    }
};

Этап 2 — ПИД-регулятор:

class PID {
    float Kp=10, Ki=1, Kd=0.5;
    float integral=0, prev_error=0;
public:
    float compute(float error, float dt) {
        integral += error * dt;
        float derivative = (error - prev_error) / dt;
        prev_error = error;
        return Kp*error + Ki*integral + Kd*derivative;
    }
};

Этап 3 — Верификация:

  • Теоретическая: Анализ корневого годографа
  • Экспериментальная: ЛАФЧХ через частотный анализатор
  • Симуляционная: Моделирование в Simulink/ROS Gazebo

Метрики качества:

  • Время установления: \(t_s\) (до 5% от установившегося значения)
  • Перерегулирование: \(M_p\) (в процентах)
  • Запас устойчивости: \(\varphi_m\) (фазовый запас)

Будущее (2026+)

1. Квантовые алгоритмы управления

  • Квантовые фильтры для подавления квантового шума
  • Квантовая оптимизация параметров регуляторов

2. Спайковые нейросетевые контроллеры

Событийное управление с энергоэффективностью в 1000 раз выше традиционных нейросетей.

3. Теория катастроф в робототехнике

Математическое описание и предотвращение катастрофических отказов.

4. Стохастическое оптимальное управление

Управление в условиях фундаментальной неопределённости (квантовые флуктуации, хаотические системы).

5. Биомиметические алгоритмы

  • Планирование траекторий по аналогии с нейронными сетями насекомых
  • Адаптивное управление по принципу гомеостаза

Что дальше?

  1. Паттерны проектирования ПО — как организовать код сложных систем управления
  2. Искусственный интеллект — нейросетевые методы управления
  3. ROS 2 Navigation — навигационные стеки
  4. Надёжность систем — отказоустойчивое управление

Итог: Алгоритмы управления в 2026 году — это не набор формул, а многослойная архитектура принятия решений. От фильтрации наносекундных шумов до планирования траекторий на горизонте секунд — каждый слой работает в своём временном масштабе, но вместе они создают иерархию управления, где низкоуровневые рефлексы обеспечивают стабильность, а высокоуровневые планировщики — целеполагание. Это баланс между реактивностью и прозорливостью, между подавлением шума и сохранением сигнала, между детерминизмом модели и стохастичностью реальности.


📚 Изучите алгоритмы в уроках

УровеньУрокЧто изучите
🟡 7-8 класс2.1 Робот-следопытАлгоритм следования по линии
🟡 7-8 класс2.2 Умный обходчикКонечные автоматы поведения
🟡 7-8 класс2.3 PID-регуляторКлассический PID с настройкой
🔴 9-11 класс3.2 Слияние датчиковKalman Filter, комплементарный фильтр
🔴 9-11 класс3.3 SLAMParticle Filter, Occupancy Grid
🔴 9-11 класс3.4 ROS 2Навигационные стеки Nav2

🔗 Связанные разделы