I am trying to model an energy dissipater element that can undergo plastic deformation when contacted by a body, e.g. elastic perfectly plastic relationship
I have tried using a sensor as described in Article Number
000002688:
What I have so far:
-----------------------
Sensor event definition
.MODEL_1.Deformation - SENVAL(DeformationSensor)
Sensor event evaluation:
.MODEL_1.Deformation
SForce:
IF( .MODEL_1.Deformation: forceValue, 0, 0 )
Questions:
-------------
I am finding it difficult to figure out how to incorporate the plastic deformation. According to me plasticDeformation = SENVAL(DeformationSensor) therefore the force becomes (where force value: f= min(kx, plasticForceValue):
IF( .MODEL_1.Deformation + plasticDeformation: forceValue, 0, 0 ) but this is obviously incomplete and incorrect.
Is the sensor approach correct for this application, or do I need to look at doing a subroutine? Is there another approach that will work?
I see your problem. Once you get into the plastic zone, and deformation increases, the sensor changes and deformation changes is zero. Traditionally (using subroutines) this can be handled by using a reqsub to store the max deformation as a reqsub is only called at output steps. The reqsub would store the value in a common block / global variable that can then be used by the sfosub.
But as long as your plastic and elastic stiffness are constant, this can be handled with some logic.
I see your problem. Once you get into the plastic zone, and deformation increases, the sensor changes and deformation changes is zero. Traditionally (using subroutines) this can be handled by using a reqsub to store the max deformation as a reqsub is only called at output steps. The reqsub would store the value in a common block / global variable that can then be used by the sfosub.
But as long as your plastic and elastic stiffness are constant, this can be handled with some logic.