Modeling Friction in State Space
Show older comments
Trying to model friction of a linear motor in the process of creating a state space model of my system. I've found it easy to model friction solely as viscous friction in the form b * x_dot, where b is the coefficient of viscous friction (N/m/s) and x_dot represents the motor linear velocity.
However, this viscous friction only model fails to accurately represent the system since the Coulomb friction in my motor is roughly 400x that of the viscous friction for my operational speed range. I would like to use the friction model b_c * sign(x_dot) + b_v * x_dot, where b_c represents the coefficient of sliding (Coulomb) friction, b_v is the coefficient of viscous friction, and x_dot is the motor linear velocity. The sign() function is needed since the direction of the friction force opposes the direction of motion.
There is also a static friction component that I'm ignoring for now.
My issue: I can't seem to find a Laplace transform for sign(x_dot) to allow me convert my equations of motion into a state-space model. The simple model b * x_dot becomes b * X(s) * s. What would b_c * sign(x_dot) + b_v * x_dot become??
Thanks,
An engineer trying to relearn control theory 10 years after college...
Answers (1)
Sulaymon Eshkabilov
on 10 Feb 2023
0 votes
The Laplace transform of the signum function is 2/s. Therefore, you can derive your system equation in "s" domain:
b_c * sign(x_dot) + b_v * x_dot == > b_c * (2/s) + b_v * X(s)*s
4 Comments
Michael
on 10 Feb 2023
Sulaymon Eshkabilov
on 10 Feb 2023
Edited: Sulaymon Eshkabilov
on 11 Feb 2023
Most welcome!
Sulaymon Eshkabilov
on 11 Feb 2023
Explanation: sign() = u(t) - u(-t) == LT{sign} = 1/s -(-1/s) = 2/s
I'm not sure about this result. The signum function is non-causal, so I assume the result is based on the bilateral Laplace transform. However the regions of convergence of the bilateral transforms of u(t) and u(-t) repsectively don't intersect, so I don't think we can take the sum of their transforms as the transform of signum(t)
Also, the Question is about how to deal with signum(dx/dt(t)), not signum(t).
Communities
More Answers in the Power Electronics Control
Categories
Find more on Chassis Systems in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!