Настройка Wi-Fi

Механическая модель. Уменьшая скорость роста энтропии вселенной

Механическая модель. Уменьшая скорость роста энтропии вселенной

    Нужно отметить, что для каждого вашего проекта в приложении “Симуляция кинематических механизмов” рекомендуется заранее сформироватьотдельную директорию. Потом,внутри этой директории, по ходу анализа, будет сформирована еще одна вспомогательная директория – так называемаяПапка симуляции (рис.4). Внутри этой папки симуляции по ходу анализа система расположит несколько вспомогательных файлов (рис.5). В общем, весь проект нужно хранить в отдельной директории.

    В самом начале проекта вам придется построить статическую сборку будущего механизма. То есть, все детали будущего механизма должны располагаться друг относительно друга так, как это имеет место в реальном механизме (рис.2). При этом, естественно, навсе детали предварительно вам придется наложитьограничения сборки (рис.6).

    После построения статической сборки вы должны обязательно сохранить построенную сборку обычным способом. Это будет нашим первых сохранением !! Позднее, мы выполним и второе сохранение.

Два режима работы в процессе анализа

    После построения и сохранения статической сборки вы должны впервые перейти из режима (из приложения)Моделирование в режим (в приложение)

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

    • И в режиме Моделирование

      И в режиме Симуляция кинематических механизмов

То есть, в процессе работы вы сможете неоднократно переходить и возвращаться из одного режима другой.

    Как только вы окажетесь в режиме Симуляция кинематических механизмов , вы сразу обратите внимание на новые инструментальные панели (рис.7).

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

Преобразование ограничений сборки в кинематические пары

    Наверное вы помните, что в кинематике отдельные детали механизма связываются между собой с помощью кинематических пар , илисвязей типа:вращательный шарнир, цилиндрический шарнир, сферический шарнир, ползун и др.

    Поэтому, после того, как вы перейдете в режим Симуляция кинематических механизмов, вам придется преобразовать существующиеограничения статической сборки вкинематические пары , илисвязи . Если же в своё время вы не создали ограничений сборки, то сейчас кинематические пары вам придется создавать самостоятельно на пустом месте.

    Позже вы узнаете, что преобразование ограничений статической сборки вкинематические пары выполняется автоматически или вручную. В самых первых несложных примерах мы будем выполнять это преобразование вручную. Но в ситуации, когда ограничений сборки много (50 штук и более, рис.8), можно воспользоваться и автоматическим преобразованием. Правда потом придется некоторые кинематические пары перепроверить!

Посты, описывающие работу с другими подсистемами, в соответствии с жизненным циклом системы:
1. этот пост;
2. ;
3. ;
4. .

Для того, чтобы создать этот материал, использовалась среда МАТЛАБ версии 2013b.
===

Рубрика "ликбез" всплывала довольно давно. И, несмотря на то, что на Хабре посты собирают гораздо больше просмотров (и даже находятся настолько заинтересованные, что комментируют и уточняют), я таки продолжу публиковать свои заметки здесь.

Напомню, "ликбезы" - это про то, как что-то делать в MATLAB/Simulink. Предыдущие посты (доступны по ) были действительно ликбезными, но руками в них делалось не так много, как мне хотелось бы. Исправлю это.

Из этого поста мы узнаем, как создать механическую модель элерона. В конце поста можно найти видеоролик, в котором показано всё то, о чем говорится в посте. Сам же пост подойдет в качестве инструкции к действию: используя его, можно не спеша повторить всё, о чем говорится в ролике. Для этого потребуются следующие материалы:
- модель элерона в SimMechanics .
Рекомендую исследовать пост .

Моделируемая система выглядит так, как показано на рис. 1.

Рис. 1. Моделируемая система.

Элерон должен поворачиваться на определенный угол. Чтобы поворачивать элерон, механическое соединение может сжиматься и расширяться. Система должна вращаться относительно двух точек, чтобы такое движение было возможным. Мы планируем создать модель механической системы в Simulink, используя продукт SimMechanics.

Модель которую мы хотим создать, представлена на рис. 2.

В результате работы мы должны получить трехмерную анимацию движения элерона по желаемой траектории.

SimMechanics находится в разделе Simscape в библиотеке блоков Simulink.

Мы будем создавать модель заново, начав с пустого окна Simulink. Во-первых, я должен определить гравитацию.

В блоке Mechanism Configuration я задам вектор силы тяжести, направленный против оси Y. ".

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

Для этого пригодится блок World Frame.

Цилиндр может вращаться относительно одного из концов. Чтобы определить эту степень свободы, я использую блок Revolute Joint.


Чтобы описать цилиндр, шток и другие компоненты мы используем библиотеку заранее созданных и параметризованных компонентов.

