PSim enviroment


PSim Enviroment
Общая информация
Установка программы
Скачать
Настройка программы
PSim explorer
PSim engine
Демо-проекты

















 


PSim Enviroment
 PSim Explorer

 
Работа в PSim Explorer

 1. Геометрическая пространственная модель


     Первым шагом является создание пространственной 3-х мерной геометрической модели в каком либо из пакетов пространственного твердотельного проектирования. Для этого возможно использование многочисленного на сегодня программного обеспечения: AutoCad, AutoDesc Inventor, SolidWorks – выбор велик. Главное – полученная модель должна быть сохранена в формате VRML 97 (VRML 2.0). Если механическая система проста, то можно использовать подходящий VRML редактор (например VRBuilder, он входит в поставку MatLab вместе с Virtual Reality Toolbox).
     В дальнейшем, возможно система PSim будет работать с другими форматами, текущая версия 0.45a R1.0 поддерживает только VRML 2.0 , да и то с некоторыми ограничениями.



Требования к исходному VRML файлу модели
  • Только текстовой формат (сжатый gzip не поддерживается)
  • Поддерживаемые примитивы Box, Sphere, Cylinder, Indexed Faceset.
  • отсутствие тэгов USE и PROTO
  • ограниченная длина строк (<255 символов в строке)
  • для правильного текстурирования в объектах типа Indexed Faceset должна иметься информация о нормалях
  • ...
     Данному описанию соответствуют файлы, создаваемые при помощи SolidWorks и VRBuilder, при помощи которых и создавались все модели.

 

2. Структура PSim Explorer


        Главное окно PSim Explorer выглядит так:



Пункты главного меню:
Project – управление проектом
  New
  Open
  Save
  Properties
  Exit
     Тут вроде все понятно. Проект можно сохранить для последующей работы с ним.



Проект
Каждый проект состоит из собственно файла проекта (*.prj), файлов объектов, находящихся в поддиректориях /obj и /models по отношению к положению файлу проекта . Поэтому обязательно сохраняйте каждый новый проект в новой директории!!!

Models – работа с объектами и параметрами моделирования
   Import – импорт объектов
   Enviroment – настройки параметров среды моделирования PSim Engine
   Rendering - настройки параметров визуализации.
     Теперь подробнее о каждом из них.

Import – для текущей версии PSim Explorer только из файла формата VRML 2.0.




Добавить в список

Удалить из списка
Очистить список

Импортировать выделенный файл

Коэффициент масштабирования рои импорте (некоторые программы создают VRML файл с размерами в мм или в см, для модели в PSim желательно все величины использовать в СИ)

     Enviroment – настройки параметров среды моделирования PSim Engine




Здесь определяются составляющие силы тяжести, действующей на все тела модели, соответственно по осям X, Y и Z.




Система координат
     Необходимо сказать пару слов о системе координат, которая применяется в PSim. По умолчанию она выглядит так:

     Т.е. ось Y определяет направление верх-низ, а ось Z – вперед-назад. Может это и выглядит несколько странно, но данное расположение осей давно стало стандартом de-facto во многих системах компьютерной графики (в том числе DirectX и VRML)
     Тогда gX=0, gY=-9.81, gZ=0 определяет нормальную земную силу тяжести, направленную вниз.



Error reduction parameter. При моделировании динамики многомассовой механической системы из-за неточностей численного решения возникают ошибки при расчете положения и ориентации тел, соединенных сочленениями. Эти ошибки могут приводить к т.н. «дрейфу» сочленения или к тому, что в какой либо момент времени соединение «разрушается». Для исключения этого эффекта к телам прикладываются дополнительные силы для стабилизации их положения друг относительно друга. Величина этих сил контролируется error reduction parameter, значение которого может лежать в пределах 0...1. Рекомендуемые значения 0.1 ... 0.8 (при нулевом значении ERP коррекция не производится, значение ERP = 1 не рекомендуется, т.к. возможны ошибки при вычислении).


Constraint force mixing. В классическом виде сочленение описывается следующим уравнением:
J * v = c
где v – вектор скоростей тел, J – матрица Якоби. На основании этого  уравнения рассчитывается вектор lambda , а в соответствии с ним и силы, действующие на тела, находящиеся в сочленении
force = JT * lambda
В системе PSim сочленения описываются таким образом:
J * v = c + CFM * lambda
где CFM – квадратная диагональная матрица. При помощи CFM возможно получение таких эффектов, как model tire slip, suspension, soft ground и др.
Таким образом, решение для  lambda:
(J M-1 JT + CFM/h) lambda = c/h
CFM модифицирует диагональ исходной системной матрицы, что в ряде случаев повышает устойчивость и точность решения.


