Modeling Friction in State Space

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)

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

Thank you very much for the timely response! I have been looking all over and was not able to find this!
Most welcome!
Explanation: sign() = u(t) - u(-t) == LT{sign} = 1/s -(-1/s) = 2/s
Paul
Paul on 11 Feb 2023
Edited: Paul on 11 Feb 2023
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).

Sign in to comment.

Communities

More Answers in the  Power Electronics Control

Categories

Find more on Chassis Systems in Help Center and File Exchange

Products

Release

R2021b

Asked:

on 10 Feb 2023

Edited:

on 11 Feb 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!