Система управления обратным маятником
Для создания анимационной модели обратного маятникаиспользуем библиотеку SimMechanics модуля Simulink пакета Matlab.Эта библиотека позволяет создавать динамические модели механических систем с учетом массовых и инерционных характеристик звеньев. Библиотека содержит модули для создания элементов механических систем, их соединений, сенсоры - датчики угловых и пространственных координат элементов, актуаторы – компоненты для управления перемещениями элементов.
Библиотека SimMechanics включает в себя следующие разделы:
∙ Bodies – физические тела с массой и инерцией,
∙ Joints – подвижные соединения с заданным числом степеней свободы и возможностью моделировать трение,
∙ ConstraintsandDrivers – неподвижные соединения с заданным числом степеней свободы,
∙ Actuators and Sensors – актуаторы и датчики,
∙InterfaceElements – преобразование трехмерного движения в сигналы Simscape,
∙ Utilities – другие полезные элементы.
В SimMechanics существует трехмерная абсолютная неподвижная координатная система, которая называется World. Гравитация в мировой системе координат по умолчанию действует вдоль оси 𝑦. По умолчанию вектор сил тяжести установлен как для механизма, расположенного на горизонтальной опорной поверхности с нулевыми углами наклона относительно гравитационной вертикали, и имеет вид [0 –9.81 0] (Рис.15.1). При необходимости изменения направления данного вектора во время моделирования он может быть подан на вход блока MachineEnvironment как векторный сигнал Simulink (для этого необходимо поставить флажок в поле Input gravity as signal, Рис.15.1).
Рис.15.1. Установка параметров механического моделирования.
В модели SimMechanics может быть задано множество других координатных систем. Связи между объектами модели описываются как связи между их координатными системами.
Неподвижные тела в SimMechanics называются Ground. С каждым неподвижным телом автоматически связывается соответствующая неподвижная система координат.Каждая модель должна иметь по крайне мере одно неподвижноетело, с которым соединен блок MachineEnvironment для настройки параметров модели (гравитации, параметров решателя и т.д., Рис.15.1).
Подвижные тела в SimMechanics называются Body и имеют массу 𝑚 и тензор инерции 𝐽. Положение подвижного тела задается в мировой системе координат. С подвижным телом может быть связано несколько подвижных систем координат. В SimMechanics подвижные сочленения (соединения) называются Joint– они добавляют одну или несколько степеней свободы между двумя телами.
Соединения могут быть вращательными (RevoluteJoint) и поступательными (PrismaticJoint). Каждое подвижное соединение может быть использовано как источник информации о своем состоянии - угле поворота, позиции и т.д.
В модели маятника выбрана правая система координат, ось Y направлена вертикально вверх, основание движется вдоль оси X, маятник вращается вокруг оси Z.
Настройки тела Body1 показаны на Рис.15.2.
Рис.15.2. Настройка параметров блока Body1.
Земля и Body1соединяютсяэлементом PrismaticJoint, обеспечивая одну поступательную степень свободы телуBody1 (Follower- последователь) относительно земли. Ось, вдоль которой может при этом двигаться тело-последователь, должна быть указана на вкладке Axes окна настройки блока (Рис.15.3) в виде вектора [X Y Z]. Для того, чтобы увеличить или уменьшить количество дополнительных портов блока, служит поле Numberofsensor/actuatorports. При числе дополнительных портов, равном нулю остаются два обязательных порта B и F. Дополнительные порты могут использоваться для подключения к шарниру виртуальных датчиков (Sensors) и возбудителей движения (Actuators) из раздела Sensors&Actuators.
Рис.15.3. Настройка параметров блока Prismatic
Вращательное соединение с одной степенью свободы (элемент Revolute) соединяет основание маятника и подвижную массу – сам маятник. Блок обеспечивает одну вращение вокруг оси Z, заданной на вкладке Axes окна настройки блока (Рис.15.4) в виде вектора [X Y Z], аналогично блоку Prismatic.
Рис.15.4. Настройка параметров блока Revolute.
В качестве задаваемых параметров блока Body выступают:- масса тела (Mass) (Рис.15.5), которая может быть выражена в различных единицах (имеется выпадающий список, по умолчанию стоят килограммы); тензор инерции тела относительно его центра масс (Inertia), представляющий собой матрицу размером 3х3для массы 2.49кг, длины 1м и радиуса 1см:
где Jix, Jiy, Jiz, – осевые моменты инерции тела относительно осей собственной локальной системы координат, связанной с его центром масс. Декартовы координаты характерных точек, связанных с телом (Originpositionvector [xyz]). В частности, обязательно должны бытьуказаны координаты центра тяжести тела CG и точки приложения внешних сил и моментов.
В колонке Translatedfromoriginof указывается имя системы координат характерной точки, от начала которой отсчитываются координаты текущей характерной точки. Как минимум одна характерная точка (любая, в том числе это может быть и центр тяжести тела CG) должна быть задана в системе координат WORLD либо в системе координат ADJOINING. Это необходимо, чтобы связать данное тело с соседними неподвижными или подвижными телами. Система координат WORLD – это инерциальная неподвижная система, связанная с Землей, а система координат ADJOINING связана с шарниром, присоединенным к телу (с той частью шарнирного сочленения, которая жестко связана с рассматриваемым телом).
Рис.15.5. Настройка параметров блока Body.
Полная модель маятника показана на Рис.15.6 и состоит из элементов Ground – неподвижного крепления маятника, призматического соединения PrismaticJoint, основания Body1, Revolute – соединения основания с маятником, Body – собственно подвижного маятника. Элемент Revolute имеет отдельный информационный выход (количество дополнительных выходов может быть задано в параметрах блока), который подключен к элементу JointSensor, извлекающего из механического сигнала SimMechanics информацию о положении и скорости подвижного тела.
Рис.15.6.Модель обратного маятника в Simulink.
Для наблюдения за состоянием вращательной степени свободы установим в компоненте Revolute параметр Numberofsensor/actuatorports в 1 и подключим к информационному порту блок Scope через компонент JointSensor, Рис.15.7.
Рис.15.7. Схема измерения угловой координаты.
Особенность компонента JointSensor в том, что выходной угол ограничен интервалом [-180, 180] градусов, что приводит к разрывной кривой на блоке Scope (Рис.15.8).
Рис.15.8.Разрывная кривая на блоке Scope.
Для устранения этого эффекта необходимо использовать блок ContinuousAngle из библиотеки SimMechanics/Utilities. Этот блок превращает угловые координаты из интервала [-180, 180] в координаты неограниченного диапазона. Для работы блока необходимо также значения угловой скорости, для этого выберем в параметрах JointSensorAngular velocity и снимем Outputselectedparametersasonesignal. Включение этого блока показано на Рис.15.7.
В результате блок Scope даст непрерывную кривую изменения угловой координаты маятника, Рис.15.9.
Рис.15.9. Корректное отображение угловой координатымаятника.
Чтобы стабилизировать положения маятника в вертикальном положении, присоединим к собранной модели ПИД регулятор. Все компоненты актуаторов и сенсоров в SimMechanics работают с относительными координатами. Нужно добиться стабилизации маятника около угловой координаты 0 по JointSensor.
Окна настроек JointSensor и JointActuator показаны на Рис.15.10, Рис.15.11.
Рис.15.10. Настройка параметров блокаJointSensor.
Рис.15.11. Настройка параметров блокаJointActuator.
Маятник – это система с отрицательным коэффициентом усиления: приложение силы в положительном направлении приводит к опрокидыванию маятника назад. Поэтому ПИД-регулятор должен быть включен просто между сенсором и актуатором, инициирующим движение основания маятника, как показано на Рис.15.12.
Рис.15.12. Включение ПИД-регулятора для стабилизацииположения маятника.
Чтобы стабилизировать маятник, ПИД-регулятор должен толкать каретку в ту сторону, в которую он наклонен. Введем значения коэффициентов ПИД – регулятора: Proportional: 10, Integral:0,Derivative: 0. Начальное положение маятника задается блоком JointInitialCondition из раздела SensorsandActuators. Его настройки показаны на Рис.15.13.
Рис.15.13. Настройкаблока Joint Initial Condition.
Рис.15.14. Результат моделирования системы с замкнутойобратной связью.
Рис.15.15. Результат симуляции модели обратного маятника.
Меняя начальное значение угла отклонения маятника изучить пределы устойчивости системы управления. Выполнить симуляцию процесса стабилизации маятника.