Перейти к публикации

Траектория центра масс механизма в ADAMS


Рекомендованные сообщения

Подскажите как в ADAMS можно видеть траекторию центра масс всего механизма? Пробовал TOOLS - AGGREGATE_MASS, но он выдает координаты в окне и только для одного положения. Или заставить маркер\ шар двигаться по траектории которая есть в Funcion Builder но там AGGREGATE_MASS но никак не могу заставить показывать его для всех позиций…

 

Есть ли способ получить траекторию движения центра масс механизма  каким-нибудь образом?

 

Задан простой кривошип делает 1 оборот на 360 градусов.

ScreenShot00857.jpg

M8Jon7E0P0_thumb.jpg

Задача получить  каким-то образом траекторию движения центра масс механизма.

 

Вот правильный график  X координат центра масс детали PART_2

Строился через Build-Measure-Selected object-New    

ScreenShot00858.jpg

2g7L3DY779_thumb.jpg

 

И график который рисует( X корд центра масс детали PART_2 )

ScreenShot00859.jpg

3P9hYvF411_thumb.jpg

 

А теперь начианються странности:

Пытаюсь построить график X корд центра масс детали PART_2 через Function builder

Build-Mesure-Computed-New

 

ScreenShot00860.jpg

8u9l71Cq2K_thumb.jpg

А строит бред:

 

ScreenShot00861.jpg

Mj9QONpK8r_thumb.jpg

 

Пробую указать отдельно  считывать координату X

Через команду  AGGREGATE_MASS( {PART_2} ,0,"All" )[2]

Вообще пустой график..

ScreenShot00862.jpg

443cc7C7UV_thumb.jpg

Пытаюсь посчитать для 4-звенника, тоже бред

ScreenShot00863.jpg

0DQ9WjbRf9_thumb.jpg

Пытаюсь отдельно X тоже бред

ScreenShot00864.jpg

8yy41VJ8Go_thumb.jpg

Чтож нетак?

Найдено наверно решение но оно на официальном сайте MSC ( стремно регистрироваться)

http://support.mscsoftware.com/kb/results_kb.cfm?S_ID=1-54323441

Вот часть этого поста :

---

Assembly center of mass - how to obtain time-dependent CM position?

How to link a marker to determine the location of aggregate mass of an assembly

Use GCON and POINT_MASS to visualize and track aggregate CM

--

 

Но как их использовать я не могу, только начал учить адамс…

 

Как один из странных вариантов можно записывать координаты центров масс всех стержней и найти центр масс всего механизма  на каждом шаге анимации по своей формуле из книжки по математике, если механизм состоит из стержней ну и развить идею на объемные фигуры и т.д ( т.е написать часть адамса )...

1C21R532MW_thumb.jpg

Изменено пользователем Excalibur921
Ссылка на сообщение
Поделиться на других сайтах


 В качестве первого, что в голову пришло - если вы знаете положение ЦМ в механизма в начальном положении - повесте там маркер и привяжите его к элементу механизма (чтобы двигался). И отслеживайте его положение. Ничего другого пока в голову не приходит. 

 