Блок, описывающий цилиндр, создан из базовых блоков SimMechanics. Мы можем определять точки соединения, геометрическую форму, задавать форму тела в MATLAB. Здесь же задается масса тела, визуальные свойства.

SimMechanics использует более сложную технологию моделирования, чем в обычный Simulink. Чтобы получить доступ к необходимым настройкам, я использую блок Solver Configuration.


Обновим диаграмму и запустим исполнение модели. Видно, что цилиндр качается, как математический маятник. (Ссылка на видео с момента, когда это видно).

Теперь добавим к модели шток с поршнем. Шток перемещается поступательно относительно цилиндра. Чтобы определить эту степень свободы я использую бок Prismatic Joint.


Элерон вращается относительно штока. Добавим блок, описывающий элерон. Скопируем блок Revolute Joint, чтобы определить еще одну степень свободы системы. Соединим эти блоки.

Чтобы задать форму элерона используется метод General Extrusion (принцип описания модели напоминает технологический процесс выдавливания; подробно описан в документации SimMechanics). Можно увидеть, как выглядят данные MATLAB, описывающие форму элерона. Эти данные используются для описания формы в нашем случае.

Известно, что элерон вращается относительно фиксированной в пространстве точки. Чтобы определить эту степень свободы, я снова использую блок Refolute Joint. Чтобы определить точку, относительно которой происходит вращение, я использую блок Rigid Transform. Это преобразование координат дает нам возможность определить связь между общей системой координат и системой координат, связанной с точкой, относительно которой вращается элерон.

Обновим диаграмму. Можно видеть (ссылка на момент в видео, в котором это можно видеть) три компонента, которые мы только что определили. Исполнив модель, мы заметим, что элерон снова качается как маятник. Видно, что элерон совершает одно колебание. Можно посмотреть на это под другим углом. Также можно изменить, например, цвет фона анимации, чтобы сделать ее нагляднее.

Итак, сейчас у нас есть механическая модель элерона. Было бы полезно наблюдать реакцию системы, например, на виртуальных осциллографах Simulink. Чтобы наблюдать угол, на который отклоняется элерон, откроем параметры блока соединения и активируем пункт position (положение - то, что мы хотим наблюдать). Теперь у блока появился дополнительный порт - выход, на который подается угол отклонения элерона. Нужно преобразовать этот физический сигнал в обычный сигнал Simulink, чтобы отобразить его на виртуальном осциллографе Simulink. Определим единицу измерения величины - градусы. Вернемся в библиотеку Simulink, найдем раздел Sinks, выберем блок виртуального осциллографа (Scope) и поместим его в модель.

Видео с записью демонстрации:

Сергей Афонин, Наталья Григорьева, Александр Иноземцев, Дмитрий Троицкий

Если верить журналу CADalyst, 74% пользователей САПР работают с AutoCAD различных версий. Поэтому вопрос о назначении и, главное, о промышленном применении «автокадовского» трехмерного моделирования касается очень и очень многих. А вопрос этот, честно говоря, весьма неоднозначный.

Общение с заинтересованными лицами - конструкторами и разработчиками САПР - позволило выявить две большие группы претензий, предъявляемых к 3D-моделированию AutoCAD в его исходном, без дополнительных модулей, варианте (версии 14 и 2000).

Конструктор, работающий на обычном машиностроительном заводе: «А зачем мне все это нужно? Создание 3D-модели гораздо более хлопотно, чем вычерчивание ее проекций, и у меня просто нет на это времени. Визуализация? Но я и так прекрасно себе представляю, как выглядит моя конструкция. Расчет объема и массоинерционных характеристик? Для серьезных приложений он не годится, а объем подавляющего большинства деталей ни мне, ни технологу знать не нужно».

Разработчик САПР: «3D-моделирование в AutoCAD неполноценное, модели практически невозможно модифицировать, отсутствует ряд важных функций. Или ставьте Mechanical Desktop, или переходите на тяжелые САПР».

Сразу надо заметить, что установка того же Mechanical Desktop не снимает претензий конструктора, так как они относятся к 3D-моделированию вообще. Вот почему на одном из предприятий мы наблюдали следующую картину: MD был с помпой установлен, а ровно через две недели тихо снесен - не понравился по вышеназванным причинам.

Что же получается? Несмотря на все усилия разработчиков, 3D-моделирование, похоже, остается очень специфическим средством для решения действительно сложных задач, а средний конструктор как рисовал в AutoCAD версии 10 проекции, так и рисует их до сих пор, только теперь уже в AutoCAD 2000. Для такого положения дел есть как минимум одна объективная причина. При широком применении оборудования с ЧПУ создание трехмерной модели становится неотъемлемым этапом подготовки производства - ведь по ней разрабатывается управляющая программа. Увы, в условиях российской действительности автоматизированное оборудование, потихоньку стареющее и выходящее из строя, редко применяется в основном производстве, а выпуск новых станков с ЧПУ упал чуть ли не до нуля. Отсутствие полноценной интеграции подготовки производства и самого производственного процесса - главный сдерживающий фактор в массовом переходе от проекционных чертежей к трехмерным моделям изделий.

