I am simulating a machine tool in Adams View where I want to investigate the force with which the workpiece and the tool touch each other. To do this, I drive my system with a torque that acts on a simplified ball screw. The torque is regulated with a PID controller - so that the tool can follow a defined movement on the workpiece. If I now define a contact force between the workpiece and the tool, the torque simply increases and so does the contact force, as the PID controller wants to maintain the specified speed. Is it possible to define a condition so that the torque stops or no longer increases above a certain torque?
If you want to keep the torque from increasing above a certain value, you can add a MIN() function around the current torque function and your desired maximum torque value:
MIN( max_torque , torque_from_PID )
(This provided the torque is positive)
If you want to stop the simulation, you can use a sensor.
Thank you both for your help. I think a sensor should be sufficient for the moment. Now I have one more problem. The torque is at the start of the motion pretty high because it has to overcome the static friction. Is it possible to add an option where the sensor is deactivated in the beginning and then activate the sensor when the static friction is overcome?
Thank you very much! It works perfectly. However, I now have a new problem. I would now like to change the dynamic friction coefficient and find out what influence the friction has on the contact force. To do this, I have defined a design variable for the friction coefficient and set up a design study using the design evaluation tools. In which the last value of the contact force is measured and the coefficient of friction is changed. To do this, I use the simulation script, which only activates the sensor after a certain time. Now I have the problem that the friction coefficient is not changed. It remains at the same value for all runs. I assume that this is due to the simulation script (as the simulation runs with the sensor are aborted). Or what could be the reason for this?