A propos des fonctions de charge personnalisée
Lorsqu'une application de charge personnalisée est démarrée, les échanges entre l'application et Mechanism Dynamics s'effectuent au moyen d'appels de fonction directs. Certaines fonctions sont appelées de l'application de charge personnalisée par Mechanism Dynamics. D'autres sont fournies par Mechanism Dynamics et peuvent être appelées par l'application de charge personnalisée. Chaque fonction peut avoir une série d'arguments facultatifs, que vous pouvez ajouter à votre définition de fonction si nécessaire.
Les fonctions spécifiques à l'application de charge personnalisée sont brièvement décrites ci-après.
Fonctions fournies par l'application de charge personnalisée et écrites par le développeur de charge personnalisée :
• CLUSEREvalCustomLoad()
• CLUSERDefineInit()
• CLUSERRunInit()
• CLUSERGetStateVariablesSize()
• CLUSERInitStateVariables()
• CLUSERGetStateVariableDerivatives()
Fonctions fournies par Mechanism Dynamics et pouvant être appelées par le développeur de charge personnalisée :
• CLEvalMeasure()
• CLEvalStateVariables()
CLUSEREvalCustomLoad()est la seule fonction qui doit toujours être présente dans l'application de charge personnalisée. Quand un utilisateur exécute une analyse se référant à la charge personnalisée, cette fonction est appelée à chaque étape de l'analyse. Elle renvoie la valeur de la charge personnalisée à l'instant donné. Cette valeur est utilisée pour calculer les forces et les accélérations pour ce pas de temps.
Dans la mesure où CLUSEREvalCustomLoad() transmet le nom de la charge personnalisée sous forme d'argument, de nombreuses charges personnalisées différentes peuvent être prises en charge par le même exécutable de charge personnalisée.
Dans CLUSEREvalCustomLoad(), l'utilisateur peut appeler CLEvalMeasure(). CLEvalMeasure() prend le nom d'une mesure, qui existe dans le modèle en tant qu'argument de saisie. Lors du développement de l'application de charge personnalisée, veillez à indiquer, dans votre documentation de charge personnalisée, le type de mesure que l'utilisateur doit créer dans le modèle.
Dans la mesure où la fonction CLUSEREvalCustomLoad() sera appelée plusieurs fois durant l'analyse, il est important qu'elle s'exécute aussi rapidement que possible ; sinon, le déroulement de vos analyses sera considérablement ralenti. Notamment, aucune opération UI ou changement de modèle ne doit être fait durant cet appel.
CLUSERDefineInit() est une autre fonction importante. Elle est appelée quand un utilisateur crée un nouveau moteur force ou une force ou un couple externe. La fonction permet à l'application de charge personnalisée de demander à l'utilisateur des données spécifiques à cette charge personnalisée. Les données peuvent être stockées et utilisées ultérieurement dans la fonction CLUSEREvalCustomLoad(). Par exemple, si la charge personnalisée est destinée à un ressort, la fonction CLUSERDefineInit() peut demander à l'utilisateur de fournir la constante du ressort pour cette charge.
La fonction CLUSERRunInit() est appelée avant qu'un utilisateur n'exécute une analyse se référant à la charge personnalisée.
Les fonctions restantes peuvent concourir à mettre en oeuvre des systèmes de contrôle utilisant la charge personnalisée. L'application de charge personnalisée peut fournir un jeu de valeurs dérivées qui est intégré à chaque pas de temps.
|
Ces routines d'initialisation sont appelées avant que l'analyse ne se déroule. Par conséquent, il est préférable de ne pas appeler CLEValMeasure() ou CLEvalStateVariables()à partir de celles-ci.
|
La fonction CLUSERGetStateVariablesSize() est appelée avant le déroulement d'une analyse. Si l'application de charge personnalisée fournit une taille de variable d'état différente de zéro, Mechanism Dynamics appelle la fonction CLUSERGetStateVariables() avant d'exécuter l'analyse. Ensuite, à chaque pas de temps, CLUSERGetStateVariableDerivatives() est appelée pour l'obtention des valeurs dérivées actuelles.