Итак, зачем же нам в нынешних условиях «автокадовская» трехмерка? Обидно осознавать, что столь мощное средство пока не нашло должного применения в промышленности, тем более что оно встроено в систему и по умолчанию доступно всем пользователям AutoCAD начиная с 12-й версии. Размышления на эту тему привели к формулировке класса конструкторских задач, которые, с одной стороны, постоянно встречаются в общем машиностроении, а с другой - прекрасно решаются 3D-средствами AutoCAD. Речь идет о проектировании механизмов с самоустанавливающимися элементами (МСЭ).

МСЭ присутствуют, пожалуй, в любой мало-мальски сложной машине независимо от ее назначения. В таких механизмах подвижные детали и узлы не имеют собственного привода, а перемещаются под действием сопряженных деталей или упругой силы пружин. Сюда относятся замки, защелки, захваты, фиксаторы - словом, все те наборы подпружиненных железок, которые должны что-то схватить и удержать. Мы видим их каждый день - на двери автомобиля, в замке квартиры, в приводе раздвижных дверей лифта, - не задумываясь о том, чего стоит проектирование каждого такого механизма.

Задача проектирования МСЭ нелюбима конструкторами в первую очередь в силу своей неопределенности. Геометрию деталей можно менять в широких пределах, но как узнать заранее, будет ли конструкция выполнять все задуманные движения и защелкивания? Увы, по сей день наиболее часто применяющийся способ проверки - ручная прорисовка (!) положений деталей с заданным шагом и затем анализ полученных кадров.

Вид конструктора Тульского патронного завода, который в течение недели в масштабе 10:1 отрисовывал 50 кадров, потряс нас до глубины души. Проектировался типичнейший МСЭ - захват автоматической роторной линии по производству спортивно-охотничьих пуль (рис. 1). Захват состоит из двух подпружиненных губок и толкателя, установленного на роторе в подпружиненном гнезде. При его вращении круглая заготовка, находящаяся на другом роторе, нажимает на губку сбоку, отжимает толкатель с губками, проходит мертвую точку, затем, отжимая губку в сторону, заходит внутрь и защелкивается второй губкой. Если заготовку перекосит и захват заклинит, последствия могут быть самыми печальными - усилие на роторе доходит до двух тонн (в цехе мы видели вал ротора в руку толщиной, скрученный в спираль в результате заклинивания).

Поскольку частая смена выпускаемых изделий даже в таком массовом производстве стала насущной необходимостью, мы поставили перед собой задачу автоматизировать проектирование МСЭ при помощи того средства автоматизации, которое есть на каждом предприятии, - AutoCAD 14. Разумеется, первой идеей было блеснуть эрудицией и предложить вырезать шаблоны из картона и обводить их (более продвинутый вариант - перемещать проекции контуров деталей в графическом редакторе AutoCAD). Идея была отвергнута по ряду причин: во-первых, не удавалось добиться нужной точности (захваты промышленного оборудования проектируются с точностью до 0,01 мм), во-вторых, трудоемкость снижается ненамного, в-третьих, реальные детали имеют сложный профиль по толщине, а плоский шаблон часто не позволяет смоделировать их перемещение, и, наконец, никак не автоматизируется ответ на главный вопрос: «заклинит - не заклинит?» Отметим, что вопрос «удержит - не удержит?» в данном случае оказался неактуальным из-за малой массы заготовок - усилия пружин с запасом хватало для их удержания.

Построение математической модели захвата и расчет траектории деталей методами аналитической геометрии и теоретической механики были отвергнуты сразу же: существует слишком много вариантов конструкции захвата с совершенно разной геометрией губок, каждый из которых потребовал бы отдельной модели. Да и сложность такой модели, связанная со сложностью геометрии захвата (рис. 2), даже для плоского случая превышала разумные пределы. Задача оставалась нерешенной, а конструкторы продолжали заниматься поистине сизифовым трудом, чертя кадрики.

Вот тут-то и пригодилась «автокадовская» трехмерка! Возникла следующая идея: по определению в самоустанавливающемся механизме детали принимают то или иное положение в результате соприкосновения с другими деталями. Таким образом, если 3D-модель перемещать, подбирая такое ее положение, в котором она касается сопряженных поверхностей, и делать это с заданным шагом, то можно с любой требуемой точностью промоделировать работу МСЭ. Сразу же решилась и задача «заклинит - не заклинит»: на каждом шаге нужно проверять, по скольким поверхностям базируется заготовка и какова суммарная величина пятна контакта (и губки, и заготовка могут иметь сложный профиль в вертикальной плоскости, поэтому высота пятна контакта вовсе не равна высоте губки). Зная массу заготовки, шероховатость поверхности и коэффициент трения, легко найти минимально необходимую площадь ее соприкосновения с зажимом, гарантирующую отсутствие перекосов. Дополнительным условием можно ввести требование базирования заготовки либо по двум поверхностям достаточной высоты, либо по трем поверхностям, которое также легко проверяется.

