ailev.ru

10 декабря 2015 · Комментарий

Без заголовка

Пример неожиданного поведения: Лет десять или двенадцать назад написал пример (еще на Delphi) MLP управляющего моделью реверсивного маятника. Это такая тележка, которая может двигаться влево или вправо. Цель - удержаться около нуля и удержать вертикально стержень закрепленный на тележке. Т.е. если стержень падает влево, нужно уехать с ускорением влево, выправив маятник и аккуратно вернуться в ноль. Обучали управляющий MLP учителем, т.е. сперва человек пытался уравновесить маятник, формировал набор управляющий воздействий в фазовом пространстве модели. MLP аппроксимировал эту таблицу и ему передавали управление. MLP нашел неожиданное решение. Когда маятник уходил далеко влево и тележке не хватало ускорения чтобы его поднять (или получался очень большой уход от нуля X), маятник резко дергался в право, т.е. ускорял падение маятника. Модель отрабатывала отскок маятника и дальнейший переход его кинетической энергии в потенциальную приводил к переходу маятника в вертикальное положение. Получалось очень экономичное решение. Ни один оператор-человек так не делал. В чем баг: Штрафа за падения маятника не было. Были штрафы за dX и dFi.

К записи · К обсуждению