Блог о математике

Математика повсюду

Дифференциальные уравнения и местное самоуправление

Эта история началась в тот момент, когда я ехал на работу, пытаясь за оставшиеся 20 минут не только каким-то чудом добраться до аудитории, но и успеть подготовиться к лекции. Лекция была по дифференциальным уравнениям, я планировал рассказать про структурную устойчивость и бифуркации, и решил перечитать брошюру Владимира Игоревича Арнольда «„Жесткие” и „мягкие” математические модели». И обнаружил там сюжет удивительной простоты, про который успел порядком забыть.

Легко ли быть начальником?

Речь вот о чём. Допустим, вы управляете какой-нибудь компанией. Или государством. У вас есть какие-то параметры, которые вы контролируете, и их целевые значения, которых вы хотите достигнуть и удерживать. Например, сделать безработицу равной нулю. Или инфляцию равной 4% в год. Или ещё что-нибудь в таком же роде.

Поскольку мы не в сказке, вы не можете просто взять и приказать этому параметру стать равным тому, чему вы хотите. Но с помощью своих властных рычагов можете на них как-то влиять. В простейшем случае вы можете устанавливать не значение параметра, а скорость его изменения. Например, стимулировать создание рабочих мест. Или продавать иностранную валюту, чтобы увеличивать курс своей. С математической точки зрения, это означает, что мы контролируем производную некоторой функции. Чтобы было понятнее, я сделал небольшую демонстрашку. В поле ниже треугольник показывает текущее значение интересующего вас параметра, круг — целевое значение. Перемещая курсор внутри поля, вы можете менять скорость движения треугольника. Ваша задача — попасть им в круг и удерживать как можно дольше. Поехали!

Ну как, получилось? Думаю, да. У меня обычно получается.

Рассмотрим теперь более сложную схему. Допустим, наша система управления состоит из двух звеньев. Есть начальник, чья задача остётся той же — добиться, чтобы значения показателя стало максимально близко к целевому. Иными словами, поместить треугольник в круг. Но начальник влияет на ситуацию не напрямую, а через подчинённого. Подчинённый не очень сильно заинтересован ни в каких целевых показателях. Он, может быть, даже не очень понимает, какие они. Его единственная задача — выполнять приказы начальника. Чтобы не уволили. Но именно подчиненный своими непосредственными действиями влияет на ситауцию — как это делали мы в предыдущем примере. Иными словами, именно подчинённый контролирует скорость изменения целевого показателя.

Начальник не будет говорить «установить скорость такую-то» (иначе зачем нужен подчиненный?). Он лишь контролирует ситуацию и корректирует действия подчиненного. Если видит, что показатель слишком большой, отдаёт приказ «ну-ка, что за бардак, срочно уменьшить скорость роста!». И наоборот. Иными словами, начальник определяет скорость изменения скорости, то есть ускорение, вторую производную параметра.

Легко ли быть начальником? А вот попробуйте! Теперь положение курсора определяет не скорость, а ускорение треугольника. Загоните его в круг и держите там.

Получается? Кажется, что это гораздо сложнее, чем в прошлый раз. Действительно, обычно в лучшем случае удаётся заставить треугольник колебаться вблизи целевого значения с той или иной амплитудой. Имея некоторый опыт, можно добиться достаточно малой амплитуды, но колебания всё равно будут.

Двухзвенная система управления, где кольцо обратной связи замыкается на втором звене (на начальнике), приводит к такому периодическому поведению, но ещё хоть как-то позволяет держать ситуацию под контролем. Что будет, если звеньев станет ещё больше? Вопрос вполне актуален даже для средних по размеру организаций, не говоря уже о государстве.

Практика — критерий истины. В поле ниже вам предстоит поиграть в «начальника начальника», и контролировать третью производную интересующего вас параметра. Поехали!

Что-нибудь получается? Не очень? Как же так? Ведь вся полнота власти в ваших руках! Может быть, подчиненные попались неподходящие? Но они же самые лучшие, честно и добросовестно выполняют ваши приказы. Или может быть вы плохой руководитель? Или опыта обращения с мышкой не хватает?

Да нет, дело не в этом. А чтобы понять, в чём именно, нам придётся углубиться в теорию дифференциальных уравнений.

Устойчивость и неустойчивость

Рассмотрим однозвенную систему управления. Управляющее воздействие, контролирующее производную нашего параметра, зависит от текущего значения этого параметра. Иными словами, мы имеем дело с дифференциальным уравнением

Здесь $x=x(t)$ — функция, описывающая зависимость нашего параметра от времени, $\dot x$ — её производная по времени. Как выглядит функция $f(x)$? Давайте для определенности считать, что целевым значением является $x=0$. Если в какой-то момент $x$ стал равен нулю, то мы уже достигли цели, и разумно сделать производную в этой точке также равной нулю. Если $x$ положительно, то производная должна быть отрицательной, чтобы $x$ умненьшился, причем чем больше $x$, тем большей по модулю (и при этом отрицательной) должна быть производная. И наоборот, если $x$ меньше 0, то производная должна быть положительной. Простейшая функция, удовлетворяющая этим свойствам, имеет вид $f(x)=-x$. На самом деле, практически любая нужная нам функция будет очень похожа на эту, по крайней мере, пока значение $x$ не слишком велико. (Это связано с фундаментальным фактом анализа: любая «хорошая», гладкая функция похожа на линейную в окрестности фиксированной точки.) Таким образом, достаточно рассмотреть случай дифференциального уравнения