В принципе, у меня есть регистрация на сайте MSC. Если не получиться - попробуем там порыться. Я зашел - найти с наскока не получилось - надо ковырять :-(.

И еще - сцылка на документацию MSC - там и по адамсу есть. Регистрации не требует. Может что найдете.

http://simcompanion.mscsoftware.com/infocenter/index?page=content&channel=DOCUMENTATION

Ссылка на сообщение
Поделиться на других сайтах

 

 

Use GCON and POINT_MASS to visualize and track aggregate CM
Solution#: 1-54323441
Product Line: Adams
Product Name(s): ADAMS/Solver , ADAMS/View (2005r2) (Constraints)
Platform: All Platforms
Operating System: All Operating Systems



Question
I'm familiar with KB article 1-KB8787 and am using it to compute the aggregate
mass CG location of PART_2 thru PART_5 during run-time. Now I would like to
animate the CG position as it moves. Would it be possible to track the
movement of the centroid with a part or point_mass?

Answer Yes, you can use a series of GCONs to prescribe the X, Y, and Z positions of a POINT_MASS.
Assuming your Centroid_X, _Y, and _Z are in VARIABLES/1, /2, /3 respectively,
then the POINT_MASS and GCONs statements in ADAMS/Solver language would
need to like the following:

POINT_MASS/1
, QG = 405.3577152, 102.4829488, 0
, MASS = 1, CM = 100

MARKER/100, POINT_MASS = 1

GCON/1, FUNCTION = DX(100)-AO(VARVAL(1))
GCON/2, FUNCTION = DY(100)-AO(VARVAL(2))
GCON/3, FUNCTION = DZ(100)-AO(VARVAL(3))

The attached model (GCON_centroid_ptmass.cmd) demonstrates this as shown in the attached
image "model_image_showing_GCON.png". A trace of the aggregate CG is shown
in the superimposed animation image with blur frames, "aggregate_CG_trace.png".

NOTES:
=====
1.There is no FORTRAN solver support for this feature; you must use ADAMS/Solver (C++).
2. The use of the AO() function prevents the mass of the point_mass from having any
effect on the rest of the model. It is treated in an Action-Only (AO) manner so there is no
unintended action-reaction effect when using this method.

_____________________
Keywords: GCON, track, constrain, CG, cm, aggregate, location, trace, POINT_MASS, AO, shield

 

a2f999558247fc1273704c01305b5f32.png 06a1b3d710e11e38532de2557b6b396b.png

 

CG_pos.rar

Ссылка на сообщение
Поделиться на других сайтах

Запустил, работает пример…

Но как глянул в что использовали чтобы работали эти формулы… одна формула  полметра  длинной ( буквально) 0_0

Как повторить это? Не могу повторить для 4 звенника..

Не переменные использованы в расчетах а какие-то константы откуда они?

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

Но в формуле непонятные константы с неправильными значениями и это у них работает…

ScreenShot00874.jpg

SMP3E5c7fv_thumb.jpg

Откуда  это число?? ( обведено)

Судя по примеру из книги по математике там должна стоять разность координаты концов стержней по X. Но там не может быть 0.7 так как шаг сетки 50 мм это наглаз видно..

ScreenShot00877.jpg

u104Bpp7Lf_thumb.jpg

Пробивал менять бредоформулы с адмса на правильные с книги, верификацию проходит.

ScreenShot00875.jpg

DeD16Yda0W_thumb.jpg

Подставляю исполнить, не хочет ((

ScreenShot00876.jpg

537B6jz061_thumb.jpg

Также если глянуть на формулу

Centroid X 

Runtime Func

 

((dx(PART_2.cm)*0.7749972306+dx(PART_3.cm)*3.6554340024+dx(PART_4.cm)*3.3550853425+dx(PART_5.cm)*3.8293069204+0 ) / 11.6148234959)

То это как и в скане с книги что я кидал координаты по Х центра масс стержня умножаются на разность  Х координат концов стержня, и так для всех стержней, затем делиться на сумму длин всех стержней по Х и аналогично для Y,Z.

Вот пример расчета.

ScreenShot00774.jpg

mwIqRNMbW4_thumb.jpg

Толи формулы там почему-то другие, толи это закидон разработчиков непонятный…

А вы бы не могли объяснить как показать траекторию центра масс пошагово?

Ну элементарно на 1 кривошипе или на 4 звеннике.

 

 

P.S ну почему так сложно посчитать в адамс элементарную вещ, и еще и решатель менять 0_0 по типу никто не считал центр масс самой первой версии адамса?…

 

 P.P.S а может вообще по-другому создать? Замерять координаты всех центров масс и сложить по адекватной формуле и записать это в Spline  затем назначить объекту движение по этому закону а ему приделать Trace маркер, или считать не в Spline а в матрицу которая дает координаты для  Curve которая дает координаты для Bspline ( вообще разработчики извращенцы  жесткие…)

 

Ссылка на сообщение
Поделиться на других сайтах

А может эти константы это не просто из расчета центра масс, а какие-то EVAL из расчета и учета влияния инерции и реакций  в шарнирах как-то 0_0, но почему в примере не поставили формулы для их расчета? Также совеем не повторить( у меня не получается).

 

А есть ли способ использовать настоящий Design-time func  специально созданной для этой задачи как говориться в хелпе:

AGGREGATE_MASS( {PART_2, PART_3,PART_4} ,0,"CM_Pos" ) 

Выдает 3 Reals, но как  ее записать  Varible? Или куда нужно записать, и тогда это массив значений нужно записать как-то в Spline и назначить как закон движения маркеру которому приделать Tracemarker…

 

P.S Я в шоке с извращенной логики разработчиков… повыдумывали Design time, Run time разделение, и для всех свои закидоны, понавыдумвали то матрицы , то сплайны  то варибле- это все бред. На компе данные храняться в массиве это я как программист говорю..  создали бы один тип хранения данных многомерная  настраиваемая матрица матрица и все! Сюда пиши что хочешь и как хочешь.

            Понавыдумывали разделение Design function  Runtime Func, ох и  бредок скажу я вам  как тот,  кто создал программу которая в 1000 раз быстрей адамса считает траекторию механизма, а их закидоны это сильно путает и мешает пониманию и справка огромна…Да компу плевать на эти абстракции разработчиков, он считает механизм по шагово, ну и добавили бы функции над переменными и все! В тысячу раз меньше справка и в миллион раз проще работать с такой системой.. Да и справка практически не нужна тогда. А чего стоит их деление? Этож жемчужина  интуитивного понимания…

Вот она:

("((dx(.model_1.PART_2.cm)*0.7749972306+dx(.model_1.PART_3.cm)*3.6554340024+dx(.model_1.PART_4.cm)*3.3550853425+dx(.model_1.PART_5.cm)*3.8293069204+" // "0 ) / " // 11.6148234959 // ")")

 

Особенно текст +" // "0 ) / " // 11.6148234959 // ")")

 Тупо деление  одного на другое…а нет давайте натыкаем 500 знаков деление и скобок и 100 параметров, пусть никто в ней не разбирается и нам будут приходить на курсы, покупать уроки…а то что тут  (A+B+C)/D  никто  никогда не узнает.

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

 

 

Думаю как альтернатива мутным константам есть два метода:

Cсоздать модель из двух скрепленных замком стержней( получаем две детали PART_2, PART_3 с центрами масс).

2) Два варианта

 

2.1)Run time . Применение формулы из книги. Создать график \ данные где формула для каждого шага Xcm= (dx(.model_1.PART_2.cm)*(dx(MARKER_3)-dx(MARKER_2))+dx(.model_1.PART_3.cm)*(dx(MARKER_5)-dx(MARKER_4)))/((dx(MARKER_3)-dx(MARKER_2))+(dx(MARKER_5)-dx(MARKER_4))

аналогично для Y,Z.

Получаем координаты центра масс механизма на каждом шаге.

Вводим их в матрицу которая создает линию.

Получаем траекторию центра масс механизма.

 

Не получается записать  в матрицу последовательно X Y Z только сначала все Х потом все Y потом все Z. Как исправить?

 

2.2)Design time. Есть спец команда:

