Mechanism Design und Mechanism Dynamics > Mechanism Dynamics > Benutzerdefinierte Lasten > Allgemeine Einführung: Funktionen für benutzerdefinierte Lasten
  
Allgemeine Einführung: Funktionen für benutzerdefinierte Lasten
Wenn eine Anwendung für benutzerdefinierte Lasten gestartet wird, tauschen die Anwendung und Mechanism Dynamics Daten über direkte Funktionsaufrufe aus. Einige Funktionen werden durch Mechanism Dynamics von der Anwendung für benutzerdefinierte Lasten aufgerufen. Andere werden durch Mechanism Dynamics bereitgestellt und können durch die Anwendung für benutzerdefinierte Lasten aufgerufen werden. Jede Funktion kann eine Reihe von optionalen Argumenten haben, die Sie gegebenenfalls zu Ihrer Funktionsdefinition hinzufügen können.
Die folgenden Informationen beschreiben kurz die Funktionen der Anwendung für benutzerdefinierte Lasten.
Funktionen, die die Anwendung für benutzerdefinierte Lasten bereitstellt und die vom Entwickler für benutzerdefinierte Lasten geschrieben werden:
CLUSEREvalCustomLoad()
CLUSERDefineInit()
CLUSERRunInit()
CLUSERGetStateVariablesSize()
CLUSERInitStateVariables()
CLUSERGetStateVariableDerivatives()
Funktionen, die Mechanism Dynamics bereitstellt und die vom Entwickler für benutzerdefinierte Lasten aufgerufen werden können:
CLEvalMeasure()
CLEvalStateVariables()
CLUSEREvalCustomLoad() ist die einzige Funktion, die immer in der Anwendung für benutzerdefinierte Lasten vorhanden sein muss. Wenn ein Benutzer eine Analyse ausführt, die die benutzerdefinierte Last referenziert, wird diese Funktion bei jedem Zeitschritt der Analyse aufgerufen. Sie gibt den Wert für die benutzerdefinierte Last zu diesem Zeitpunkt zurück. Mit diesem Wert werden Kräfte und Beschleunigungen für diesen Zeitschritt berechnet.
Da CLUSEREvalCustomLoad() den Namen der benutzerdefinierten Last als Argument übergibt, können zahlreiche verschiedene benutzerdefinierte Lasten von derselben ausführbaren Datei für benutzerdefinierte Lasten unterstützt werden.
Innerhalb von CLUSEREvalCustomLoad() kann der Benutzer CLEvalMeasure() aufrufen. CLEvalMeasure() nimmt den Namen einer Messgröße, die im Modell vorhanden ist, als Eingabeargument. Geben Sie bei der Entwicklung der Anwendung für die benutzerdefinierte Last in Ihrer Dokumentation für die benutzerdefinierte Last unbedingt den Messgrößentyp an, den der Benutzer im Modell erzeugen soll.
Da CLUSEREvalCustomLoad() während der Analyse häufig aufgerufen wird, sollte diese Funktion unbedingt so schnell wie möglich ausgeführt werden, da andernfalls die Geschwindigkeit der Analyse stark abnimmt. Insbesondere sollten während dieses Aufrufs keine UI-Operationen oder Modelländerungen vorgenommen werden.
Eine weitere wichtige Funktion ist CLUSERDefineInit(). Sie wird aufgerufen, wenn ein Benutzer einen neuen Linearmotor oder eine externe Kraft bzw. ein Drehmoment erzeugt. Mit dieser Funktion kann die Anwendung für die benutzerdefinierte Last Daten vom Benutzer abfragen, die sich speziell auf diese benutzerdefinierte Last beziehen. Die Daten können gespeichert und später in der Funktion CLUSEREvalCustomLoad() verwendet werden. Wenn die benutzerdefinierte Last z.B. für eine Feder gilt, kann die Funktion CLUSERDefineInit() den Benutzer auffordern, die Federkonstante für diese Last bereitzustellen.
CLUSERRunInit() wird aufgerufen, bevor ein Benutzer eine Analyse ausführt, die die benutzerdefinierte Last referenziert.
Die restlichen Funktionen können dazu beitragen, Kontrollsysteme zu implementieren, die die benutzerdefinierte Last verwenden. Die Anwendung für die benutzerdefinierte Last kann einen Satz von abgeleiteten Werten liefern, die in jeden Zeitschritt integriert werden.
 
* Diese Initialisierungsroutinen werden vor einer Analyse aufgerufen. Daher ist es nicht sinnvoll, CLEValMeasure() oder CLEvalStateVariables() in diesen Routinen aufzurufen.
CLUSERGetStateVariablesSize() wird vor dem Ausführen einer Analyse aufgerufen. Wenn die Anwendung für die benutzerdefinierte Last eine Statusvariablengröße ungleich Null liefert, ruft Mechanism DynamicsCLUSERGetStateVariables() vor der Analyse auf. Dann wird CLUSERGetStateVariableDerivatives() bei jedem Zeitschritt aufgerufen, um die aktuellen abgeleiteten Werte zu erhalten.