Мнение редакции может не совпадать с мнением автора
Практика — критерий истины. В поле ниже вам предстоит поиграть в «начальника начальника», и контролировать третью производную интересующего вас параметра. Поехали!
Эта история началась в тот момент, когда я ехал на работу, пытаясь за оставшиеся 20 минут не только каким-то чудом добраться до аудитории, но и успеть подготовиться к лекции. Лекция была по дифференциальным уравнениям, я планировал рассказать про структурную устойчивость и бифуркации, и решил перечитать брошюру Владимира Игоревича Арнольда «„Жесткие” и „мягкие” математические модели». И обнаружил там сюжет удивительной простоты, про который успел порядком забыть.
Речь вот о чем. Допустим, вы — мэр города. В ходе своей работы, вы контролируете множество различных параметров городской жизни. Чтобы было проще, давайте думать об одном каком-нибудь — например, о наружной рекламе. Ее может быть больше (город получит больше денег), может быть меньше (будет выглядеть опрятнее и больше нравиться жителям), и есть какое-то значение, которое вы считаете оптимальным, и к которому стремитесь. Мэров обычно выбирают жители, поэтому вы стремитесь учитывать их предпочтения, но с другой стороны все понимают, что лишние деньги в городском бюджете тоже можно потратить с пользой, и оптимальное значение где-то посередине.
Поскольку мы не в сказке, вы не можете просто взять и приказать этому параметру стать равным тому, чему вы хотите. Есть множество компаний, им принадлежат рекламные щиты, у них заключены договора с клиентами — все это нельзя изменить одномоментно. Но с помощью своих властных рычагов можете на них как-то влиять. В простейшем случае вы можете устанавливать не значение параметра, а скорость его изменения. Например, потребовать сокращения количества наружной рекламы.
Чтобы было понятнее, я сделал небольшую демонстрационную программку. В поле ниже треугольник показывает текущее значение интересующего вас параметра, круг — целевое значение. Перемещая курсор внутри поля, вы можете менять скорость движения треугольника. Ваша задача — попасть им в круг и удерживать как можно дольше. Поехали!
Ну как, получилось? Думаю, да. У меня обычно получается.
Рассмотрим теперь более сложную схему. Допустим, наша система управления состоит из двух звеньев. Скажем, мэр города назначается и контролируется губернатором, а губернатора уже выбирают жители. Задача губернатора остается той же — добиться, чтобы значения показателя (количества наружной рекламы) стало максимально близко к целевому (оптимальному для жителей города). Но губернатор влияет на ситуацию не напрямую, а через мэра. Мэра в данном случае не очень интересует, что там думают жители о наружной рекламе, но его очень интересует, что о нем думает губернатор. Его единственная задача — выполнять приказы своего начальника. Чтобы не уволили. Но именно мэр своими непосредственными действиями влияет на ситауцию — как это делали мы в предыдущем примере. Иными словами, именно мэр контролирует скорость изменения целевого показателя.
Губернатор не будет вдаваться в детали (иначе зачем нужен мэр?). Он лишь контролирует ситуацию и корректирует действия мэра. Если видит, что показатель слишком большой, отдает приказ «ну-ка, что за бардак, срочно уменьшить скорость роста!». И наоборот. Иными словами, начальник определяет скорость изменения скорости, то есть ускорение, вторую производную параметра.
Легко ли быть начальником? А вот попробуйте! Теперь положение курсора определяет не скорость, а ускорение треугольника. Загоните его в круг и держите там.
Получается? Кажется, что это гораздо сложнее, чем в прошлый раз. Действительно, обычно в лучшем случае удается заставить треугольник колебаться вблизи целевого значения с той или иной амплитудой. Имея некоторый опыт, можно добиться достаточно малой амплитуды, но колебания все равно будут.
Двухзвенная система управления, где кольцо обратной связи замыкается на втором звене (на начальнике), приводит к такому периодическому поведению, но еще хоть как-то позволяет держать ситуацию под контролем. Что будет, если звеньев станет еще больше? Вопрос вполне актуален даже для средних по размеру организаций, не говоря уже о государстве.
Практика — критерий истины. В поле ниже вам предстоит поиграть в «начальника начальника», и контролировать третью производную интересующего вас параметра. Поехали!
Что-нибудь получается? Не очень? Как же так? Ведь вся полнота власти в ваших руках! Может быть, подчиненные попались неподходящие? Но они же самые лучшие, честно и добросовестно выполняют ваши приказы. Или может быть вы плохой руководитель? Или опыта обращения с мышкой не хватает?
Да нет, дело не в этом. А чтобы понять, в чем именно, нам придется углубиться в теорию дифференциальных уравнений.
Рассмотрим однозвенную систему управления. Управляющее воздействие, контролирующее производную нашего параметра, зависит от текущего значения этого параметра. Иными словами, мы имеем дело с дифференциальным уравнением \[\dot x=f(x)\] Здесь \(x=x(t)\) — функция, описывающая зависимость нашего параметра от времени, \(\dot x\) — её производная по времени. Как выглядит функция \(f(x)\)? Давайте для определенности считать, что целевым значением является \(x=0\). Если в какой-то момент \(x\) стал равен нулю, то мы уже достигли цели, и разумно сделать производную в этой точке также равной нулю. Если \(x\) положительно, то производная должна быть отрицательной, чтобы \(x\) уменьшился, причем чем больше \(x\), тем большей по модулю (и при этом отрицательной) должна быть производная. И наоборот, если \(x\) меньше 0, то производная должна быть положительной. Простейшая функция, удовлетворяющая этим свойствам, имеет вид \(f(x)=-x\). На самом деле, практически любая нужная нам функция будет очень похожа на эту, по крайней мере, пока значение \(x\) не слишком велико. (Это связано с фундаментальным фактом анализа: любая «хорошая», гладкая функция похожа на линейную в окрестности фиксированной точки.)
Таким образом, достаточно рассмотреть случай дифференциального уравнения \[\dot x=-x\] Семейство решений этого уравнения можно выписать явно, но оно нам сейчас не очень интересно. Нам важно следующее: состояние равновесия \(x=0\) является устойчивым. Иными словами, если мы возьмем стартовое значение \(x\), большее нуля, то со временем значение \(x\) станет уменьшаться и будет все ближе и ближе к нулевому. Наоборот, если \(x\) в какой-то момент меньше нуля, то со временем наша производная будет его увеличивать, причем все медленнее и медленнее по мере приближения к положению равновесия.
Система с отрицательной обратной связью и одним звеном управления (специалист по дифференциальным уравнениям скажет «с одномерным фазовым пространством») имеет устойчивое положение равновесия. Именно благодаря этому факту вам удается легко справиться с треугольником в первом примере.
Что изменится с появлением второго звена? Теперь управляющее воздействие задает не первую, а вторую производную, то есть ускорение. Принцип управления при этом остается прежним -- если значение целевого параметра слишком большое, надо давать подчиненному сигнал на уменьшение скорости, а если слишком маленькое — на увеличение (вряд ли можно придумать что-то другое). Дифференциальное уравнение принимает вид \[\ddot x=-x\] Вводя промежуточную переменную \(y\), обозначающую скорость, его также можно переписать в виде системы \[\begin{cases} \dot x=y\\ \dot y=-x \end{cases}\] Это уравнение хорошо знакомо из механики: оно описывает малые колебания маятника или шарика на пружинке (осциллятора), и называется уравнением гармонических колебаний. Его решением является периодическое движение типа \(x(t)=A\sin t\), где \(A\) — константа, задающая амплитуду колебаний. Природа этих колебаний вполне ясна (вы могли обнаружить их, играя со второй демкой выше): в тот момент, когда параметр проходит через целевое значение, он делает это с ненулевой скоростью, а управляющее воздействие при этом нулевое, и только после того, как он проскочит через искомое значение, к нему будет приложено ускорение, направленное в обратную сторону. Конечно, тождественно нулевая функция, при которой параметр равен целевому значению, и при этом никуда не двигается, также является решением. Будет ли оно устойчиво? И да, и нет.
Если отклонить осциллятор от положения равновесия, в идеальном случае он будет колебаться вечно, с амплитудой, равной величине исходного отклонения. Но при этом он не будет стремиться к положению равновесия. Говорят, что положение равновесия в этом случае устойчиво по Ляпунову, но не является асимптотически устойчивым.
На самом деле, конечно, наше уравнение не вполне точно описывает поведение настоящих шариков или маятников. В частности, в нём не учитывается трение. Если его добавить (это будет какое-то слагаемое, маленькое по сравнению с \(x\), например, \(x^2\)), со временем колебания будут затухать, и положение равновесия станет асимптотически устойчивым.
Однако, в задаче управления, добавление малых слагаемых, которые мы не учли в нашей приблизительной модели, может привести к тому, что положение равновесия перестанет быть устойчивым вовсе: размах колебаний со временем будет нарастать.
Какой сценарий будет реализован на практике? Модель не даёт ответа на этот вопрос, оставляя простор для реализации управленческих качеств начальника.
С трёхзвенной цепью управления, однако, ситуация гораздо более определенная. Наше уравнение принимает вид \[\dddot x=-x\] или, записывая эквивалентную систему, \[\begin{cases} \dot x=y\\ \dot y=z\\ \dot z=-x \end{cases}\] Чтобы исследовать такое уравнение (уже с трёхмерным фазовым пространством), нам придётся прибегнуть к помощи линейной алгебры. Запишем систему в матричном виде \[\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} \] Известно, что свойства нулевого положения равновесия зависят от собственных значений матрицы, стоящей в правой части, то есть корней характеристического многочлена. В нашем случае уравнение на собственные значения имеет вид: \[\lambda^3+1=0\] Оно имеет только один вещественный корень (-1), но нас интересуют также комплексные корни. Раскладывая на множители, имеем \[(\lambda^2-\lambda+1)(\lambda+1)=0\] комплексные корни имеют вид \[\lambda=\frac{1\pm i\sqrt{3}}{2}\] вещественная часть этих корней больше нуля.
Это означает, что в некоторой плоскости трёхмерного пространства траектории нашего уравнения будут иметь вид раскручивающихся спиралей. А значит положение равновесия не является устойчивым: даже если вы очень мало от него отклонитесь, со временем траектория не только не будет стремиться к положению равновесия, но и наоборот уйдёт от него достаточно далеко. На практике, вы никогда не можете добиться абсолютно точного попадания в положение равновесия (даже при очень точном «ручном управлении») — всегда будут небольшие отклонения (непредвиденные обстоятельства, неточность модели, множество разных причин). И никакой управленческий гений не сможет удержать параметр близким к целевому значению в течение длительного времени.
Трёхмерный фазовый портрет
Вот так выглядят траектории нашей системы в трёхмерном пространстве:
В центре находится положение равновесия, но приблизиться к нему надолго практически невозможно.
Аналогичной будет ситуация и с большим числом звеньев.
Модель, предложенная выше, очень проста, основана на самых очевидных соображениях, и разумеется реальное решение управленческих задач выглядит гораздо сложнее. Однако, именно благодаря своей простоте, эта модель является очень важной.
Из книги В. И. Арнольда «„Жесткие” и „мягкие” математические модели»
Многоступенчатое управление, описываемое нашей моделью при \(n\ge 3\), неустойчиво. Двухступенчатое управление приводит к периодическим колебаниям, но не вызывает катастрофического нарастания колебаний, происходящего при трех- и более ступенчатом управлении.
Настоящую устойчивость обеспечивает только одноступенчатое управление, при котором управляющее лицо более заинтересовано в интересах дела, чем в поощрении со стороны начальства.
Эти выводы, сделанные выше на основании анализа простейшей жесткой модели, на самом деле выдерживают проверку на структурную устойчивость, исключая лишь случай \(n=2\): двухступенчатое управление может оказаться как устойчивым, так и неустойчивым, в зависимости от деталей организации дела, которыми мы выше пренебрегли при составлении нашей самой простой модели.
Вспомните об этом примере, когда вы будете думать о таких вопросах:
P.S. Важнейший закон классической механики — второй закон Ньютона — имеет вид \(F=ma\), где \(a\) — ускорение, то есть вторая производная. Это соответствует нашему случаю двухзвенной управляющей системы, оказавшемуся «на границе устойчивости», посередине между строгим порядком (устойчивым положением равновесия в размерности 1) и неустранимым хаосом (неусточивостью в размерности 3). Есть в этом что-то удивительное, не правда ли?
P.P.S. Технические подробности о том, как рисовались картинки и видео к этому посту, можно найти здесь, код программы — в исходниках этой страницы.