Friction

Smooth Mollifier

ipctk.smooth_friction_f0(y: float, eps_v: float) float

Smooth friction mollifier function.

\[f_0(y)= \begin{cases} -\frac{y^3}{3\epsilon_v^2} + \frac{y^2}{\epsilon_v} + \frac{\epsilon_v}{3}, & |y| < \epsilon_v \newline y, & |y| \geq \epsilon_v \end{cases}\]
Parameters:
y: float

The tangential relative speed.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the mollifier function at y.

ipctk.smooth_friction_f1(y: float, eps_v: float) float

The first derivative of the smooth friction mollifier.

\[f_1(y) = f_0'(y) = \begin{cases} -\frac{y^2}{\epsilon_v^2}+\frac{2 y}{\epsilon_v}, & |y| < \epsilon_v \newline 1, & |y| \geq \epsilon_v \end{cases}\]
Parameters:
y: float

The tangential relative speed.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the derivative of the smooth friction mollifier at y.

ipctk.smooth_friction_f2(y: float, eps_v: float) float

The second derivative of the smooth friction mollifier.

\[f_2(y) = f_0''(y) = \begin{cases} -\frac{2 y}{\epsilon_v^2}+\frac{2}{\epsilon_v}, & |y| < \epsilon_v \newline 0, & |y| \geq \epsilon_v \end{cases}\]
Parameters:
y: float

The tangential relative speed.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the second derivative of the smooth friction mollifier at y.

ipctk.smooth_friction_f1_over_x(y: float, eps_v: float) float

Compute the derivative of the smooth friction mollifier divided by y (\(\frac{f_0'(y)}{y}\)).

\[\frac{f_1(y)}{y} = \begin{cases} -\frac{y}{\epsilon_v^2}+\frac{2}{\epsilon_v}, & |y| < \epsilon_v \newline \frac{1}{y}, & |y| \geq \epsilon_v \end{cases}\]
Parameters:
y: float

The tangential relative speed.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the derivative of smooth_friction_f0 divided by y.

ipctk.smooth_friction_f2_x_minus_f1_over_x3(y: float, eps_v: float) float

The derivative of f1 times y minus f1 all divided by y cubed.

\[\frac{f_1'(y) y - f_1(y)}{y^3} = \begin{cases} -\frac{1}{y \epsilon_v^2}, & |y| < \epsilon_v \newline -\frac{1}{y^3}, & |y| \geq \epsilon_v \end{cases}\]
Parameters:
y: float

The tangential relative speed.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The derivative of f1 times y minus f1 all divided by y cubed.

Smooth \(\mu\)

ipctk.smooth_mu(y: float, mu_s: float, mu_k: float, eps_v: float) float

Smooth coefficient from static to kinetic friction.

Parameters:
y: float

The tangential relative speed.

mu_s: float

Coefficient of static friction.

mu_k: float

Coefficient of kinetic friction.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the μ at y.

ipctk.smooth_mu_derivative(y: float, mu_s: float, mu_k: float, eps_v: float) float

Compute the derivative of the smooth coefficient from static to kinetic friction.

Parameters:
y: float

The tangential relative speed.

mu_s: float

Coefficient of static friction.

mu_k: float

Coefficient of kinetic friction.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the derivative at y.

ipctk.smooth_mu_f0(y: float, mu_s: float, mu_k: float, eps_v: float) float

Compute the value of the ∫ μ(y) f₁(y) dy, where f₁ is the first derivative of the smooth friction mollifier.

Parameters:
y: float

The tangential relative speed.

mu_s: float

Coefficient of static friction.

mu_k: float

Coefficient of kinetic friction.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the integral at y.

ipctk.smooth_mu_f1(y: float, mu_s: float, mu_k: float, eps_v: float) float

Compute the value of the μ(y) f₁(y), where f₁ is the first derivative of the smooth friction mollifier.

Parameters:
y: float

The tangential relative speed.

mu_s: float

Coefficient of static friction.

mu_k: float

Coefficient of kinetic friction.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the product at y.

ipctk.smooth_mu_f2(y: float, mu_s: float, mu_k: float, eps_v: float) float

Compute the value of d/dy (μ(y) f₁(y)), where f₁ is the first derivative of the smooth friction mollifier.

Parameters:
y: float

The tangential relative speed.

mu_s: float

Coefficient of static friction.

mu_k: float

Coefficient of kinetic friction.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the derivative at y.

ipctk.smooth_mu_f1_over_x(y: float, mu_s: float, mu_k: float, eps_v: float) float

Compute the value of the μ(y) f₁(y) / y, where f₁ is the first derivative of the smooth friction mollifier.

Note

The x in the function name refers to the parameter y.

Parameters:
y: float

The tangential relative speed.

mu_s: float

Coefficient of static friction.

mu_k: float

Coefficient of kinetic friction.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the product at y.

ipctk.smooth_mu_f2_x_minus_mu_f1_over_x3(y: float, mu_s: float, mu_k: float, eps_v: float) float

Compute the value of the [(d/dy μ(y) f₁(y)) ⋅ y - μ(y) f₁(y)] / y³, where f₁ and f₂ are the first and second derivatives of the smooth friction mollifier.

Note

The x in the function name refers to the parameter y.

Parameters:
y: float

The tangential relative speed.

mu_s: float

Coefficient of static friction.

mu_k: float

Coefficient of kinetic friction.

eps_v: float

Velocity threshold below which static friction force is applied.

Returns:

The value of the expression at y.