РУС ENG

Кафедра «Электропривод и Автоматизация Промышленных Установок»

Арафат Али Альемраят

Реферат


Тема магистерской работы:
«Моделирование сложных механических систем в пакете DYMOLA/MODELICA»

1 Введение

2 ОСНОВНАЯ ЧАСТЬ

  • Пакет Open Modelica
  • моделирование Робота
3 ЗАКЛЮЧИТЕЛЬНАЯ ЧАСТЬ
  • Выводы
4 ЛИТЕРАТУРА

1 Введение

Пакеты физического мультидоменного моделирования многими специалистами считаются более перспективными инструментами для исследования технических систем. Во-первых, они используют форму125 задания исходной информации, которая гораздо ближе и понятнее специалистам в предметных областях. Во-вторых, исследователь избавлен от необходимости проводить структурные преобразования модели, с тем чтобы перейти к структуре направленных блоков. И, наконец, большинство современных пакетов физического моделирования не только допускают использование направленных блоков, но и могут сопрягаться с классическими пакетами структурного моделирования, например, с Simulink. Первоначально пакеты физического моделирования разрабатывались для моделирования электрических и электронных схем. Структура таких схем проще, чем механических. Каждая энергетическая связь содержит лишь две переменные – ток и напряжение. Именно поэтому современные пакеты компьютерного моделирования и анализа схем электронных устройств, такие, как Multisim, являются наиболее развитыми и отработанными. Для нас представляют интерес пакеты, способные моделировать, прежде всего, механическую часть мехатронной системы, как наиболее сложную с точки зрения формирования математической модели и с точки зрения численного интегрирования и визуализации результатов, такие как пакет Modelica и Dymola. Modelica представляет собой среду визуального моделирования, включающую универсальный объектно-ориентированный язык Modelica для моделирования сложных физических систем и собственно инструментальные средства, такие как пакеты Dymola или MathModelica. Язык Modelica, наряду с ASCEND, Smile, VHDL-AMS и др., относится к группе так называемых некаузальных языков, т. е. языков физического моделирования. Как и во всех рассматриваемых пакетах, в Modelica используется компонентный принцип задания исходной информации об исследуемой системе, однако используемые компоненты имеют не входы и выходы, а выводы, или контакты, как правило, имеющие ясный физический смысл. Это делает пакет привлекательным для специалистов нематематического профиля и более простым для понимания и использования в целом. Modelica имеет хорошую техническую поддержку со стороны производителя, для нее существует большое количество библиотек готовых компонентов. Постоянно происходит как дополнение уже существующих библиотек, так и разработка новых, охватывающих многие отрасли науки. Пакет Dymola «modelica», поддерживающий язык моделирования Modelica, является комплексным инструментом для моделирования и исследования сложных систем в таких областях, как мехатроника, автоматика, аэрокосмические исследования и др. Возможность объединения в одной модели компонентов различной физической природы позволяет строить модели сложных систем, лучше соответствующие реальности, и получать более точные и прозрачные результаты. Стандартная библиотека Dymola включает элементарные компоненты, относящиеся к электротехнике, механике, гидравлике и т. д. Специализированные библиотеки содержат модели устройств и явлений для конкретной области. Например, MultiBody Library содержит трехмерные механические компоненты, предназначенные для моделирования роботов, искусственных спутников Земли или транспортных средств. Это модели твердых тел, шарниров, источников и средств анимации. Такие же библиотеки разработаны для электротехники, гидравлики и т. п. Гибкость и открытость пакета Dymola дают пользователям возможность создавать свои собственные библиотеки моделей, описывая их на внутреннем языке описания блоков, или модифицировать уже существующие модели под свои конкретные нужды. Кроме собственного языка, Dymola (Modelica) поддерживает интеграцию с такими программными средами, как Fortran, С, Simulink, и некоторыми др. Возможность взаимодействия разработанных моделей с системой MATLAB/Simulink позволяет объединить сильные стороны структурного и физического моделирования. .

2 ОСНОВНАЯ ЧАСТЬ

Пакет Open Modelica

