Mechanism Design e Mechanism Dynamics > Mechanism Dynamics > Carichi personalizzati > Funzioni per i carichi personalizzati
  
Funzioni per i carichi personalizzati
Quando viene avviata un'applicazione di carichi personalizzati, gli scambi tra l'applicazione e Mechanism Dynamics vengono effettuati mediante chiamate dirette di funzioni. Alcune funzioni vengono chiamate dall'applicazione di carichi personalizzati mediante Mechanism Dynamics. Altre vengono fornite da Mechanism Dynamics e possono essere chiamate dall'applicazione di carichi personalizzati. A ogni funzione è possibile associare un certo numero di argomenti opzionali che è possibile aggiungere alla definizione della funzione quando necessario.
Di seguito è riportata una breve descrizione delle funzioni specifiche delle applicazioni di carichi personalizzati.
Funzioni fornite dall'applicazione di carichi personalizzati e scritte dallo sviluppatore di carichi personalizzati
CLUSEREvalCustomLoad()
CLUSERDefineInit()
CLUSERRunInit()
CLUSERGetStateVariablesSize()
CLUSERInitStateVariables()
CLUSERGetStateVariableDerivatives()
Funzioni fornite da Mechanism Dynamics e richiamabili dallo sviluppatore di carichi personalizzati:
CLEvalMeasure()
CLEvalStateVariables()
CLUSEREvalCustomLoad() l'unica funzione che deve sempre essere presente nell'applicazione di carichi personalizzati. Quando un utente esegue un'analisi che fa riferimento al carico personalizzato, questa funzione viene chiamata a ogni passo dell'analisi e restituisce il valore per il carico personalizzato in quel momento. Il valore restituito viene utilizzato per calcolare le forze e le accelerazioni per questo passo temporale.
Poiché la funzione CLUSEREvalCustomLoad() passa il nome del carico personalizzato come argomento, lo stesso eseguibile di carichi personalizzati può supportare molti carichi personalizzati diversi.
In CLUSEREvalCustomLoad(), l'utente può chiamare CLEvalMeasure(). CLEvalMeasure() utilizza come argomento di input il nome di una misura esistente nel modello. Quando sviluppate l'applicazione di carichi personalizzati, assicuratevi di indicare nella documentazione del carico il tipo di misura che desiderate che l'utente crei nel modello.
Poiché CLUSEREvalCustomLoad() sarà chiamata molte volte durante l'esecuzione dell'analisi, è importante che questa funzione sia completata il più rapidamente possibile per evitare che le esecuzioni delle analisi vengano rallentate drasticamente. In particolare, durante questa chiamata non dovrebbero sussistere operazioni di interfaccia utente o modifiche di modelli.
Un'altra funzione importante è CLUSERDefineInit(). Questa funzione viene chiamata quando l'utente crea una nuova forza motrice oppure una forza o una torsione esterna e consente all'utente di specificare dati specifici relativi al carico personalizzato. I dati possono essere memorizzati e utilizzati successivamente nella funzione CLUSEREvalCustomLoad(). Ad esempio, se il carico personalizzato è per una molla, la funzione CLUSERDefineInit() può richiedere all'utente di fornire la costante della molla per questo carico.
La funzione CLUSERRunInit() viene chiamata prima che un utente esegua una qualsiasi analisi che faccia riferimento al carico applicato.
Le funzioni rimanenti possono semplificare l'implementazione dei sistemi di controllo utilizzando il carico personalizzato. L'applicazione di carichi personalizzati può fornire un insieme di derivate di cui viene calcolata l'integrale a ogni passo temporale.
 
* Queste routine di inizializzazione vengono chiamate prima dell'esecuzione di un'analisi; pertanto, non è opportuno utilizzarle per chiamare CLEValMeasure() o CLEvalStateVariables().
CLUSERGetStateVariablesSize() viene chiamata prima dell'esecuzione di un'analisi. Se l'applicazione di carichi personalizzati fornisce una dimensione variabile dello stato diversa da zero, CLUSERGetStateVariables() viene chiamata in Mechanism Dynamics prima dell'esecuzione dell'analisi. Quindi, a ogni passo temporale, viene chiamata la funzione CLUSERGetStateVariableDerivatives() per calcolare le derivate correnti.