2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Какие наиболее удобные программы моделирования механики?
Сообщение11.11.2007, 19:59 
Заблокирован


12/05/05

175
Krasnodar
Сборка на практике многих механических устройств требует значительных усилий. Интересно, какие существуют наиболее удобные прикладные программы моделирования механических устройств? Чтобы, не собирая на практике устройство, можно было взглянуть, как оно должно будет работать. И чтобы можно было для модели включать и отключать гравитационное поле.

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

Нужно, чтобы можно было создавать элементы: ось вращения, маятники, колёсики, силы трения во вращающихся механизмах можно регулировать, переключатели (в зависимости от положения включать и выключать жёсткое сцепление) и т.д.

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

Кто-нибудь такое встречал?

 Профиль  
                  
 
 
Сообщение13.11.2007, 15:05 
Аватара пользователя


29/05/07

562
Москва
Здесь такие имеются:
http://www.csoft.ru/catalog/soft/version_4779.html

 Профиль  
                  
 
 
Сообщение15.11.2007, 13:38 
Заблокирован


12/05/05

175
Krasnodar
Михаил Дмитриев, спасибо большое! Отличная программа!

Посмотрел цены


ADAMS/Solver Package
990 410 руб. / 1 414 870 руб. (Локальная лицензия / Сетевая лицензия).

ADAMS/SDK
7 098 000 руб.


Размышляю, как они просчитывают соударения сложных твёрдых тел. Тело можно разбить на множество частиц равномерно заполняющих объём тела. Каждая частица обладает параметрами (вектор скорости, масса и т.д.). Если сила действует на некоторую частицу твёрдого тела, такая сила оказывает влияние на все частицы твёрдого тела. Интересна закономерность влияния силы приложенной к некоторой точке объёмного сложного тела на каждую частицу твёрдого тела. Насколько сложно написать свою программку реалистично просчитывающую соударения 3-х мерных сложных тел, на Ваш взгляд?

 Профиль  
                  
 
 
Сообщение15.11.2007, 14:16 
Аватара пользователя


24/11/06
29
Германия
Если не нужно расчитывать соударения "сложных твердых тел", а нечто более простое, то можно посмотреть:

1. Matlab/Simulink + SimMechanics, http://www.mathworks.com/products/simmechanics/

2. ITI-SIM + SimulationX 2.0, http://www.iti.de/simulation/sim_d.htm

 Профиль  
                  
 
 
Сообщение04.12.2007, 09:57 
Заблокирован


12/05/05

175
Krasnodar
Уважаемый Schwungrad, спасибо большое!

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

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

В общем, ни то, ни другое, мне заполучить пока не удалось.


Думаю, как написать свою программку с простенькой визуализацией под OpenGL.

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

 Профиль  
                  
 
 
Сообщение04.12.2007, 19:01 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
Volodya писал(а):
Верно ли, что вектора скоростей всех частиц одного абсолютно твёрдого тела параллельны?


Конечно, нет. Если Вы хотите моделировать движение твёрдого тела, нужно хорошо разобраться в механике.

 Профиль  
                  
 
 
Сообщение04.12.2007, 21:26 
Аватара пользователя


24/11/06
29
Германия
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-х мерном пространстве, твёрдого тела. Каждая частица обладает массой, вектором скорости. Верно ли, что вектора скоростей всех частиц одного абсолютно твёрдого тела параллельны?


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

 Профиль  
                  
 
 
Сообщение06.12.2007, 01:19 
Заблокирован


12/05/05

175
Krasnodar
Спасибо большое, уважаемые друзья Someone, Schwungrad.

Может быть получится раздобыть Matlab. Но я не учусь на мех-мате.

У меня, к Вам, Schwungrad, возник вопрос по Matlab/Simulink + SimMechanics. Можно ли там самому создавать двухмерные детали желаемой формы, рельефа и задавать коэффициенты трения? Или там стандартный набор заранее предусмотренных механических деталей? Например, можно ли там смоделировать заводной механизм часов, состоящий из храповика и пружины? Или моделирование храповика там не предусмотрено?

Или можно смоделировать рельсу с зубчиками направленными в одну сторону, а поверх брусок с зубчиками в другую сторону?

Код:
    ____________
   |____________|
   / / / / / / /
