RollResist_Constant class

Contents

Description

This is a sub-class of the RollResist class for the implementation of the Constant rolling resistance torque model.

This model assumes that a constant resistance torque (not dependent on relative rotation velocity), but depending on normal force, is applied against the relative rotation.

$$M = -\hat{\omega} \mu R_{eff} \left | F_{n} \right |$$

Notation:

$\hat{\omega}$: Relative angular velocity

$\mu$: Rolling resistance coefficient

$R_{eff}$: Effective contact radius

$F_{n}$: Normal contact force vector

References:

classdef RollResist_Constant < RollResist

Public properties

    properties (SetAccess = public, GetAccess = public)
        % Contact parameters
        resist double = double.empty;   % rolling resistance coefficient
    end

Constructor method

    methods
        function this = RollResist_Constant()
            this = this@RollResist(RollResist.CONSTANT);
            this = this.setDefaultProps();
        end
    end

Public methods: implementation of super-class declarations

    methods
        %------------------------------------------------------------------
        function this = setDefaultProps(this)

        end

        %------------------------------------------------------------------
        function this = setCteParams(this,~)

        end

        %------------------------------------------------------------------
        function this = evalTorque(this,int)
            % Needed properties
            dir = -sign(int.kinemat.vel_ang);
            res = this.resist;
            r   = int.eff_radius;
            f   = norm(int.cforcen.total_force);

            % Total torque (against relative rotation)
            this.torque = dir * res * r * f;
        end
    end
end