Размер величины шага по времени, с. Если включена опция Real time – величина начального шага.

Тип решателя. Standard Solver имеет большую точность, но меньшую скорость. Fast Solver производит расчет текущего шага на основе нескольких предыдущих, он  быстрее, чем Standard Solver, но имеет меньшую точность. Уравнения движения получаются на основе «Lagrange multiplier velocity based model»  по методу Trinkle/Stewart and Anitescu/Potra. Контактная модель основана на Dantzig LCP solver.




При включенной опции расчет динамики не производится для тел, состояние которых близко к состоянию покоя.


Порогом отключения просчета динамики является величина DF. Рекомендуемые значения 0.001 ... 0.05.

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

При выключенной опции расчет коллизий не производится и колизионные модели не создаются.

Обмен данными с внешним приложением. NO_IO – обмен отсутствует. DLL – обмен с динамической библиотекой, спецификация обмена описана далее. MATLAB – обмен данными с Matlab’ом.

Определяет имя библиотеки для обмена данными. Она должна располагаться в директории программы.


3. Модели в PSim Explorer 


     В Закладке Models расположены средства оперирования моделями. Под моделью (Model) в PSim подразумевается  объект, описывающий каждое конкретное тело механической пространственной модели, а именно – его геометрию, параметры его визуализации, физические параметры, положение и др. Таким образом, Model является основным структурным элементом PSim, описывающим реальное физическое тело. Редактирование параметров и свойств модели производится при помощи редактора моделей (Model editor). Модели в Model editor импортируются из VRML файлов.
     Каждая новая модель создается на основе каждой {geometry} исходного VRML файла. В настоящее время поддерживаются следующие типы {geometry}: Box, Sphere, Cylinder, Indexed Faceset. При этом положение и ориентация модели рассчитываются так-же из {Transform} для соответствующих {geometry} исходного VRML файла.



Стандартные примитивы
К стандартным примитивам относятся модели на основе следующих {geometry} исходного VRML файла: Box, Sphere, Cylinder.

          Каждая модель описывается следующей структурой:


Название и номер модели. Номер используется при создании сочленений

Параметры обмена данными с другим приложением

Параметры модели

Параметры визуализации модели

Физические параметры модели

Параметры геометрии модели. Геометрия используется при визуализации и для колизионной модели
      



Удалить
все модели    
Удалить
текущую
модель

Обновить
дерево
моделей    
Изменить, пересчитать
положение модели
Просмотреть
текущую
модель
Редактировать текущую
модель

       С версии 0.45а R1.2 для редактирования свойств модели существует расширенный редактор:




Параметры модели


Тип геометрии обьекта (на основе VRML описания)

Свойства геометрии обьекта (для стандартных примитивов):
  • Для Box: X,Y,Z - размеры по соответствующим осям
  • Для Sphere: Radius - радиус
  • Для Cylinder: Radius-радиус, Height- высота

Тип модели


Тип модели
Renderable - Модель только отрисовывается, физика и коллизии для такой модели не просчитываются. Используется для элементов "оформления".
Render&Body - Модель является физическим объектом, однако не участвует в расчете столкновений. Используется для моделирования физических тел, когда не нужен просчет коллизий.
Render&Geom - Модель участвует в расчете столкновений, но не является физическим телом. Предназначен для моделирования "идеальных препятствий".
Render&Body&Geom - Модель является как физическим объектом, так и участвует в расчете столкновений.

Видимость модели

Определяет, будет ли на модель действовать сила тяжести

Режим статического тела: модель зафиксирована в начальном положении и не меняет его при любых воздействиях. Используется для создания неподвижной основы для присоединения остальных моделей


Физические параметры модели


Масса тела

положение центра масс по отношению к положению тела (относительное).


Центр масс
      Особенностью этой версии программы является необходимость того, чтобы положение центра масс относительно мировой системы координат (МСК) совпадало с положением центра тела в МСК, то есть относительное положение центра масс всегда было {0,0,0}.
     Если система состоит только из тел, задаваемых стандартными примитивами и не содержит моделей на базе Indexed Faceset, то данное условие выполняется. Если же в состав системы входят модели на основе Indexed Faceset, то для обеспечения условия COMrel={0,0,0} необходимо воспользоваться
 