Пакет OpenModelica предлагает пользователю две разновидности интерфейсов – менее требовательную к ресурсам консоль с минимально необходимым набором команд и интерактивный иерархический «блокнот» в стиле знаменитой системы Mathematica. Последний еще достаточно «сырой», но вполне пригоден для изучения системы. Большими почитателями Modelica являются автомобильные производители – Toyota использует инструментальное ПО, поддерживающее Modelica-моделирование (увы, этой двуязычной тавтологии не избежать), фактически во всех проектных подразделениях, а модель дизельного двигателя, созданная в этой компании для проектирования электронных систем управления, можно отнести к настоящим шедеврам моделирования. Конструкторы BMW «обкатывают» с помощью Modelica-инструментария различные варианты автоматических трансмиссий, в том числе и модификации уже существующих моделей на основе HIL-технологии – реальная автоматическая коробка передач дополняется компьютерной моделью и изучается поведение результата. Scania исследует с помощью Modelica энергетическую эффективность шасси своих тяжелых грузовиков, Ford – модели электромобилей и гибридных машин. Кроме автомобильной промышленности, которая в силу специфики может затрачивать на инженерию огромные средства (автомобиль ведь один из самых дорогих предметов массового спроса), на «калькуляторах», основанных на Modelica, считают в промышленной робототехнике, аэрокосмической индустрии и, конечно, в «оборонке». В общем, список можно продолжать долго. Достаточно сказать, что популярность Modelica столь высока, что один из лидеров «тяжелого» CADостроения (Computer Aided Design), Dassault Systemes, в середине 2006 г. объявила о стратегических планах поддержки Modelica-моделирования в основном своем продукте – CAD CATIA. Modellica – это на самом деле сразу несколько явлений из самых разных областей человеческой деятельности. Во-первых, Modelica – это ассоциация, объединяющая юридические и физические лица. Сразу следует заметить – ассоциация принципиально неприбыльная и негосударственная, но все же весьма европейская – большинство ее участников представляют наиболее промышленно развитые страны Европы. Цель ассоциации – разработка и популяризация спецификаций языка моделирования Modelica. За весьма непродолжительный по меркам крупного проекта срок – 10 лет, спецификации Modelica успешно доведены до третьей редакции и, естественно, доступны всем желающим. Во-вторых, естественно, Modelica – это спецификации, полуторамегабайтовый pdf-документ, содержащий описание весьма специфического языка, описание, достаточное для реализации инструментальных средств на его основе «www.modelica.org/documents/ModelicaSpec30.pdf» В-третьих, Modelica – это, собственно, очень интересный и во многом очень необычный язык программирования и набор библиотек. И наконец, в-четвертых. В каком-то смысле Modelica – это и инструментальные средства, созданные на основе спецификаций. Их немало. Но из всего перечня следует выбрать самую доступную реализацию – полностью открытую и бесплатную, OpenModelica. Пусть она не самая лучшая, не самая полная и не лишенная множества «болячек», но у нее есть два важных достоинства – она доступна (причем для разных платформ), и предлагает потенциальному пользователю не только инструментарий, но и адекватное потребностям самоучки сообщество. Кроме того, и сам проект OpenModelica остро нуждается в пользователях, хоть бы и в начинающих. Если бросить взгляд на оглавление спецификаций, Modelica в чем-то похож на обычные императивные объектно-ориентированные языки – тут есть и выражения, и классы, и наследование, и функции. Но. Основой языка является непривычное для программиста и столь любезное математику-прикладнику «уравнение» (equation). Соответственно, общепринятый в языках программирования символ операции присваивания «=» здесь имеет принципиально иной смысл. Modelica-язык можно охарактеризовать в общепринятых терминах, определяющих свойства машинных языков. Во-первых, Modelica – представитель класса декларативных языков. Класс этот, мягко говоря, не обширен, а уж «чистому» программисту и вообще знаком разве что понаслышке. Принципиальное отличие декларативного языка от прочих (будь то императивных или функциональных) – описание не способа решения задачи, а самой задачи. Впрочем, мы это отличие уже показали в первой части статьи примером Hello World – запись дифференциального уравнения ни в коей мере не является записью программы его решения. Во-вторых, Modelica – объектно-ориентированный язык, в котором классами реализовано все, включая встроенные типы данных. В-третьих, Modelica не соответствует представлениям «пуристов» о декларативности – несмотря на мощные (и основные для класса решаемых задач) механизмы декларативного программирования, язык более чем неплохо поддерживает и императивную, и функциональную технику, и наконец, сверхвысокоуровневое программирование. Последнее, несмотря на сходство с декларативным стилем, заслуживает нескольких слов. Так как в мире системного моделирования заслуженным и бесспорным даже не лидером, а эталоном является пакет MATLAB, приближение к уровню его языка – обязательное условие успеха любой системы моделирования. В Modelica сверхвысокоуровневый синтаксис используется при описании матричных и скалярных операций (т. е. в той области, где в полной мере этот синтаксис нужен). Иными словами, в Modelica вы оперируете матрицами и многомерными массивами с теми же свободой и минимальными затратами символов, которые дают более традиционные языки при работе со скалярными переменными. Правда, в отличие от MATLAB в Modelica массивы строго типизованы – это означает, что во время исполнения количество измерений Modelica-массивов не может изменяться (потому как оно определяет тип), а конкретное значение каждого измерения – динамически изменяемая величина. Таким образом, Modelica позволяет оперировать скалярными величинами (количество измерений равно 0), векторами (количество измерений равно 1, вектор-строка и вектор-столбец не различаются), матрицами (количество измерений равно 2) и массивами с произвольным числом измерений – все это строго определенные фундаментальные типы языка. К слову, о типах. Их система в Modelica реализована в полном соответствии с теорией Абади–Карделли. Теперь следует поговорить об отклонениях от принятых смыслов. Самых фундаментальных. Следует понимать, что объектная ориентация в Modelica, несмотря на «пронизывающий», сквозной характер, относится, по большому счету, исключительно к структурированию моделей. Забудьте о «передаче сообщений» между объектами, о динамическом создании объектов – это все из иных миров. И еще один важный нюанс – в терминах Modelica принято говорить не об экземплярах класса (объектах), а о «компонентах» (components). Итак, класс языка Modelica.«www.Modelica.org/tools.shtml»»
Ничего принципиально «взрывного» в синтаксисе его описания любой программист, знакомый практически с любым ОО-языком, не найдет. Так, класс описывается в более чем традиционной форме (и это замечательно): class имя_класса объявления equation уравнения end имя_класса ; Самое интересное же – семантика производных от класса class типов. В их небольшом списке непосредственно относящимися к предметной области (решению задач моделирования) являются connector, model и block. Так как по сути это ключевые понятия Modelica и для понимания их придется выходить за рамки сугубо «программно-языковой» области, ознакомимся с ними подробнее. Рассмотрим специализированный класс connector. Объекты реального мира, которые мы собираемся моделировать, характеризуются возможностью взаимодействия, и для изучения многих систем, образованных объектами, при ряде допущений справедливым оказывается предположение «точечного», локального взаимодействия объектов (речь, конечно, идет не о математически абстрактной точке). Например, электронную цепь образуют разные компоненты – резисторы, конденсаторы, транзисторы etc, а точками взаимодействия в такой цепи являются выводы компонентов. Или, как их часто называют на инженерном сленге, – коннекторы. Класс сonnector в Modelica как раз и предназначен для моделирования точек взаимодействия физических объектов, выводов компонентов и т. д. Так как все эти сущности не обладают никакой функциональностью, класс connector в Modelica принципиально не может содержать секции описания уравнений, т. е. является сокращенной, ограниченной разновидностью общего class (ранее в терминологии Modelica специализированные классы, такие как connector, принято было называть ограниченными, restricted). Единственная возможность, которую дает класс connector, – описание переменных, измерение (наблюдение) которых доступно в моделируемой системе в данной точке взаимодействия. Например, в электронной схеме, какими бы ни были образующие ее элементы, в любой точке взаимодействия (т. е. на любом выводе элемента) можно фактически измерить две величины – ток и напряжение. Значение тока измеряется «в сечении проводника», т. е. – непосредственно в точке взаимодействия, напряжение же характеризует точку взаимодействия относительно некоторой («общей») точки. Эта разница между измеряемым в точке (потоковым) и относительно другой точки (потенциальным) – фундаментальна, а для описания физических величин различной природы, различающихся таким «нюансом» в Modelica, предусмотрено специальное ключевое слово – префикс flow (поток, измеряемый в точке). Теперь мы можем описать некоторую типовую точку взаимодействия (вывод, контакт) в электронной схеме и заодно ознакомиться с еще одним специфическим типом: type U = Real(unit="V") type I = Real(unit="A") connector P U vp ; flow I ip ; end P; Итак, наш пример начинается с двух вполне C-подобных по стилю строк, в которых объявлены два новых типа – напряжения U и ток I. На самом деле в этих строках мы создали два объекта специализированного класса type, позволяющего создавать новые типы единственно возможным методом – уточнением встроенных типов. Таким образом, новый тип U (напряжение) – по сути, тот же базовый Real, но с уточненной единицей измерения, обозначаемой символом V. Тип I отличается от него, очевидно, единицей измерения – A. И наконец, мы объявили тип P – точку взаимодействия, характеризующуюся двумя величинами – напряжением vp и током ip, при этом явно указали с помощью префикса flow, что ток ip измеряется в самой точке (по умолчанию наблюдаемая в точке взаимодействия величина в Modelica считается потенциальной).«www.Modelica.org»»
Modelica. Итак, мы задали необходимые типы и построили модель точки взаимодействия электрической цепи. Теперь попробуем построить модель некоторого элемента с двумя выводами – не конкретного резистора-конденсатора-индуктивности, а двухвыводного элемента вообще (в теории цепей именуемого двухполюсником). Это построение знакомит нас с преимуществом сочетания объектно-ориентированного структурирования и декларативного программирования: partial class TwoTerminates P p1, p2 ; U dv ; I ithru; equation dv = p1.vp – p2.vp ; 0 = p1.ip + p2.ip ; ithru = p1.ip ; end TwoTerminates; В этом примере минимум незнакомых понятий. Частично определенный класс (class с префиксом partial) содержит не все уравнения, необходимые для решения задачи моделирования объекта – этим он в чем-то похож на абстрактные классы традиционных объектно-ориентированных языков. В секции объявлений данного класса мы объявили два «вывода» моделируемых устройств (p1 и p2), разницу (падение) напряжений на их выходах (dv) и ток через устройство (ithru). В секции уравнений фактически записаны общие для любых двухполюсных элементов фундаментальные законы Кирхгофа (падение напряжения на двухполюснике равно разности напряжений на его выходах, разность втекающего в двухполюсник и вытекающего из него токов равна нулю). Наконец, мы располагаем всем необходимым, чтобы создать целый арсенал моделей, отличающихся, по сути, только моделирующими уравнениями. Самый простой элемент электронных схем – преобразователь электрической энергии в тепло, резистор, моделируется следующим Modelica-кодом: class R "модель идеального резистора" extends TwoTerminates ; parameter Real Resist(unit="Ohm") "Номинал" ; equation Resist*ithru = dv ; end R; Здесь мы использовали аналог наследования, указав, что новый класс R «расширяет» (extends) класс TwoTerminates, и детально описав, чем именно «расширяет» – параметром Resist, значением сопротивления моделируемого резистора и известным со школьной скамьи уравнением – законом Ома (падение напряжения dv на резисторе равно произведению протекающего через него тока ithru на сопротивление Resist). Учтите, что ключевое слово parameter указывает и на специфическое, «с отклонениями от правил Modelica», поведение символа «=» в выражении. Аналогично, расширением базового класса «двухполюсник» TwoTerminates можно описать модели конденсатора (назовем ее нехитро – C), катушки индуктивности (L) и источника энергии, например источника напряжения (Usupp, источник напряжения – идеальное устройство, напряжение на выходах которого не зависит от сопротивления подключенной нагрузки), они будут отличаться только значением и размерностью номинала и уравнением. Ну а теперь с помощью тех же самых механизмов языка можно перейти от разрозненных моделей к моделируемой схеме и показать, как на самом деле «работают» точки взаимодействия (класс connector) и зачем: class Scheme1 "очень важная схема" R r01; R r02; R r03; C c01; C c02; L l01; Usupp VS01; equation connect(VS01.p1, r01.p1); connect(VS01.p1, r02.p1); connect(VS01.p1, c01.p1); ... end Scheme1; В этом «примере» все понятно и без объяснений. В сегменте объявлений класса Scheme1 теперь фактически перечень материалов, необходимых для «сборки» схемы – три резистора r01- r02, два конденсатора с01- с02, одна катушка индуктивности l01 и один источник напряжения VS01. В языковых терминах – это экземпляры объектов соответствующих классов. А вот в сегменте уравнений появляется нечто новое – так называемое «соединительное уравнение», connect equation. Схема собрана. Остается только запустить ее на исполнение, и все остальные заботы инструментарий Modelica возьмет на себя. Кто изучал теорию цепей, тот понимает, насколько велика разница между таким описанием схемы и традиционным путем формирования системы уравнений с последующим их решением машинными методами.

