Using simscape's unidirectional clutch with multibody

Hello,
I am trying to attach a unidirectional clutch to a revolute joint using a multibody rotational interface and a rotational reference however this doesn't seem to work.
What happen is that the "disengaged phase" goes well but at the moment the relative velocity between the hub and the ring changes direction the simulation crashes with the following message :
An error occurred during simulation and the simulation was terminated
Caused by:
['Modele_RZ/Solver Configuration']: Transient initialization at time 1.903, solving for consistent states and modes, failed to converge.
Nonlinear solver: Linear Algebra error. Failed to solve using iteration matrix.
The model may not give enough information to make it possible to solve for values of some of its variables. Specific advice is given below.
all components and nodal across variables involved
Cannot solve for one or more variables:
'Roue_Libre_Haut_Avant.Rotational_Multibody_Interface.t' (t)
'Roue_Libre_Haut_Avant.Rotational_Multibody_Interface.torque' (Torque)
'Roue_Libre_Haut_Avant.Rotational_Multibody_Interface_t0' (Rotational_Multibody_Interface_t0)
'Roue_Libre_Haut_Avant.Unidirectional_Clutch.fundamental_clutch.clutch.t' (Torque)
'Roue_Libre_Haut_Avant.Unidirectional_Clutch.fundamental_clutch.torque' (Torque)
I have tried a bunch of modification but nothing seems to work...
I would appreciate a bit of help.

 Réponse acceptée

Umar
Umar le 27 Jan 2025

0 votes

Hi @Florian ,

After going through your comments, please see my suggestions listed below.

Review Initial Conditions: Ensure that the initial conditions for all components are set correctly. This includes the initial angular positions and velocities of the hub and ring.

% Example of setting initial conditions   set_param('Roue_Libre_Haut_Avant.Rotational_Multibody_Interface',   'InitialCondition', '0');

Adjust Solver Settings: Experiment with different solver    settings. 

For instance, try using a different solver or adjusting the tolerances to see if it improves convergence.

   

% Example of changing solver settings set_param('Roue_Libre_Haut_Avant', 'Solver',       'ode45', 'RelTol', '1e-6', 'AbsTol', '1e-6');


Simplify the Model: If possible, simplify the model to isolate the problem. Remove or deactivate components to identify if a specific part of the model is causing the issue.

Check for Discontinuities: Ensure that there are no abrupt changes in the model that could lead to discontinuities in the equations of motion. This is particularly important for nonlinear components like clutches.

Use Diagnostic Tools: Utilize MATLAB's diagnostic tools to analyze the model for potential issues. The Model Advisor can help identify common problems in the setup.

In addition to these suggestions, please click the link below to help you further.

https://www.mathworks.com/help/simscape/ug/troubleshooting-simulation-errors.html

Hope this helps.

4 commentaires

Hi, thanks for the reply,
I tried changing solver parameters as recomended unfortunately nnothing changes. The crash appears always at the same time stamp regardless of the solver changes which leads me to belive that this is not a numerical error but an error on my physics modelling. The thing is that I am unable to find what I can change to get the model to working.
I am trying to use a unidirectional clutch which brings discontinuity by definition as I understand it. But since the block exists in simscape I assume there is a way to make it perform as advertised.
Moreover the unidirectional clutch works fine in its "disengaged phase" but fail as soon as it has to transmit torque.

Hi @Florian,

I read your comments and would like to recommend the following suggestions to help resolve your issues. The best one would be simplifying the model to isolate the issue. Remove or replace components to determine if the clutch is indeed the source of the problem.

1. Review Clutch Parameters: Ensure that the parameters of the unidirectional clutch are set correctly. Pay particular attention to the engagement and disengagement thresholds, as well as the torque limits.

2. Implement Smoothing Functions: Introduce smoothing functions or transition logic to handle the abrupt changes in torque when the clutch engages. This can help mitigate the discontinuity and provide a more stable simulation.

3. Check for Feedback Loops: Verify that there are no unintended feedback loops in the model that could exacerbate the issue when the clutch engages.

4. Use Diagnostic Tools: Utilize Simscape's diagnostic tools to identify any warnings or errors that may provide insight into the model's behavior at the time of the crash.

5. Simplify the Model: If the problem persists, consider simplifying the model to isolate the issue. Remove or replace components to determine if the clutch is indeed the source of the problem.

Hi again,
I added a rotational damper to smooth out the discontinuity and it works !
Thank you for your help

Hi @Florian,

Thank you for your email and for sharing the positive update regarding the addition of the rotational damper. I am pleased to hear that it has effectively addressed the discontinuity issue.

Your proactive approach in implementing this solution is commendable, and I appreciate your efforts in improving our project’s performance. If you have any further insights or require additional assistance, please do not hesitate to reach out.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Discrete Events and Mode Charts dans Centre d'aide et File Exchange

Produits

Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by