Окно имеет следующий вид:



Source position (Abs) - Исходное положение тела (МСК)
Destination position (Abs) - Требуемое положение тела (МСК)
COM position (Abs) - Положение центра масс (МСК)
Source position (Rel) Положение центра масс (относительно положения центра тела)
•    Изменение положения тела:
- Задать новое положение тела  (Destination position (Abs))
- Set Position
•    Изменение (задание) положения центра масс тела:
- Задать положение центра масс (МСК) (COM position (Abs))
- Position to COM
      При этом новое положение тела (МСК) будет совпадать с требуемым положением центра масс (МСК). Это обеспечит относительное положением центра масс {0,0,0}. В пространстве же тело останется в том же месте, так как при Изменении (задании) положения центра масс тела будет произведен пересчет координат всех вершин Indexed Faceset.

Положение по отношению к абсолютной (мировой) системе координат (МСК). Определяется автоматически из соответствующего VRML файла.

Кватернион, определяющий ориентацию. Определяется аналогично.

Тензор инерции, матрица 3х3, определяющая инерциальные свойства тела.


Создать Тензор инерции на основе стандартных примитивов.



Параметры примитивов.



Параметры визуализации модели


Цвет объекта. R,G,B определяют соответственно красную, зеленую и синюю составляющую, А – прозрачность. Диапазон изменения 0...1.

Имя файла текстуры. Поддерживаются форматы bmp.... Рекомендуемый размер текстур 128x128, 256x256.
Все текстуры должны быть расположены в поддиректории \textures по отношению к файлу *.sim – используемому PSim Engine.

Определяет тип наложения текстуры. WT_CYLINDER, WT_SPHERE, WT_FLAT, WT_NONE, WT_CHROME. Если используется WT_NONE или не задана текстура, цвет объекта соответствует заданному в параметре <COLOR>.