/ / / / / / / / / / / / /
-------------------------


Если этот брусок толкать вправо, то он скользит, а если влево, то сцепляется зубчиками и не скользит.



Например, сложное тело, описанное массивом частиц летит и вращается относительно некоторой инерциальной системы координат ИСО1 без соударения с другими телами. У центра масс тела вектор скорости $\vec{v}$ постоянный.

Рассмотрим инерциальную систему отсчёта ИСО2 с тем же масштабом, что и у ИСО1, начало координат которой совпадает с центром масс тела. Скорость центра масс в ИСО2 равна 0. Вектор скорости каждой частицы $\vec{v}_{2i}$.

Получается, что в ИСО1 вектор скорости каждой частицы $\vec{v}_i = \vec{v} + \vec{v}_{2i}$.


Для твёрдого тела можно хранить координаты центра масс $\vec{M}$, суммарный импульс $\vec{P}$ относительно ИСО1, суммарный момент импульса $\vec{J}$ относительно ИСО2 и кватернион $\vec{Q}$ ориентации тела в пространстве. И хранить координаты частиц тела относительно ИСО2 без поворотов. А при расчётах, и отображении средствами OpenGL, умножать на матрицу поворота и сдвигать на нужный вектор.

Определить на C++ функцию


void Update(FLOAT dt)
{
...
}


dt - прирощение времени относительно предыдущего вызова Update. Например, если Update срабатывает каждые 0.001 секунд, то dt = 0.001. При реальной работе на компьютере dt не будет константой и будет тем меньше, чем мощнее компьютер.

Тогда задача ставится, найти новые значения $\vec{M}_{new}, \vec{P}_{new}, \vec{J}_{new}, \vec{Q}_{new}$, зная предыдущие значения $\vec{M}, \vec{P}, \vec{J}, \vec{Q}$ и величину dt.

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

Если выписать формулы для искомых величин, то нужно численно решать довольно сложные системы дифференциальных уравнений. Зато как интересно! И полезно вывести оценку роста погрешности вычислений с ростом dt. В идеале dt - бесконечно малая величина, характеризующая непрерывный процесс. Но обычные компьютеры ориентированы на дискретные алгоритмы, где dt уже совсем не бесконечно малая...

Размышляю, как эти дифференциальные уравнения лучше численно решать.

 Профиль  
                  
 
 
Сообщение07.12.2007, 14:19 
Заблокирован


12/05/05

175
Krasnodar
Нашёл ещё интересную программу

http://umlab.ru/download_rus.htm

Информация о статьях по моделированию механических систем

http://umlab.ru/publ_rus.htm


Я написал им письмо с вопросом: "Можно ли в Вашей программе смоделировать тело, которое в одну сторону скользит, а в другую нет, из-за специальных зубчиков?"

 Профиль  
                  
 
 
Сообщение10.12.2007, 18:32 
Аватара пользователя


24/11/06
29
Германия
Volodya писал(а):
У меня, к Вам, Schwungrad, возник вопрос по Matlab/Simulink + SimMechanics. Можно ли там самому создавать двухмерные детали желаемой формы, рельефа и задавать коэффициенты трения? Или там стандартный набор заранее предусмотренных механических деталей? Например, можно ли там смоделировать заводной механизм часов, состоящий из храповика и пружины? Или моделирование храповика там не предусмотрено?

Или можно смоделировать рельсу с зубчиками направленными в одну сторону, а поверх брусок с зубчиками в другую сторону?

Код:
    ____________
   |____________|
   / / / / / / /
/ / / / / / / / / / / / /
-------------------------


Если этот брусок толкать вправо, то он скользит, а если влево, то сцепляется зубчиками и не скользит.



Да, Володя, можно и такой храповичок. Лично я могу предложить, вероятно, не самый оптимальный вариант. Дело в том, что тулбоксы Matlab как раз развиваются в объектно-ориентированном направлении, т.е. за счет расширения набора готовых механических объектов (например, шарнир, планетарная передача и т.д.), из которых можно составлять модели. Возможно, что и храповики в виде объекта с красивой иконкой уже есть в SimMechanics или каком-либо другом тулбоксе. Я предлагаю Вам построение модели храповика только средствами Simulink version 7.

Здесь описана модель и сделаны короткие комментарии.

