Funciones de carga personalizada
Cuando se inicia una aplicación de carga personalizada, los intercambios entre la aplicación y Mechanism Dynamics se efectúan mediante llamadas de funciones directas. Mechanism Dynamics llama a algunas funciones desde la aplicación de carga personalizada; Otras las proporciona Mechanism Dynamics y pueden invocarse desde la aplicación de carga personalizada. Cada función puede tener una cantidad opcional de argumentos que se pueden añadir a la definición de función cuando sea necesario.
A continuación, se describen brevemente las funciones específicas de la aplicación de carga personalizada.
Funciones que proporciona la aplicación de carga personalizada y que escribe el desarrollador de carga personalizada:
• CLUSEREvalCustomLoad()
• CLUSERDefineInit()
• CLUSERRunInit()
• CLUSERGetStateVariablesSize()
• CLUSERInitStateVariables()
• CLUSERGetStateVariableDerivatives()
Funciones que proporciona Mechanism Dynamics y que puede llamar al desarrollador de carga personalizada:
• CLEvalMeasure()
• CLEvalStateVariables()
CLUSEREvalCustomLoad() es la única función que siempre debe estar presente en la aplicación de carga personalizada. Cuando un usuario ejecuta un análisis que hace referencia a la carga personalizada, se llama a esta función a cada paso de tiempo del análisis. Devuelve el valor de la carga personalizada en ese momento. Este valor se utiliza para calcular fuerzas y aceleraciones para este paso de tiempo.
Dado que CLUSEREvalCustomLoad() pasa el nombre de la carga personalizada como un argumento, el mismo ejecutable de carga personalizada puede soportar diversas cargas personalizadas.
En CLUSEREvalCustomLoad(), el usuario puede llamar a CLEvalMeasure(). CLEvalMeasure() toma el nombre de una medida existente en el modelo como argumento de entrada. Al desarrollar la aplicación de carga personalizada, asegúrese de indicar en la documentación de la carga personalizada el tipo de medida que desea que el usuario cree en el modelo.
Dado que se llamará varias veces a CLUSEREvalCustomLoad() durante la ejecución del análisis, es importante que esta función se complete tan rápido como sea posible o la velocidad de ejecución de sus análisis disminuirá drásticamente. Especialmente, no debería haber operaciones de IU o cambios en el modelo durante esta llamada.
Otra función importante es CLUSERDefineInit(). Se invoca cuando un usuario crea un nuevo motor dinámico o una fuerza o torsión externa. Esta función permite que la aplicación de carga personalizada solicite al usuario datos específicos de esa carga personalizada. Estos datos pueden almacenarse para su uso posterior en la función CLUSEREvalCustomLoad(). Por ejemplo, si la carga personalizada es para un muelle, la función CLUSERDefineInit() podrá pedir al usuario que proporcione una constante de muelle para esta carga.
CLUSERRunInit() se invoca antes de que un usuario ejecute cualquier análisis que haga referencia a la carga personalizada.
El resto de funciones pueden ser útiles para implementar sistemas de control mediante la carga personalizada. La aplicación de carga personalizada puede proporcionar un conjunto de valores derivados que se integran en cada paso de tiempo.
|
Estas rutinas de inicialización se llaman antes de que se ejecute un análisis, por lo que no resulta adecuado llamar a CLEValMeasure() ni a CLEvalStateVariables() desde ellas.
|
Se llama a la función CLUSERGetStateVariablesSize() antes de que se ejecute un análisis. Si la aplicación de carga personalizada proporciona un tamaño de variable de estado distinto de cero, Mechanism Dynamics llama a CLUSERGetStateVariables() antes de ejecutar el análisis. Posteriormente, en cada paso de tiempo, se invoca CLUSERGetStateVariableDerivatives() para obtener los valores derivados actuales.