Параметры обмена данными с другим приложением

      Если выставлен любой из флажков – это означает, что значение соответствующего параметра  либо будет задаваться внешним приложением: Add Body Force – приложить к телу внешнюю силу /3 составляющих fx,fy,fz/, Add Body Torque - приложить к телу внешний момент /3 составляющих mx,my,mz/ ), либо значение будет передаваться внешнему приложению (Get Body position – положение тела /x,y,z/, Get Body Quaternion – ориентация тела /qs,qx,qy,qz/, Get Body linvel - линейная скорость /vx,vy,vz/, Get Body angvel – угловая скорость /wx,wy,wz/...

Шаг 4. Сочленения (Joints) в PSim Explorer

Модели, для которых включен расчет физики могут объединятся между собой при помощи различных сочленений. Редактирование параметров и свойств сочленений производится при помощи редактора  (Joint editor):



Добавить новое сочленение

Удалить все сочленения

Удалить текущее сочленение (оно должна быть предварительно выделено)

Каждое сочленение описывается следующей структурой:


Тип сочленения.

Название сочленения. В состав включены названия моделей, входящих в него. Модели, соединяемые сочленениями, должны обязательно  быть физическими телами

Активность

Номера моделей, входящих в сочленение.

Дополнительные параметры.

Параметры обмена данными с другим приложением

В текущей версии PSim Enviroment реализованы следующие типы сочленений:


BSJOINT - сферический шарнир.
Имеет 3 степени свободы (вращательные).
Основной параметр:
  • ANCHOR - координаты точки соединения тел.


HINGE - ....
Имеет 1 степень свободы (вращательная).
Основные параметры:
  • ANCHOR - координаты точки соединения тел,
  • AXIS - ось вращения, должна задаваться вектором единичной длины



HINGE2 - ...
Имеет 3 степени свободы (2 вращательные и 1 поступательная).
Основные параметры:
  • AXIS1 - ось вращения и поступательного движения, должна задаваться вектором единичной длины,
  • AXIS2 - ось вращения для 2-й вращательной степени свободы, должна задаваться вектором единичной длины,
  • ANCHOR - точка соединения


SLIDER - поступательное соединение.
Имеет 1 степень свободы (поступательная).
Основные параметры:
  • AXIS - ось поступательного движения, должна задаваться вектором  единичной длины.


UNIVERSAL - карданный шарнир.
Имеет 2 степени свободы (вращательные).
Основные параметры:
  • AXIS1 - ось вращения для 1-й степени свободы, должна задаваться вектором единичной длины,
  • AXIS2 - ось вращения для 2-й степени свободы, должна задаваться вектором единичной длины.



FIXED - неподвижное соединение.
Положения и ориентации моделей фиксированы друг относительно друга. Используется для взаимного закрепления объектов.
Следует избегать частого использования FIXED joints, а задавать тела одной моделью.



Дополнительные параметры <LIMIT>



Дополнительные параметры сочленений
      В текущей версии PSim Enviroment реализована поддержка дополнительных параметров для следующих типов сочленений: HINGE, SLIDER.




 
Нижняя и верхняя границы (пределы) изменения положения моделей в сочленении. Для SLIDER - это пределы перемещения вдоль поступательной оси, для HINGE - пределы изменения угла поворота вокруг оси вращения (в радианах),  для остальных не реализованы. Положение (угол поворота) сочленение рассчитываются относительно положения в начальный момент времени.

Используются для упрощенного моделирования привода соотв. сочленения. ParamFMax определяет максимальную силу (момент), который может развить привод сочленения, ParamVel - заданная скорость движения. При ParamVel=0 ненулевое значение ParamFMax определяет силу (момент трения) в сочленении.

!!!!!!!!!

Коэффициент распределения энергии при ударе (по достижении нижней или верхней границы). Диапазон изменения: 0...1.
0 - Вся энергия поглощается,
1 - Вся энергия передается телам.

Constraint force mixing для соотв. сочленения.

Error reduction parameter для предела соотв. сочленения.

Constraint force mixing для предела соотв. сочленения.


Параметры обмена данными с другим приложением

       Если любой из параметров равен 1 – это означает, что его значение либо будет задаваться внешним приложением: ADD_FORCE – приложить к сочленению внешнюю силу (реализовано для  SLIDER), ADD_TORQUE - приложить к сочленению внешний момент (реализовано для  HINGE) либо значение будет передаваться внешнему приложению:  GET_POS – положение сочленения, GET_POSRATE скорость изменения положения сочленения.

Тип сочленения

BSJOINT
HINGE*
HINGE2**
SLIDER***
UNIVERSAL****
FIXED
ADD_FORCE
-
-
-
+
-
-
ADD_TORQUE
-
+
+
-
+
-
ADD_M_FMAX
-
+
-
+
-
-
ADD_M_VEL
-
+
-
+
-
-
GET_POS
-
+
-
+
-
-
GET_POSRATE
-
+
-
+
-
-

При обмене данными с другим приложением значения всех параметров имеют размерность (1Х3): {a,b,c}.

* - для HINGE:
  • ADD_TORQUE - вектор {a,b,c} имеет вид HINGE,0,0}, где ТHINGE - внешний момент,
  • GET_POS -  вектор {a,b,c} имеет вид {PHIHINGE,0,0}, где PHIHINGE - угол поворота сочленения в радианах,
  • GET_POSRATE - вектор {a,b,c} имеет вид {WHINGE,0,0}, где WHINGE - угловая скорость сочленения в рад/с.
** - для HINGE2:
  • ADD_TORQUE - вектор {a,b,c} имеет вид AXIS1,ТAXIS2,0}, где ТAXIS1,ТAXIS2 - внешние моменты для 1-й и 2-й осей вращения.
*** - для SLIDER:
  • ADD_FORCE - вектор {a,b,c} имеет вид {FSLIDER,0,0}, где FSLIDERвнешняя сила,
  • GET_POS -  вектор {a,b,c} имеет вид {SSLIDER,0,0}, где SSLIDERположение сочленения,
  • GET_POSRATE - вектор {a,b,c} имеет вид {VSLIDER,0,0}, где VSLIDER- линейная скорость сочленения.
**** - для UNIVERSAL:
  • ADD_TORQUE - вектор {a,b,c} имеет вид AXIS1,ТAXIS2,0}, где ТAXIS1,ТAXIS2 - внешние моменты для 1-й и 2-й осей вращения.



Силы и моменты в сочленениях
      Если к сочленению прикладывается сила (момент), задаваемый внешним приложением, то эта сила (момент) прикладывается с разным знаком одновременно к обеим телам. Если необходимо, чтобы одно из тел было неподвижно, то для него должен быть выставлен флажок Static body.