AGGREGATE_MASS( {PART_2, PART_3} ,0,"CM_Pos" ) 

Получаем координаты центра масс механизма.

Вводим их в матрицу которая создает линию.

Получаем траекторию центра масс механизма.

 

Как записывать значения  Design time на каждом шаге расчета? Или как-то заставить считать механизм по шагам, сделали шаг записали AGGREGATE_MASS, опять шаг опять записали. Я так понял это и есть ограничение Design time функций которые выдумали разработчики?

Изменено пользователем Excalibur921
Ссылка на сообщение
Поделиться на других сайтах

А чего стоит их деление? Этож жемчужина интуитивного понимания…

 

возможно вы столкнулись с Индусским кодом

http://lurkmore.to/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4

 

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

 

Ссылка на сообщение
Поделиться на других сайтах

Вот Run-time функция записывает координаты центра масс 1 стержня

3 графика X,Y,Z.

ScreenShot00879.jpg

b2m6DV0c6S_thumb.jpg

Не могу записать в матрицу  последовательно X ,Y ,Z   , X ,Y ,Z   , X ,Y ,Z  

Записывает X ,X, X,Y,Y,Y,Z,Z,Z 

Записываю с помощью FUNCTION_MEA_1_display.scht1.Current.y_data

ScreenShot00880.jpg

6vNINWi1a3_thumb.jpg


