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

Изменение матрицы жесткости материала с помощью UMAT


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

Здравствуйте. 

 

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

 

Пока мой УМАТ написан так:

 

 

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1 RPL,DDSDDT,DRPLDE,DRPLDT,
     2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
     3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
     4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
      DIMENSION STRESS(NTENS),STATEV(NSTATV),
     1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
     2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
     3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
     4 JSTEP(4)
     
     
      DO K1=1, NTENS
        DO K2=1, NTENS
            DDSDDE(K1, K2)=0.0
        END DO
      END DO

 

      IF (JSTEP(1) == 1) THEN
      CALL Stiffnesses_1()
      DO K1=1, NTENS
        DO K2=1, NTENS
            STRESS(K1)=STRESS(K1)+DDSDDE(K1, K2)*DSTRAN(K2)
        END DO
      END DO
      STRAN = STRAN + DSTRAN
      ENDIF

 

      IF (JSTEP(1) == 2) THEN

        STATEV(1) = 3
        CALL Stiffnesses_2 ()
       ### место для обновления напряжений ### 
        
      
      ENDIF
        
C      STRAIN ENERGY

      A = 0
      SSED = 0
      DO K1=1,NTENS
        DO K2=1,NTENS
            A = DDSDDE(K1, K2)*DSTRAN(K2)
            SSED = SSED + (STRAN(K1)+0.5*DSTRAN(K1))*A
        END DO
      END DO
        
      SSE = SSE + SSED
    
      RETURN
      CONTAINS 
      SUBROUTINE Stiffnesses_1 ()

      E1=PROPS(1)
      E2=PROPS(2)
      E3=PROPS(3)
      V12=PROPS(4)
      V13=PROPS(5)
      V23=PROPS(6)
      G12=PROPS(7)
      G13=PROPS(8)
      G23=PROPS(9)
      V21=E2/E1*V12
      V31=E3/E1*V13
      V32=E3/E2*V23
      D=(1.-V12*V21-V23*V32-V13*V31-2.*V21*V32*V13)/E1/E2/E3
      DDSDDE(1, 1)=(1.-V23*V32)/E2/E3/D
      DDSDDE(1, 2)=(V21+V31*V23)/E2/E3/D
      DDSDDE(1, 3)=(V31+V21*V32)/E2/E3/D
      DDSDDE(2, 1)=(V21+V31*V23)/E2/E3/D
      DDSDDE(2, 2)=(1.-V13*V31)/E1/E3/D
      DDSDDE(2, 3)=(V32+V12*V31)/E1/E3/D
      DDSDDE(3, 1)=(V31+V21*V32)/E2/E3/D
      DDSDDE(3, 2)=(V32+V12*V31)/E1/E3/D
      DDSDDE(3, 3)=(1.-V12*V21)/E1/E2/D
      DDSDDE(4, 4)=G12
      DDSDDE(5, 5)=G13
      DDSDDE(6, 6)=G23
      END SUBROUTINE Stiffnesses_1
      

      SUBROUTINE Stiffnesses_2 ()

      E1=PROPS(10)
      E2=PROPS(11)
      E3=PROPS(12)
      V12=PROPS(13)
      V13=PROPS(14)
      V23=PROPS(15)
      G12=PROPS(16)
      G13=PROPS(17)
      G23=PROPS(18)
      V21=E2/E1*V12
      V31=E3/E1*V13
      V32=E3/E2*V23
      D=(1.-V12*V21-V23*V32-V13*V31-2.*V21*V32*V13)/E1/E2/E3
      DDSDDE(1, 1)=(1.-V23*V32)/E2/E3/D
      DDSDDE(1, 2)=(V21+V31*V23)/E2/E3/D
      DDSDDE(1, 3)=(V31+V21*V32)/E2/E3/D
      DDSDDE(2, 1)=(V21+V31*V23)/E2/E3/D
      DDSDDE(2, 2)=(1.-V13*V31)/E1/E3/D
      DDSDDE(2, 3)=(V32+V12*V31)/E1/E3/D
      DDSDDE(3, 1)=(V31+V21*V32)/E2/E3/D
      DDSDDE(3, 2)=(V32+V12*V31)/E1/E3/D
      DDSDDE(3, 3)=(1.-V12*V21)/E1/E2/D
      DDSDDE(4, 4)=G12
      DDSDDE(5, 5)=G13
      DDSDDE(6, 6)=G23

      END SUBROUTINE Stiffnesses_2

      END
     
 

 

 

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


UnPinned posts
Цитата

как при той  же деформации изменятся напряжения

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

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Fedor сказал:

если приложенные усилия не меняются, то и напряжения не будут меняться если изменением сечения можно пренебречь,

Кирпич растягивается за счет задания перемещений на конце, как раз и интересует изменение напряжений в нем в след за изменением жесткостей

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Thr33_Doge сказал:

Дальше свойства материала меняются

Свойства материала для всех элементов одинаково меняется?

Ссылка на сообщение
Поделиться на других сайтах
36 минут назад, ДОБРЯК сказал:
7 часов назад, Thr33_Doge сказал:

Дальше свойства материала меняются

Свойства материала для всех элементов одинаково меняется?

Да, просто нужно другую матрицу правильно подсунуть

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Thr33_Doge сказал:

Да, просто нужно другую матрицу правильно подсунуть

Измените свойства материала во входном файле, матрица жесткости изменится.

Ссылка на сообщение
Поделиться на других сайтах
8 hours ago, Thr33_Doge said:

и хочется увидеть, как при той  же деформации изменятся напряжения

Вы моделируете ползучесть (creep)? У вас есть зависимость напряжений от времени и/или скокрости деформации? Если так, то странно, что я нигде не нашел, чтобы использовался DTIME.

 

И вообще, в целом, опишите, в чем у вас проблема то? что не получается?

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

S=E e  если E(е) модуль зависит от деформаций то просто зная деформацию вычисляете напряжение. Деформационная теория пластичности... https://ru.wikipedia.org/wiki/Теория_пластичности   Ну или какая-нибудь другая...   https://en.wikipedia.org/wiki/Flow_plasticity_theory   :)

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • 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
      наверное пришло время выложить программу которая устраивает и которая не устраивает
    • Максим604
      Резьбу фрезерует. Просто выходит что подача меняется в разы.    Писал в мастеркаме  и крео. Там всё понятно. Подача=обороты*кол-во зубьев*подача на зуб. И с такой скоростью режет.    А когда пишешь через шопмилл ( стойка синумерик). То подача меняется от написаной
×
×
  • Создать...