Собственно процедура отслеживания касания двух твердотельных моделей основывается на операции их пересечения (команда INTERSECT). Если в результате такой операции образуется новое тело, то выполняется откат, детали перемещаются с некоторым шагом и процесс повторяется. При этом шаг перемещения можно, например, каждый раз делить пополам, что позволяет достигать любой заданной точности позиционирования. Используя язык математики, можно сказать, что решается задача минимизации объема тела, являющегося пересечением двух других тел.

Разумеется, вся процедура выполняется программным путем. Мы использовали AutoLISP, но подойдет и Visual Basic, и ActiveX. Для любопытных приводим текст функции, проверяющей два трехмерных объекта на пересечение:

(DEFUN checkint (e1 e2 / obj ret)

; Проверка пересечения трехмерных объектов e1 и e2

; Возвращаемое значение: T или NIL

(COMMAND “UNDO” “MARK” “INTERSECT” e1 e2 “”)

(SETQ obj (SSGET “X”))

(IF (/= obj NIL)

(SETQ ret (NOT (AND (= (SSMEMB e1 obj) NIL)

(= (SSMEMB e2 obj) NIL))))

(COMMAND “UNDO” “BACK”)

Volodya писал(а):

Пытался скачать триальную версию Matlab/Simulink + SimMechanics, но на сайте разработчиков, после заполнения форм, сообщили, что позволят скачать в случае, если у них самих возникнет желание, тогда они сами свяжутся.

Да. Они, как правило, дают скачивать SimMechanics, если у Вас уже имеется лицензия Матлаба...

Если Вы с мех-мата, то очень вероятно, что там имеются студенческие лицензии Матлаба. Дело в том, что Матлаб, беру смелость это заявить, наиболее распространенный и универсальный на сегодняшний день пакет программ прикладной математики, как в академической среде, так и на производстве (например, на нашем заводе). SimMechanics это, так называемый, тулбокс - расширение ядра по определенной тематике. Кроме механики существуют штук 20 тулбоксов, например, обработка сигналов, статистика, оптимизация и тд. Каждый тулбокс снабжен стандартным графическим интерфейсом, позволяющим создавать модель нужной архитектуры, работая мышью. Именно, нужно перетягивать нужные иконки используемых обьектов в рабочеее поле и определять "входы" и "выходы" обьектов. Каждый из тулбоксов может приобретаться опционально, в зависимости от конкретных потребностей.

Справедливости ради, замечу, что SimMechanics - относительно свежий тулбокс (впервые появился года 3 назад), т.е., скорее всего, не обладает такой стабильностью, как, например, Simulink, существующий уже целую "вечность".

Лично я использую Матлаб в 2-х ситуациях. Во-первых, если нужно проверить новый алгоритм или метод, то Матлаб позволяет без лишней суеты программировать в С стиле. Плюс к этому в пакет встроены оптимизированные векторные операции (BLAS), линейная алгебра (LAPACK) и очень продвинутый интерфейс визуализации 2-3D диаграмм. Во-вторых, когда возникает необходимость использовать в нашей программе разнообразные математические функции, то компиллятор (это своего рода тулбокс Matlab Compiler) позволяет скомпилировать файлы программы Матлаб (m-files) в DLLину. Mathworks разрешает 3-м лицам пользоваться такой DLLиной бесплатно (не нужна дополнительная лицензия).

Если программа Матлаб с тулбоксами нужна не в коммерческих целях, то могу заметить, что этот софт очень распространен среди частных пользователей в России, т.е. его относительно несложно приобрести.

Volodya писал(а):

На сайте разработчиков ITI-SIM + SimulationX 2.0 я не нашёл ссылок для скачивания триальной версии.

Я намеренно дал ссылку, т.к. это более дешевая альтернатива ADAMS. Впрочем, если нужно, как было написано вначале, расчитывать соударения тел сложной формы, то не уверен, что ITI-SIM или Матлаб помогут. Сама по себе 3-D модель удара - это целая отдельная сложная наука.

Volodya писал(а):

Например, задан массив частиц, в виде точек в 3-х мерном пространстве, твёрдого тела. Каждая частица обладает массой, вектором скорости. Верно ли, что вектора скоростей всех частиц одного абсолютно твёрдого тела параллельны?

Нет, т.к. тело может вращаться, мгновеннная ось вращения...