Подскажете как исправить?

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Максим604
      В мануале написано что подача при Резьбофрезеровании считается по центру инструмента. Ок. Тогда почему когда пишешь в кам системе, то выдает подачу для движение  по траектории.      Перефразирую.  Нужно нарезать внутреннюю резьбу М20х2.  Фреза 3 зуба ∅12. Скорость резания 50. (Оборотов 1326)  Подача на зуб 0.05   Когда пишу в джи кодах, то выдаётся подача 198.9 мм/мин. С этой подачей станок и режет.    А если написать через шопмилл, то при тех же условиях( скорость резания и подача на зуб), он подачу пересчитывает для центра фрезы.  И выходит подача 80 мм/мин.   И выходит что при одних и тех же условиях меняется время обработки.    Когда пишешь через кам, то подача считается по траектории, а шопмилл считает для центра.    И я не понимаю как правильно считать. И почему именно так.  И в мануалах не нашёл ответа. 
    • maxx2000
      Да вот так ему хочется. Вот такие гады разработчики. Небось и в мануале всё это описали. Я негодую вместе с тобой.
    • Максим604
      Поэтому и вопрос. почему шопмилл подачу меняет, когда пишешь через него(макропеременые), а когда через G код не меняется. как шопмилл просчитывает новую подачу я понимаю, но не понимаю как прравильно и почему именно так правильно, а не наоброт. почему шопмилл переводит подачу с движения по траектории на движение по центру?     
    • Snake 60
      Так а зачем, если вот эта кнопка  сохраняет все детали и подсборки входящие в нее: При желании можно повесить на горячую кнопку через Настройка-Клавиатура Или пересохранить имеется ввиду создать копию с новым именем? Если да, то для этих целей я бы посоветовал крутой макрос с именем Коперник от @tompsongun См. пост выше.
    • maxx2000
      ну хотя бы то что одна написана через макропеременные, вторая в джи кодах. Ты считаешь что при одинаковом результате у них одинаковые алгоритмы?  
    • Максим604
      А что должно смущать?
    • maxx2000
      Ничего не смущает?
    • Максим604
      разные уп, но смысл одинаковый. в первом варианте подача меняется, во втором сохраняется.   Это то что не устраивает   M0 E_MI_TR(1,0,0,"REZBA_D11.9_P2_VARGUS","",1,0.05,2,50,2,1297,-16.2,91,2,10,14,1.0826,1.083,0.1,0,3,0.03937,0.31831,,,,1,0,"ISO_METRIC","M14");*RO* E_MI_TR(1,0,0,"REZBA_D11.9_P2_VARGUS","",1,0.05,2,50,2,1298,-16.2,91,2,10,14,1.0826,1.083,0.1,0,3,0.07874,0.63662,,,,-1,0,"ISO_METRIC","M14");*RO* _E_P002: E_PS_CIR(1,0,0,-14,90,0,,0,,102.5,12.857,30,8,10,0,,);*RO* CALL "END.SPF";#SM;*RO* E_END(0,1,0);*RO* M30 ;#SM;*RO* _____________________________________________   это устраивает N104 T=" ФРЕЗ. РЕЗЬБЫ - 12" N106 M6 N108 G0 X0. Y0. S1326 M3 D1 N110 Z50. N112 Z5. N114 G1 Z-25. F198.9 N116 G41 Y-4.95 N118 G3 X9.95 Y0. Z-24.5 I3.74372 J4.95 N120 Z-22.5 I-9.95 J0. N122 Z-20.5 I-9.95 J0. N124 Z-18.5 I-9.95 J0. N126 Z-16.5 I-9.95 J0. N128 Z-14.5 I-9.95 J0. N130 Z-12.5 I-9.95 J0. N132 Z-10.5 I-9.95 J0. N134 Z-8.5 I-9.95 J0. N136 Z-6.5 I-9.95 J0. N138 Z-4.5 I-9.95 J0. N140 Z-2.5 I-9.95 J0. N142 Z-.5 I-9.95 J0. N144 X0. Y9.95 Z0. I-9.95 J0. N146 X-4.95 Y0. Z.5 I0. J-6.20628 N148 G1 G40 X0.
    • sklide008
      Да точно, подзабыл уже все. а можно ли горячими клавишами открыть деталь из сборки и пересохранить не открывая деталь?
    • maxx2000
      наверное пришло время выложить программу которая устраивает и которая не устраивает
×
×
  • Создать...