Hello,
I am currently working on automatic door that uses a BLDC motor. I am using the current of the motor to determine if an obstacle is in the way of the sliding doors. The problem is to determine when it is a real obstacle or a cold start (stiffness of the gears and door). The method I am using is to store a value and compare with the next 50 readings and check if it is a greater rate of change by checking if the current value has exceed a constant threshold with comparison to the stored value. The only problem is that the sensitivity of the system decreases (i.e. a higher force is needed to stop the door) and the threshold is not dynamic so if door size changes, I would not know if the threshold is correct.
I tried using speed by setting the PWM to 0 to stop the door and compare the speed between the cold start and an obstacle detection but there isn't much speed differences.
The microcontroller code that I inherited, the person calculates the acceleration and deceleration using the following equation:
m = max_speed - min_speed/size of door*10/slope; Slope varies between
10-100 and the size of door is the amount of halls sensor counts.Any help will be useful.
Paul