To understand the problem, a few data about the setup which I use for the control:
- 1 X DC brushed motor (sunroof motors) with hall sensor.
- Roboclaw 2X30A
- Arduino UNO
- SW - Basicmicro Motionstudio
With my Display controller I move to 3 positions.
- Start position (0 increments)
- Middle position (2800 increments)
- End position (4550 increments)
The positioning via the sketch works relatively well, I exclude errors in the sketch for now, but if someone needs the sketch for error analysis, I can gladly post it.
About the problem:
Settings of the PID controller:
I made the system (control loop) overshoot to be able to determine the limits of the P part as well as I part. Slowly corrected the values downward until a smooth and fluid movement of the engine.
If I want to move only with the P part and a D part of the motor to the positions remains a small control deviation in the positioning (5-10 increments) this is not a problem for me because the Sketch after 300ms without movement, the actual position stored as a target position. A tolerance of 20 increments is also implemented.
The Middle and End position is approached with a small control deviation. The Roboclaw stops controlling after a short time and the current goes towards 0,1A.
However, when the display returns to the start position (0 increments), an unexplained regulation remains. Current consumption up to 1,2A.
If I add an I part to the regulation, the motor hits exactly the positions but when reaching at whatever positions it regulates unexplainable white between 3A - 10A.
I have already spent hours to adjust the controler. Have any of you the same problem? Or do you have an idea what it could be.
I have worked with the “Deadzone” as well as “Error Limits” all to no avail.
Thank you very much.
Control behavior at Touch Position - perfect
Control behavior at Start Position (1) - existing control behavior
Control behavior at Start Position (2) - existing control behavior