Семейство решений этого уравнения можно выписать явно, но оно нам сейчас не очень интересно. Нам важно следующее: состояние равновесия $x=0$ является устойчивым. Иными словами, если мы возьмем стартовое значение $x$, большее нуля, то со временем значение $x$ станет уменьшаться и будет всё ближе и ближе к нулевому. Наоборот, если $x$ в какой-то момент меньше нуля, то со временем наша производная будет его увеличивать, причём всё медленнее и медленнее по мере приближения к положению равновесия.

Система с отрицательной обратной связью и одним звеном управления (специалист по дифференциальным уравнениям скажет «с одномерным фазовым пространством») имеет устойчивое положение равновесия. Именно благодаря этому факту вам удаётся легко справиться с треугольником в первом примере.

Что изменится с появлением второго звена? Теперь управляющее воздействие задаёт не первую, а вторую производную, то есть ускорение. Принцип управления при этом остаётся прежним – если значение целевого параметра слишком большое, надо давать подчиненному сигнал на уменьшение скорости, а если слишком маленькое — на увеличение (вряд ли можно придумать что-то другое). Дифференциальное уравнение принимает вид

Вводя промежуточную переменную $y$, обозначающую скорость, его также можно переписать в виде системы

$$\begin{cases} \dot x=y\\
\dot y=-x \end{cases}$$ Это уравнение хорошо знакомо из механики: оно описывает малые колебания маятника или шарика на пружинке (осциллятора), и называется уравнением гармонических колебаний. Его решением является периодическое движение типа $x(t)=A\sin t$, где $A$ — константа, задающая амплитуду колебаний. Природа этих колебаний вполне ясна (вы могли обнаружить их, играя со второй демкой выше): в тот момент, когда параметр проходит через целевое значение, он делает это с ненулевой скоростью, а управляющее воздействие при этом нулевое, и только после того, как он проскочит через искомое значение, к нему будет приложено ускорение, направленное в обратную сторону. Конечно, тождественно нулевая функция, при которой параметр равен целевому значению, и при этом никуда не двигается, также является решением. Будет ли оно устойчиво? И да, и нет.

Если отклонить осциллятор от положения равновесия, в идеальном случае он будет колебаться вечно, с амплитудой, равной величине исходного отклонения. Но при этом он не будет стремиться к положению равновесия. Говорят, что положение равновесия в этом случае устойчиво по Ляпунову, но не является асимптотически устойчивым.

На самом деле, конечно, наше уравнение не вполне точно описывает поведение настоящих шариков или маятников. В частности, в нём не учитывается трение. Если его добавить (это будет какое-то слагаемое, маленькое по сравнению с $x$, например, $x^2$), со временем колебания будут затухать, и положение равновесия станет асимптотически устойчивым.

Однако, в задаче управления, добавление малых слагаемых, которые мы не учли в нашей приблизительной модели, может привести к тому, что положение равновесия перестанет быть устойчивым вовсе: размах колебаний со временем будет нарастать.

Какой сценарий будет реализован на практике? Модель не даёт ответа на этот вопрос, оставляя простор для реализации управленческих качеств начальника.

С трёхзвенной цепью управления, однако, ситуация гораздо более определенная. Наше уравнение принимает вид

или, записывая эквивалентную систему,

Чтобы исследовать такое уравнение (уже с трёхмерным фазовым пространством), нам придётся прибегнуть к помощи линейной алгебры. Запишем систему в матричном виде $$\begin{pmatrix} \dot x\\ \dot y\\ \dot z \end{pmatrix}= \begin{pmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ -1 & 0 & 0 \end{pmatrix} \begin{pmatrix} x\\
y\\
z \end{pmatrix} $$ Известно, что свойства нулевого положения равновесия зависят от собственных значений матрицы, стоящей в правой части, то есть корней характеристического многочлена. В нашем случае уравнение на собственные значения имеет вид:

Оно имеет только один вещественный корень (-1), но нас интересуют также комплексные корни. Раскладывая на множители, имеем

комплексные корни имеют вид

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

Аналогичной будет ситуация и с большим числом звеньев.

Возвращаясь к реальности

Модель, предложенная выше, очень проста, основана на самых очевидных соображениях, и разумеется реальное решение управленческих задач выглядит гораздо сложнее. Однако, именно благодаря своей простоте, эта модель является очень важной.

Процитирую выводы из книги В.И.Арнольда:

Многоступенчатое управление, описываемое нашей моделью при $n\ge 3$, неустойчиво. Двухступенчатое управление приводит к периодическим колебаниям, но не вызывает катастрофического нарастания колебаний, происходящего при трех- и более ступенчатом управлении.

Настоящую устойчивость обеспечивает только одноступенчатое управление, при котором управляющее лицо более заинтересовано в интересах дела, чем в поощрении со стороны начальства.

Эти выводы, сделанные выше на основании анализа простейшей жесткой модели, на самом деле выдерживают проверку на структурную устойчивость, исключая лишь случай $n=2$: двухступенчатое управление может оказаться как устойчивым, так и неустойчивым, в зависимости от деталей организации дела, которыми мы выше пренебрегли при составлении нашей самой простой модели.

Вспомните об этом примере, когда вы будете думать о таких вопросах:

  • Следует избирать губернатора (мэра города) или назначать его решением президента (который, в свою очередь, избирается)?
  • Важно ли иметь сильное местное самоуправление?
  • Почему успешные компании передают своим менеджерам опционы на акции?

P.S. Важнейший закон классической механики — второй закон Ньютона — имеет вид $F=ma$, где $a$ — ускорение, то есть вторая производная. Это соответствует нашему случаю двухзвенной управляющей системы, оказавшемуся «на границе устойчивости», посередине между строгим порядком (устойчивым положением равновесия в размерности 1) и неустранимым хаосом (неусточивостью в размерности 3). Есть в этом что-то удивительное, не правда ли?