http://dima.balashov.googlepages.com/xrapovik.pdf

Если нужно, могу дать более развернутые комментарии к модели или саму модель.

Успехов!

 Профиль  
                  
 
 
Сообщение17.12.2007, 10:27 
Заблокирован


12/05/05

175
Krasnodar
Спасибо большое Schwungrad!

Нашёл я Matlab 7.5 + Simulink 7 + SimMechanics. В хелпе Матлаба нашёл описание отдельных компонент - Земля, шарнир и т.д. Почитал

>> help simulink

Но, как именно выстраивать дерево связей между телами, соединяя их компонентами, пока не совсем понятно. И как именно указывать параметры компонент и тел, например, массу, начальный угол поворота шарнира, начальное положение тела.

Если схема построена, то как её визуализировать?

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


Скачал я http://umlab.ru/publ_rus.htm версию Lite. Тут сразу понятно. Добавляем тела, телам устанавливаем параметры: масса, тензор инерции, графический образ и т.д. Затем тела соединяем силовыми компонентами в дерево связей: шарниры, специальные силы и т.д.
Включаем моделирование и в реальном времени наблюдаем за работой системы. Только в Lite версии урезаны возможности программирования сил в шарнирах, поэтому храповик у меня не получилось сделать. Можно задавать параметры (F0, c, x0, d, Q, w, a) для шарнира по координате x (аналогично для координат y, z):

F = F0 - c*(x - x0) - d*v + Q*sin(w*t + a),

где

x - шарнирная координата;
v - скорость изменения координаты;
t - время;
F0 - постоянная составляющая силы/момента;
с - коэффициент жёсткости для упругой составляющей;
d - коэффициент демпфирования для диссипативной составляющей;
w, a - частота и начальная фаза гармонического силового возмущения;
Q - амплитуда силового возмущения.


Я задал большое значение d и трение в обе стороны стало большим. Но чтобы сделать храповик, нужно

if(v >= 0) d = 0; else d = infinity;

infinity - обозначение бесконечности. Такое условие в версии Lite, похоже, сделать неполучится.


Я хочу, чтобы понять работу SimMechanics, сначало, например, сделать обычный маятник и видеть, как он качается.
Схематично: тела Земля и точка не нулевой массы соедидены шарниром, длинна плеча маятника не нулевая. Точке сопоставлена сфера в 3D, шарниру сопоставлен параллелепипед. А плечу сопоставлен усечённый циллиндр. Думаю, как это сделать.

 Профиль  
                  
 
 ITI-SIM; SimulationX 2.0
Сообщение26.06.2008, 17:15 


26/06/08
1
Germany
Студенческую версию программы SimulationX (Student Edition) можно скачать здесь: http://www.simulationx.com/site/441/default.aspx
Предприятия и ВУЗы могут скачать для ознакомления на четыре недели бесплатную полную тест-версию программы SimulationX на нашей интернет-странице: (Evaluation Version) http://www.simulationx.com/site/316/default.aspx

Процесс работы с программой SimulationX показан в видео-роликах (по несколько минут) по Web-адресу:
http://www.simulationx.com/site/305/default.aspx -
(„Getting started“ (Быстрый старт), „Hydraulic Cylinder“ (Гидропривод), „Automotive Powertrain“ (Автомобиль­ный привод), „Thermal Fluid Modeling“ (Теплообменник), „MBS Modeling“ (3D- модель)).

Методы работы с программой ITI-SIM для сравнения можно посмотреть в видео-роликах по адресу:
http://www.iti.de/viewlet/tutorial_d.htm

 Профиль  
                  
 
 
Сообщение06.02.2009, 18:53 
Заблокирован
Аватара пользователя


25/07/06

38
Москва
советую использовать отечественные программы

Эйлер и "Универсальный механизм"

наличие отечесмтвенных разработчиков - у которых можно что-то узнать - ОЧЕНЬ важно

Достучаться до импортных разработчиков практически не реально

 Профиль  
                  
 
 
Сообщение09.02.2009, 14:04 
Заблокирован
Аватара пользователя


25/07/06

38
Москва
но программы - это всего лишь инструмент в руках инженера...

если знания есть - инструмент "полезен"

если знаний нет - инструмент "вреден"

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: photon, profrotter, Парджеттер, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group