четверг, 12 мая 2011 г.

Лабораторная работа №6 (пробное задание)

В этой работе предлагается использовать связку SimMechanics и Solidworks для построения модели механизма и синтеза управления согласно варианту.
Необходимо:
- начертить (в упрощенном виде) модель механизма согласно варианту в SolidWorks,
- использовать SimMechanics Link для трансляции модели SolidWorks в SimMechanics,
- промоделировать механизм в SimMechanics и убедиться в адекватности моделирования,
- добавить в модель актуаторы и реализовать управление, как это было сделано в лабораторных работах №4 или №5 (на выбор).



1. В качестве примера рассмотрим моделирование в SimMechanics перевернутого маятника. Для этого вычертим в SolidWorks его условную модель. Не будем подробно останавливаться на создании деталей и сборки в SolidWorks, полагая, что этот процесс известен и документирован.

Перевернутый маятник состоит из трех элементов: основания (деталь MyBase)



подвижной каретки (деталь MyPrism), которая движется поступательно относительно основания (для простоты мы не будем вычерчивать ролики, каретка будет просто скользить без трения)



и закрепленного на каретке маятника (деталь MyStick), который может совершать круговые движения



Сборка этих элементов выглядит следующим образом:



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


2. Для того, чтобы экспортировать сборку SolidWorks в модель SimMechanics необходимо:
- установить SimMechanics Link,
- активировать SimMechanics Link в SolidWorks,
- сохранить сборку в .xml файле,
- импортировать .xml файл в SimMechanics
Рассмотрим этот процесс более подробно.

2.1 SimMechanics Link не входит в стандартную поставку MATLAB, поэтому его необходимо скачать на сайте Mathworks. Ссылки для скачивания доступны после регистрации на сайте. Также необходимо выбрать версию SimMechanics Link согласно версии установленного MATLAB.

После скачивания .zip архива и файла install_addon.m, необходимо положить их вместе в одной папке, и сделать ее в MATLAB-e текущей (выбрать как Current Folder в главном окне). После этого необходимо ввести в консоле команду:
install_addon('имя_скачанного_архива.zip')

В результате, после установки, будут выведены сообщения об успешной установке SimMechanics Link.

2.2 Для запуска SimMechanics Link необходимо в MATLAB-е ввести команду:
smlink_linksw
В результате будет запущена фоновая программа, осуществляющая связь MATLAB и SolidWorks.

После необходимо запустить SolidWorks и выбрать в меню Tools/Add-Ins (в русской версии -- Инструменты/Добавления...) и далее в списке поставить две галочки где SimMechanics Link.


2.3 Для экспорта модели из SolidWorks используется два типа файлов: .XML и .STL, которые сохраняются совместно из SolidWorks, если вызвать в меню: File/Save as... (в русской версии Файл/Сохранить как...) и выбрать Тип файла: SimMechanics Link (*.xml).
В файле .XML сохраняется информации собственно о сборке (расположение и связи деталей), в .STL -- информация о каждой детали.

2.4 Для импорта сборки SolidWorks из .xml-файла в SimMechanics необходимо сделать папку с .xml и .stl-файлами текущей в MATLAB-e (выбрать как Current Folder в главном окне) и выполнить в командном окне MATLAB:

mech_import('имя_файла_xml_без_расширения')

В результате будет автоматически создана модель в Simulink из элементов библиотеки SimMechanics.




3. Запустим моделирование в Simulink и убедимся, что система работает адекватно.

При открытии модели автоматически появится окно трехмерной визуализации, в которой модель будет выглядеть так же, как и в SolidWorks



Для наблюдения за состоянием вращательной степени свободы, установим в компоненте Revolute параметр Number of sensor / actuator ports в 1 и подключим к информационному порту осциллограф через компонент Joint Sensor.

Особенность в том, что выходной угол компонента Joint Sensor ограничен интервалом [-180, 180] градусов, что приводит к разрывной кривой на осциллографе



Для устранения этого эффекта необходимо использовать блок Continuous Angle из библиотеки SimMechanics/Utilities. Этот блок превращает угловые координаты из интервала [-180, 180] в координаты неограниченного диапазона. Для работы блока необходимо также значения угловой скорости, для этого выберем в параметрах Joint Sensor Angular velocity и снимем Output selected parameters as one signal. Соберем схему измерений как показано ниже:



В результате на осциллографе имеем непрерывную кривую изменения угловой координаты маятника




4. Решим задачу стабилизации положения маятника в точке начального положения.

Следует заметить, что все компоненты актуаторов и датчиков в SimMechanics работают с относительными координатами, и нулевые значения координат соответствуют положениям как это было изображено на чертеже. Поэтому добиваясь стабилизации маятника около угловой координаты 0 по Joint Sensor -- мы стабилизируем его состояние в наклоненном виде в соответствии с чертежом.

Также заметим, что маятник -- это система с отрицательным коэффициентом усиления: приложение силы в положительном направлении приводит к опрокидыванию маятника назад. Поэтому ПИД-регулятор должен быть включен просто между сенсором и актуатором как показано на рисунке:



Очевидно, что чтобы держать маятник в наклоненном положении, ПИД-регулятор должен толкать каретку в ту сторону, в которую он наклонен. Мы не рассматриваем процесс настройки ПИД-регулятора, просто введем коэффициенты Proportional: 10; Integral: 0; Derivative: 0. В результате получаем стабилизацию положения около нуля:



На видео анимации этот процесс очень нагляден.

Поведение маятника без обратной связи:


Поведение маятника с обратной связью:




Архив с файлами проекта SolidWorks и MATLAB

1 комментарий:

  1. Будьте добры, у меня вопрос возникает когда читаю эту статью. Сможете ли вы мне объяснить подровнее об относительных координатах в SIMMECHANICS, пожалуйста.
    Cпасибо Вам огромное.

    ОтветитьУдалить