How to stop a steering wheel using an electric motor?

AI Thread Summary
The discussion revolves around implementing a control system for an electric motorized steering wheel to prevent it from exceeding a certain angle without causing abrupt reversals. The user seeks to create a "mechanical stop" effect in a steer-by-wire system, where the torque applied by the driver is countered smoothly rather than harshly. Suggestions include using a torque feedback formula that incorporates both stiffness and damping factors to simulate a rubber stop, allowing for a more gradual resistance as the steering wheel approaches its limit. The importance of considering angular velocity and position in the control algorithm is emphasized to achieve a more natural feel. Ultimately, the goal is to enhance haptic feedback while maintaining control over the steering mechanism.
Atem
Messages
6
Reaction score
0
Homework Statement
i have a steering wheel mounted on an electric motor, and i want to stop the driver from going beyond a certain angle. i can read the torque applied by the driver, and the steering wheel angular velocity as well. how can i stop the steering wheel, without sending it harshely in the opposite direction?
Relevant Equations
torque = MOI * acceleration (MOI : moment of inertia)
Problem Statement: i have a steering wheel mounted on an electric motor, and i want to stop the driver from going beyond a certain angle. i can read the torque applied by the driver, and the steering wheel angular velocity as well. how can i stop the steering wheel, without sending it harshely in the opposite direction?
Relevant Equations: torque = MOI * acceleration (MOI : moment of inertia)

...
 
Physics news on Phys.org
Welcome to the PF. :smile:

What are your thoughts so far? Per the PF rules, we can't offer tutorial help until you show your work on the schoolwork problem.

Also, could you upload ("attach") a PDF or JPEG file with a sketch of this problem? So far I'm not able to make sense out of a motor attached to a steering wheel... Thanks.
 
Thank you berkeman.
I'm working on a system called "steer by wire", basically there is no mechanical link between the steering wheel and the road wheels(see image atteched). but i think it doesn't change much to the problem, all i wanted to say is that there is a permanent torque that turns the steering wheel in direction, and what i want to do is to produce the effect of a "mechanical stop" once the driver goes beyond a certain angle.

the first idea i had is to generate the same torque of the driver in the opposite direction :
if(SW_angle>=angle_limit) trq_cmd = -(driver_trq)
but it seems to be very powerfull and turns the steering wheel harshely in the opposite direction.
i think I'm missing something in the principles of dynamics, and i souldn't look at the problem with static principles.
thanks a lot.
 

Attachments

  • The-Steer-by-Wire-system.png
    The-Steer-by-Wire-system.png
    7.4 KB · Views: 377
Atem said:
the first idea i had is to generate the same torque of the driver in the opposite direction :
if(SW_angle>=angle_limit) trq_cmd = -(driver_trq)
but it seems to be very powerfull and turns the steering wheel harshely in the opposite direction.
I am struggling to understand why this algorithm succeeds in reversing the motion of the steering wheel. If the commanded torque from the motor is equal to the sensed torque from the driver then the net torque on the steering wheel would be zero. The wheel would keep turning freely in the same direction it was already turning.

Are there some additional complexities? Perhaps some scaling factor? Is there, perhaps, a difference between the actual weight of the steering wheel mechanism and its simulated weight?

That said, I do see something missing from your chosen algorithm -- there is no velocity dependence. You want the simulated hard stop on the steering wheel mechanism to result in a simulated inelastic collision. That means that you want the resisting torque to exist when the wheel is moving into the stop but to be reduced or eliminated when the wheel is rebounding away from the stop.

You may also want to consider softening the stop -- making the resisting force ramp up according to some profile based on how closely the stop point is being approached.
 
Last edited:
jbriggs444 said:
You want the simulated hard stop on the steering wheel mechanism to result in a simulated inelastic collision. That means that you want the resisting torque to exist when the wheel is moving into the stop but to be reduced or eliminated when the wheel is rebounding away from the stop.
Thanks for your answer jbriggs444.
Do you have any idea how i can implement this?.

i thought of calculating the resistance torque to stop the steering wheel :
c = J* alpha
c = j * (wf-wi)/delta
c = j * (-wi)/delta

where alpha is the angular acceleration;
wf : final angular velocity (i want it to be 0);
wi : initial angular velocity (i can read the value once the driver reaches a certain angle);
delta : is a time interval i can configure
 
If I understand the control loop here correctly, the algorithm you describe above will result in an exponential slow-down. It will feel as though the wheel has plowed into a wall of molasses.

The exponential slow-down is because after the wheel has slowed down by half, your provided resistance will have reduced by half. There is nothing obvious that prevents the driver from continuing to fight the wheel, slowly plowing further and further into the molasses.

I would be thinking in terms of modelling the feel of a rubber stop. A hard spring with, perhaps, a non-linear spring constant along with some damping. The algorithm you have right now is damping only. You still need the spring part.
 
Atem said:
I'm working on a system called "steer by wire", basically there is no mechanical link between the steering wheel and the road wheels(see image atteched). but i think it doesn't change much to the problem, all i wanted to say is that there is a permanent torque that turns the steering wheel in direction, and what i want to do is to produce the effect of a "mechanical stop" once the driver goes beyond a certain angle.
I don't think I'd use torque as a control or feedback variable in this SBW system. I would approach it using the steering wheel's angular position and reflecting that into the horizontal position of the rack in the steering mechanism. Power steering in modern cars already makes the feel of the steering wheel very light, with little reverse torque to re-center the steering wheel position. You could add a small spring with damping, I suppose, return the whole system to center slowly if the steering wheel is let go of.

Have you considered a position-based SBW system instead?

http://constructionmanuals.tpub.com/14273/img/14273_312_2.jpg
244260
 
berkeman said:
Have you considered a position-based SBW system instead?

the SBW system already exists. What i want to do is to add some haptic feedback functionalities to it. in this case i want to simulate a "rubber stop" to prevent the driver from going beyond a certain angle.
 
jbriggs444 said:
I would be thinking in terms of modelling the feel of a rubber stop. A hard spring with, perhaps, a non-linear spring constant along with some damping. The algorithm you have right now is damping only. You still need the spring part.
i found this formula in a scientific research document that was discussing a similar problem :
C = Km * (curent_angle - ange_limit) - Bm * omega;

where :
C : torque feedback;
omega : angular velocity;
(km : stiffness factor, Bm : damping factor ) are variables to chose

what do you think ??
 
  • #10
Atem said:
in this case i want to simulate a "rubber stop" to prevent the driver from going beyond a certain angle.
Then why not just use mechanical stops on the steering wheel rotation? You could even make a little audio sound generator to make the "squeel" noise that happens when you push the steering wheel to the limit of the power steering range (the noise is from a power steering belt slipping, I think...). :smile:
 
  • Like
Likes jbriggs444
  • #11
Atem said:
i found this formula in a scientific research document that was discussing a similar problem :
C = Km * (curent_angle - ange_limit) - Bm * omega;

where :
C : torque feedback;
omega : angular velocity;
(km : stiffness factor, Bm : damping factor ) are variables to chose

what do you think ??
That fits with what I had in mind. I would expect you to mate that formula for feedback/wheel control near the endpoints with a different formula for feedback over the normal expected range of travel. [On re-reading, it seems that you are already going down that road]
 
  • #12
berkeman said:
Then why not just use mechanical stops on the steering wheel rotation?
I can't use a mechanical stop cause the angle limit is a calculated value that changes in time (in fact it represents the error amount i can tolerate). Besides, i already have the steering wheel system's hardware, I'm implementing algorithms to control it
 
Back
Top