Шаг 5. Параметры модели контакта в PSim Explorer

      
Контакты в PSim Enviroment моделируются при помощи создания и расчета т.н. "контактного сочленения":


       Контактные сочленения создаются и удаляются автоматически. Они могут моделировать трение путем приложения специально рассчитаных сил в 2-х направленях трения, перпендикулярных к нормали поверхности контакта. Реализованы следующие модели контакта:
 
dContactApprox0
Для аппроксимации трения в обоих направлениях используется "constant-force-limit approximation", mu - предельная сила
dContactApprox1_1
Для аппроксимации трения в 1-м направлении трения используется "пирамида трения",
mu - коэффициент трения.
dContactApprox1_2
Для аппроксимации трения во 2-м направлении трения используется "пирамида трения",
mu - коэффициент трения.
dContactApprox1
Для аппроксимации трения в обоих направлениях трения используется "пирамида трения",
mu, mu1 - коэффициенты трения.

Дополнительные настройки модели контакта:


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

Если флажок установлен, то в качестве 1-го направления трения используется fdir1, иначе в качестве 1-го направления трения  используют автоматически определяемый перпендикуляр к нормали поверхности контакта.

Если флажок установлен, то включен механизм расчета распределения энергии при ударе.

Если флажок установлен, то при  расчете контакта используется soft_ERP.

Если флажок установлен, то при  расчете контакта используется soft_CFM.

Если флажок установлен, то при  расчете контакта учитывается движение поверхности в 1-м направлении трения , скорость движения определяется параметром motion1.

Если флажок установлен, то при  расчете контакта учитывается движение поверхности во 2-м направлении трения , скорость движения определяется параметром motion1.

Скольжение в 1-м направлении трения.

Параметры модели контакта:

mu
Коэфициент трения ( для dContactApprox1_1, dContactApprox1_2, dContactApprox1),
предельная сила (для dContactApprox0).Диапазон изменения: 0...inf.
mu2
Аналогично mu для 2-го направления трения, используется, если включен соответствующий флажок.
bounce
Коэффициент распределения энергии при ударе. Диапазон изменения: 0...1.
0 - Вся энергия при ударе поглощается,
1 - Вся энергия передается телам.
Используется, если включен соответствующий флажок.
bounce_vel
Минимальная скорость, которая приводит к удару. Для всех скоростей тел меньшее нее bounce равен 0.
soft_EPR
Error reduction parameter
soft_CFM
Constraint force mixing
motion1
Скорость поверхности в 1-м направлении трения, используется, если включен соответствующий флажок.
motion2 Скорость поверхности во 2-м направлении трения, используется, если включен соответствующий флажок.
slip1
Скольжение первого рода  поверхности в 1-м направлении трения, используется, если включен соответствующий флажок.
slip2
Скольжение первого рода  поверхности во 2-м направлении трения, используется, если включен соответствующий флажок.


Шаг 6. Заключительный этап работы - сборка,настройка и сохранение модели


Параметры визуализации cцены




Положение и ориентация камеры

Автоматически установить положение и ориентацию камеры в соответствии с выбранными при просмотре модели

Настройки освещения
Один источник света освещает всю сцену, второй - направленный привязан к камере


Показывать FPS(Frames per second)




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

 
        При просмотре сцены целесообразно выбрать наиболее удачное расположение камеры, далее в Models -> Rendering -> Get from Scene view - автоматически установит в соответствии с выбранным при просмотре сцены. Это положение
камеры будет базовым при моделировании  в PSim Engine.



          Сборка системы

        Все данные системы (параметры моделей, сочленений, среды,...) сохраняются в sim-файле, в поддиректориях /models и /obj - сохраняется геометрия моделей, в /textures - должны быть расположены текстуры, используемые в системе.



          Просмотр переменных обмена данными с другим приложением

       Для правильной интеграции PSim модели в Matlab необходимо знать соответствие переменных в PSim (силы, моменты,... для моделей и сочленений, задаваемые внешним приложением и положения, скорости,... передаваемые внешнему приложению) с перемеными в Matlab/Simulink.
            Со стороны Matlab/Simulink - система PSim представляет собой вызов S-функции. Порядок следования параметров для правильного подключения входов S-функции в PSim Explorer можно просмотреть  при помощи View IO 'pins':



В данном случае:
  • FORCE - Название параметра,
  • (3) - Размерность параметра,
  • J_0:M_baseTransform0+M_platformTransform1 - сочленение, параметр которого либо передается, либо задается внешним приложением.



Version 0.45, 10 Nov 2004
© Zvonarov Anton aka Sps, 2004. All rights reserved