Skip to content

Commit

Permalink
Update the model testing script to handle MSL 3.1
Browse files Browse the repository at this point in the history
- Changed some MSL 3.1 simulation tests to use the model testing script
  • Loading branch information
sjoelund committed May 12, 2015
1 parent 3ffa328 commit e5d820d
Show file tree
Hide file tree
Showing 35 changed files with 1,044 additions and 890 deletions.
8 changes: 8 additions & 0 deletions simulation/libraries/common/ModelTesting.mos
Expand Up @@ -19,6 +19,14 @@ compareVars := {"revolute1.phi","revolute1.w","revolute1.a","revolute2.phi","rev
*/

echo(false);

b:=loadModel(packageName,{packageVersion});
if not b then
print("loadModel("+typeNameString(packageName)+","+packageVersion+")\n");
print(OpenModelica.Scripting.cd() + "\n");
exit(1);
end if;

debug := false;
startRun := true;
alarm(timeout);
Expand Down
4 changes: 3 additions & 1 deletion simulation/libraries/common/ModelTestingDefaults.mos
@@ -1,7 +1,9 @@
echo(false);
loadFile("../common/ModelTesting.mo");
GC_expand_hp(500*1024*1024); // ~300 MB to load MSL, 200MB more for the smallest models to simulate
loadModel(Modelica,{"3.2.1"}) and setCommandLineOptions("+d=nogen"); // Use and so I don't need to baseline the tests again...
packageName := $TypeName(Modelica);
packageVersion := "3.2.1";
setCommandLineOptions("+d=nogen"); // Use and so I don't need to baseline the tests again...
modelTestingType := OpenModelicaModelTesting.Kind.VerifiedSimulation;
simulationRuntime := OpenModelicaModelTesting.SimulationRuntime.C;
stopTime := 0.0; // 0.0 means to read the stopTime from the experiment annotation, or use the OpenModelica default
Expand Down
Expand Up @@ -2,49 +2,36 @@
// keywords: simulation MSL Examples
// status: correct
//
// Simulation Results
// Simulation Results
// Modelica Standard Library
//

loadModel(Modelica,{"3.1"});
runScript("../common/ModelTestingDefaults.mos"); getErrorString();
packageVersion := "3.1";

modelTestingType := OpenModelicaModelTesting.Kind.VerifiedSimulation;
modelName := $TypeName(Modelica.Blocks.Examples.InverseModel);
compareVars :=
{
"firstOrder1.y",
"firstOrder2.y",
"feedback.y"
};

runScript(modelTesting);getErrorString();

simulate(Modelica.Blocks.Examples.InverseModel,stopTime=2);
res := OpenModelica.Scripting.compareSimulationResults("Modelica.Blocks.Examples.InverseModel_res.mat",
getEnvironmentVar("REFERENCEFILES")+"/msl32/Modelica.Blocks.Examples.InverseModel.mat","Modelica.Blocks.Examples.InverseModel_diff.csv",0.01,0.01,{"firstOrder1.y",
"firstOrder2.y",
"der(firstOrder2.y)",
"sine.y",
"inverseBlockConstraints.y2",
"feedback.y",
"firstOrder1.k",
"firstOrder1.T",
"firstOrder1.initType",
"firstOrder1.y_start",
"sine.amplitude",
"sine.freqHz",
"sine.phase",
"sine.offset",
"sine.startTime",
"firstOrder2.k",
"firstOrder2.T",
"firstOrder2.initType",
"firstOrder2.y_start",
"criticalDamping.f",
"criticalDamping.initType",
"criticalDamping.y_start",
"criticalDamping.alpha",
"criticalDamping.w",
"criticalDamping.x_start[1]",
"criticalDamping.n",
"criticalDamping.normalized"});


// Result:
// true
// record SimulationResult
// resultFile = "Modelica.Blocks.Examples.InverseModel_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 2.0, numberOfIntervals = 500, tolerance = 0.000001, method = 'dassl', fileNamePrefix = 'Modelica.Blocks.Examples.InverseModel', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// {"Files Equal!"}
// "true
// "
// ""
// "3.1"
// OpenModelicaModelTesting.Kind.VerifiedSimulation
// Modelica.Blocks.Examples.InverseModel
// {"firstOrder1.y","firstOrder2.y","feedback.y"}
// Simulation options: startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Modelica.Blocks.Examples.InverseModel', options = '', outputFormat = 'mat', variableFilter = 'time|firstOrder1.y|firstOrder2.y|feedback.y', cflags = '', simflags = ' -abortSlowSimulation -alarm=360 -emit_protected'
// Result file: Modelica.Blocks.Examples.InverseModel_res.mat
// Files Equal!
// "true
// "
// ""
// endResult
Expand Up @@ -2,51 +2,52 @@
// keywords: simulation MSL Examples
// status: correct
//
// Simulation Results
// Simulation Results
// Modelica Standard Library
//

loadModel(Modelica,{"3.1"});
runScript("../common/ModelTestingDefaults.mos"); getErrorString();
packageVersion := "3.1";

modelTestingType := OpenModelicaModelTesting.Kind.VerifiedSimulation;
modelName := $TypeName(Modelica.Electrical.Analog.Examples.CauerLowPassSC);
compareVars :=
{
"R4.Capacitor1.v",
"R5.Capacitor1.v",
"R8.Capacitor1.v",
"R9.Capacitor1.v",
"R1.Capacitor1.v",
"R2.Capacitor1.v",
"R3.Capacitor1.v",
"Rp1.Capacitor1.v",
"R7.Capacitor1.v",
"R10.Capacitor1.v",
"R11.Capacitor1.v",
"C3.v",
"C7.v",
"C1.v",
"C4.v",
"C8.v"
};

runScript(modelTesting);getErrorString();

simulate(Modelica.Electrical.Analog.Examples.CauerLowPassSC,stopTime=60.0);
res := OpenModelica.Scripting.compareSimulationResults("Modelica.Electrical.Analog.Examples.CauerLowPassSC_res.mat",
getEnvironmentVar("REFERENCEFILES")+"/msl32/Modelica.Electrical.Analog.Examples.CauerLowPassSC.mat","Modelica.Electrical.Analog.Examples.CauerLowPassSC_diff.csv",0.01,0.001,
{"C3.v",
"C5.v",
"C7.v",
"C8.v",
"C9.v",
"R4.Capacitor1.v",
"R5.Capacitor1.v",
"R8.Capacitor1.v",
"R9.Capacitor1.v",
"R1.Capacitor1.v",
"R2.Capacitor1.v",
"R3.Capacitor1.v",
"Rp1.Capacitor1.v",
"R7.Capacitor1.v",
"R10.Capacitor1.v",
"R11.Capacitor1.v",
"der(C3.v)",
"der(C7.v)",
"der(R4.Capacitor1.v)",
"der(R5.Capacitor1.v)",
"der(R8.Capacitor1.v)",
"der(R9.Capacitor1.v)",
"der(R1.Capacitor1.v)",
"der(R2.Capacitor1.v)",
"der(R3.Capacitor1.v)",
"der(Rp1.Capacitor1.v)",
"der(R7.Capacitor1.v)",
"der(R10.Capacitor1.v)",
"der(R11.Capacitor1.v)"});

// Result:
// true
// record SimulationResult
// resultFile = "Modelica.Electrical.Analog.Examples.CauerLowPassSC_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 60.0, numberOfIntervals = 1500, tolerance = 0.000001, method = 'dassl', fileNamePrefix = 'Modelica.Electrical.Analog.Examples.CauerLowPassSC', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// {"Files Equal!"}
// "true
// "
// ""
// "3.1"
// OpenModelicaModelTesting.Kind.VerifiedSimulation
// Modelica.Electrical.Analog.Examples.CauerLowPassSC
// {"R4.Capacitor1.v","R5.Capacitor1.v","R8.Capacitor1.v","R9.Capacitor1.v","R1.Capacitor1.v","R2.Capacitor1.v","R3.Capacitor1.v","Rp1.Capacitor1.v","R7.Capacitor1.v","R10.Capacitor1.v","R11.Capacitor1.v","C3.v","C7.v","C1.v","C4.v","C8.v"}
// Simulation options: startTime = 0.0, stopTime = 60.0, numberOfIntervals = 1500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Modelica.Electrical.Analog.Examples.CauerLowPassSC', options = '', outputFormat = 'mat', variableFilter = 'time|R4.Capacitor1.v|R5.Capacitor1.v|R8.Capacitor1.v|R9.Capacitor1.v|R1.Capacitor1.v|R2.Capacitor1.v|R3.Capacitor1.v|Rp1.Capacitor1.v|R7.Capacitor1.v|R10.Capacitor1.v|R11.Capacitor1.v|C3.v|C7.v|C1.v|C4.v|C8.v', cflags = '', simflags = ' -abortSlowSimulation -alarm=360 -emit_protected'
// Result file: Modelica.Electrical.Analog.Examples.CauerLowPassSC_res.mat
// Files Equal!
// [Modelica 3.1/Electrical/Analog/Sources.mo:138:5-138:53:writable] Warning: Parameter V.V has no value, and is fixed during initialization (fixed=true), using available start value (start=1.0) as default value.
// Warning: The initial conditions are not fully specified. Use +d=initialization for more information.
//
// "true
// "
// ""
// endResult
Expand Up @@ -2,29 +2,34 @@
// keywords: simulation MSL Examples
// status: correct
//
// Simulation Results
// Simulation Results
// Modelica Standard Library
//

loadModel(Modelica,{"3.1"});
runScript("../common/ModelTestingDefaults.mos"); getErrorString();

modelTestingType := OpenModelicaModelTesting.Kind.VerifiedSimulation;
modelName := $TypeName(Modelica.Electrical.Analog.Examples.CompareTransformers);
compareVars :=
{
"basicTransformer.i1",
"basicTransformer.i2",
"inductor21.i"
};

runScript(modelTesting);getErrorString();

simulate(Modelica.Electrical.Analog.Examples.CompareTransformers);
res := OpenModelica.Scripting.compareSimulationResults("Modelica.Electrical.Analog.Examples.CompareTransformers_res.mat",
getEnvironmentVar("REFERENCEFILES")+"/msl32/Modelica.Electrical.Analog.Examples.CompareTransformers.mat","Modelica.Electrical.Analog.Examples.CompareTransformers_diff.csv",0.01,0.00001,
{"inductor21.i",
"basicTransformer.i1",
"basicTransformer.i2",
"der(inductor21.i)",
"der(basicTransformer.i1)",
"der(basicTransformer.i2)",
"der(inductor22.i)"});

// Result:
// true
// record SimulationResult
// resultFile = "Modelica.Electrical.Analog.Examples.CompareTransformers_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 50.0, numberOfIntervals = 50000, tolerance = 0.000001, method = 'dassl', fileNamePrefix = 'Modelica.Electrical.Analog.Examples.CompareTransformers', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// {"Files Equal!"}
// "true
// "
// ""
// OpenModelicaModelTesting.Kind.VerifiedSimulation
// Modelica.Electrical.Analog.Examples.CompareTransformers
// {"basicTransformer.i1","basicTransformer.i2","inductor21.i"}
// Simulation options: startTime = 0.0, stopTime = 50.0, numberOfIntervals = 50000, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Modelica.Electrical.Analog.Examples.CompareTransformers', options = '', outputFormat = 'mat', variableFilter = 'time|basicTransformer.i1|basicTransformer.i2|inductor21.i', cflags = '', simflags = ' -abortSlowSimulation -alarm=360 -emit_protected'
// Result file: Modelica.Electrical.Analog.Examples.CompareTransformers_res.mat
// Files Equal!
// "true
// "
// ""
// endResult
Expand Up @@ -2,78 +2,38 @@
// keywords: simulation MSL Examples
// status: correct
//
// Simulation Results
// Simulation Results
// Modelica Standard Library
//

loadModel(Modelica,{"3.1"});
runScript("../common/ModelTestingDefaults.mos"); getErrorString();
packageVersion := "3.1";

modelTestingType := OpenModelicaModelTesting.Kind.VerifiedSimulation;
modelName := $TypeName(Modelica.Electrical.Analog.Examples.HeatingMOSInverter);
compareVars :=
{
"Capacitor1.v",
"HeatCapacitor1.T"
};

runScript(modelTesting);getErrorString();

simulate(Modelica.Electrical.Analog.Examples.HeatingMOSInverter,stopTime=5.0,simflags="-emit_protected");
res := OpenModelica.Scripting.compareSimulationResults("Modelica.Electrical.Analog.Examples.HeatingMOSInverter_res.mat",
getEnvironmentVar("REFERENCEFILES")+"/msl32/Modelica.Electrical.Analog.Examples.HeatingMOSInverter.mat","Modelica.Electrical.Analog.Examples.HeatingMOSInverter_diff.csv",0.01,0.00001,
{"Capacitor1.v",
"HeatCapacitor1.T",
"der(Capacitor1.v)",
"der(HeatCapacitor1.T)",
"G.p.i",
"Sin.p.v",
"Capacitor1.p.i",
"HeatCapacitor1.der_T",
"HeatCapacitor1.port.Q_flow",
"TC1.dT",
"TC1.port_a.T",
"H_PMOS.LossPower",
"H_PMOS.S.i",
"H_PMOS.v",
"H_PMOS.uds",
"H_PMOS.ubs",
"H_PMOS.ugst",
"H_PMOS.ud",
"H_PMOS.us",
"H_PMOS.id",
"H_PMOS.beta_t",
"H_PMOS.vt_t",
"H_PMOS.k2_t",
"H_NMOS.LossPower",
"H_NMOS.D.i",
"H_NMOS.S.i",
"H_NMOS.v",
"H_NMOS.uds",
"H_NMOS.ubs",
"H_NMOS.ugst",
"H_NMOS.ud",
"H_NMOS.us",
"H_NMOS.id",
"H_NMOS.beta_t",
"H_NMOS.vt_t",
"H_NMOS.k2_t",
"V.p.v",
"V.p.i",
"TC2.dT",
"TC2.port_a.T",
"TC3.Q_flow",
"TC3.dT",
"G.p.v",
"Sin.p.i",
"Sin.n.v",
"Capacitor1.n.v",
"H_PMOS.G.i",
"H_PMOS.B.i",
"H_NMOS.G.i",
"H_NMOS.S.v",
"H_NMOS.B.v",
"H_NMOS.B.i",
"V.n.v",
"H_NMOS.gds",
"H_PMOS.gds"});


// Result:
// true
// record SimulationResult
// resultFile = "Modelica.Electrical.Analog.Examples.HeatingMOSInverter_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 5.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Modelica.Electrical.Analog.Examples.HeatingMOSInverter', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-emit_protected'",
// messages = ""
// end SimulationResult;
// {"Files Equal!"}
// "true
// "
// ""
// "3.1"
// OpenModelicaModelTesting.Kind.VerifiedSimulation
// Modelica.Electrical.Analog.Examples.HeatingMOSInverter
// {"Capacitor1.v","HeatCapacitor1.T"}
// Simulation options: startTime = 0.0, stopTime = 5.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'Modelica.Electrical.Analog.Examples.HeatingMOSInverter', options = '', outputFormat = 'mat', variableFilter = 'time|Capacitor1.v|HeatCapacitor1.T', cflags = '', simflags = ' -abortSlowSimulation -alarm=360 -emit_protected'
// Result file: Modelica.Electrical.Analog.Examples.HeatingMOSInverter_res.mat
// Files Equal!
// [Modelica 3.1/Electrical/Analog/Sources.mo:361:5-361:68:writable] Warning: Parameter Sin.freqHz has no value, and is fixed during initialization (fixed=true), using available start value (start=1.0) as default value.
// Warning: The initial conditions are not fully specified. Use +d=initialization for more information.
//
// "true
// "
// ""
// endResult

0 comments on commit e5d820d

Please sign in to comment.