моделирование Робота

Этот механизм имеет 6 степеней роботы свободы с планированием пути ( рис 1), контроллеров, двигателей, тормозов, механизмов и механики. Это подробная модель робота. Мы переводим и моделируем с настройками по умолчанию ( время моделирования по умолчанию = 3 s), переходные процессы показано на рис 2 и 3 .

    Робота состоает из следующих элементов:

  1. axisType
  2. Bus
  3. Path Planning




      рисунок.1- FullRobotR3



      рисунок.2 График момента



      рисунок.3 График угловой скорости и скорость вращения

      3 ЗАКЛЮЧИТЕЛЬНАЯ ЧАСТЬ

      Выводы

      На данной стадии исследования можно сделать следующие выводы: Dymola – лаборатория динамического моделирования, предназначенная для моделирования физических моделей. Она включает в себя наборы библиотек для работы с математическими, электрическими и механическими системами, а также библиотеку для моделирования тепловых процессов. Dymola использует объектно-ориентированный подход программирования, что позволяет удобнее создавать модели и быстрее осуществлять их расчет. В Dymola поддерживается графическое отображение процессов, 3D анимация, симуляция в реальном времени, возможность использования моделей, созданных в Dymola, в других программах для моделирования, например, таких как MatLab. Пакет Dymola (Dynamic Modeling Laboratory), поддерживающий язык моделирования Modelica, является комплексным инструментом для моделирования и исследования сложных систем в таких областях, как мехатроника, автоматика, аэрокосмические исследования и др. Возможность объединения в одной модели компонентов различной физической природы позволяет строить модели сложных систем, более соответствующих реальности, и получать более точные результаты. Кроме собственного языка, Dymola (Modelica) поддерживает интеграцию с такими программными средами, как Fortran, С, Simulink, и некоторыми др. Возможность взаимодействия разработанных моделей с системой MATLAB/Simulink позволяет объединить сильные стороны структурного и физического моделирования. Modelica представляет собой среду визуального моделирования, включающую универсальный объектно-ориентированный язык Modelica для моделирования сложных физических систем и собственно инструментальные средства, такие как пакеты Dymola или MathModelica. Modelica имеет хорошую техническую поддержку со стороны производителя, для нее существует большое количество библиотек готовых компонентов. Постоянно происходит как дополнение уже существующих библиотек, так и разработка новых, охватывающих многие отрасли науки. Моделирование сложных механических систем в пакете Dymola и Modelica имеет ряд преимуществ по сравнению с другими программами. Например, в механике там выбор больше чем в MatLab, переходный процесс получаем быстрее и лучше, размер модели меньше чем в MatLab. Однако, как мы уже отмечали ранее, Dymola и Modelica используются всеми развитыми странами в моделировании. В Украине пока только знакомятся с данной программой моделирования, но нет сомнений в том, что в будущем ее непременно будут использовать при моделировании.

      4 ЛИТЕРАТУРА

      1. http://www.Modelica.org
        Modelica.
        Домашняя страница Modelica.

      2. http://www.Modelica.org/tools.shtml
      3. http://www.actsolutions.it
        Инструменты Modelica.
      4. Dierk Schroder. ElektrischeAntriebe – Regelung von Antriebssystemen. Technische Universitat Munchen
      5. . J. McPhee, C. Schmitke, S. Redmond. Dynamic modelling of mechatronicmultibody systems with symbolic computing and linear graph theory. Mathematical and Computer Modelling of Dynamical Systems, 10(1): 1– 23, 2004.
      6. Michael Tiller wrote the first book on Modelica with the title "Introduction to Physical Modeling with Modelica" (May 2001).
      7. Peter Fritzson - "Principles of Object-Oriented Modeling and Simulation with Modelica 2.1" (November 2003)


      Творческая биография Реферат Библиотека Ссылки
      Отчет о поиске Индивидуальное задание

      Arafat
      ДонНТУ Портал магистров ДонНТУ В Начало