Software: FEM - Tutorial - Magnetfeld - Kennfeld-Export als Modelica-Code: Unterschied zwischen den Versionen
Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung |
|||
Zeile 9: | Zeile 9: | ||
* Dieser Quelltext enthält unter Benutzung der gewählten Covariance-Funktion die identifizierten Gauss-Ketten für alle Kriterien/Restriktionen (im Folgenden gekürzt): | * Dieser Quelltext enthält unter Benutzung der gewählten Covariance-Funktion die identifizierten Gauss-Ketten für alle Kriterien/Restriktionen (im Folgenden gekürzt): | ||
model Magnet_xx | |||
input SignalBlocks.InputPin #i[*]; | |||
input SignalBlocks.InputPin #s[*]; | |||
output SignalBlocks.OutputPin F[*]; | |||
output SignalBlocks.OutputPin Psi[*]; | |||
Real x1[2]; | |||
Real x2[2]; | |||
Real p[4]; | |||
function Covar_F | |||
input Real x1[2]; | |||
input Real x2[2]; | |||
input Real p[4]; | |||
output Real Co; | |||
Real W,v; | |||
algorithm | |||
W := 0; | |||
for i in 1:2 loop | |||
W := W + abs((x1[i]-x2[i])*p[i]); | |||
end for; | |||
Co := exp(-W); | |||
end Covar_F; | |||
function Covar_Psi | |||
input Real x1[2]; | |||
input Real x2[2]; | |||
input Real p[4]; | |||
output Real Co; | |||
Real W,v; | |||
algorithm | |||
W := 0; | |||
for i in 1:2 loop | |||
W := W + (abs((x1[i]-x2[i])*p[i]))^p[i+2]; | |||
end for; | |||
Co := exp(-W); | |||
end Covar_Psi; | |||
algorithm | |||
F := 21.9944943; | |||
F := F+27.0736873*#i^1; | |||
F := F-3.34439778*#i^2; | |||
F := F-66.7136402*#s^1; | |||
F := F+28.9861434*#s^2; | |||
p[1] := 1.46052736; | |||
p[2] := 2.97488334; | |||
x1[1] := #i; | |||
x1[2] := #s; | |||
x2[1] := 1.51; | |||
x2[2] := 0.53; | |||
F := F-1.21150144*Covar_F(x1,x2,p); | |||
x2[1] := 0.01; | |||
x2[2] := 0.03; | |||
F := F-32.1176391*Covar_F(x1,x2,p); | |||
x2[1] := 1.01; | |||
x2[2] := 0.03; | |||
F := ... | |||
: | |||
: | |||
Psi := 0.00826522722; | |||
Psi := Psi+0.0328575998*#i^1; | |||
Psi := Psi-0.00550887003*#i^2; | |||
Psi := Psi-0.0152615903*#s^1; | |||
Psi := Psi+0.00398458441*#s^2; | |||
p[1] := 2.00024016; | |||
p[2] := 2.61932714; | |||
p[3] := 1.99939022; | |||
p[4] := 1.99993292; | |||
x1[1] := #i; | |||
x1[2] := #s; | |||
x2[1] := 1.51; | |||
x2[2] := 0.53; | |||
Psi := Psi-0.0184546196*Covar_Psi(x1,x2,p); | |||
x2[1] := 0.01; | |||
x2[2] := 0.03; | |||
Psi := Psi-0.186293544*Covar_Psi(x1,x2,p); | |||
x2[1] := 1.01; | |||
x2[2] := 0.03; | |||
Psi := ... | |||
: | |||
'''''===>>> Hier geht es bald weiter !!!''''' | '''''===>>> Hier geht es bald weiter !!!''''' |
Version vom 17. September 2010, 14:40 Uhr
Kennfeld-Export als Modelica-Code
Modell-Export als Modelica-Code
Nachdem gezeigt wurde, wie man Antwortflächen als C-Code exportieren und in ein SimulationX-Modell einbinden kann, soll der gleiche Prozess nun beispielhaft mit Modelica-Code durchgeführt werden (Analyse - Antwortflächen - Modell Export):
- Wir speichern unser Ersatzmodell als Modelica-Code in die Datei Magnet_xx.mo. (xx=Teilnehmer-Nummer in der Lehrveranstaltung).
- Dieser Quelltext enthält unter Benutzung der gewählten Covariance-Funktion die identifizierten Gauss-Ketten für alle Kriterien/Restriktionen (im Folgenden gekürzt):
model Magnet_xx input SignalBlocks.InputPin #i[*]; input SignalBlocks.InputPin #s[*]; output SignalBlocks.OutputPin F[*]; output SignalBlocks.OutputPin Psi[*]; Real x1[2]; Real x2[2]; Real p[4];
function Covar_F input Real x1[2]; input Real x2[2]; input Real p[4]; output Real Co; Real W,v; algorithm W := 0; for i in 1:2 loop W := W + abs((x1[i]-x2[i])*p[i]); end for; Co := exp(-W); end Covar_F;
function Covar_Psi input Real x1[2]; input Real x2[2]; input Real p[4]; output Real Co; Real W,v; algorithm W := 0; for i in 1:2 loop W := W + (abs((x1[i]-x2[i])*p[i]))^p[i+2]; end for; Co := exp(-W); end Covar_Psi;
algorithm F := 21.9944943; F := F+27.0736873*#i^1; F := F-3.34439778*#i^2; F := F-66.7136402*#s^1; F := F+28.9861434*#s^2; p[1] := 1.46052736; p[2] := 2.97488334; x1[1] := #i; x1[2] := #s; x2[1] := 1.51; x2[2] := 0.53; F := F-1.21150144*Covar_F(x1,x2,p); x2[1] := 0.01; x2[2] := 0.03; F := F-32.1176391*Covar_F(x1,x2,p); x2[1] := 1.01; x2[2] := 0.03; F := ... : : Psi := 0.00826522722; Psi := Psi+0.0328575998*#i^1; Psi := Psi-0.00550887003*#i^2; Psi := Psi-0.0152615903*#s^1; Psi := Psi+0.00398458441*#s^2; p[1] := 2.00024016; p[2] := 2.61932714; p[3] := 1.99939022; p[4] := 1.99993292; x1[1] := #i; x1[2] := #s; x2[1] := 1.51; x2[2] := 0.53; Psi := Psi-0.0184546196*Covar_Psi(x1,x2,p); x2[1] := 0.01; x2[2] := 0.03; Psi := Psi-0.186293544*Covar_Psi(x1,x2,p); x2[1] := 1.01; x2[2] := 0.03; Psi := ... :
===>>> Hier geht es bald weiter !!!