Ticket #5854: TestConvertStateSelectAttribute3.mo

File TestConvertStateSelectAttribute3.mo, 3.5 KB (added by dariomangoni@…, 5 years ago)

Almost minimal example

Line 
1package TestConvertStateSelectAttribute3
2 model Test
3 TestConvertStateSelectAttribute3.ModelUp modelUp(stateSelectOne = StateSelect.always, stateSelectTwo = StateSelect.prefer) annotation(
4 Placement(visible = true, transformation(origin = {-18, -2}, extent = {{-36, -36}, {36, 36}}, rotation = 0)));
5 inner Modelica.Mechanics.MultiBody.World world(n = {0, 0, -1}) annotation(
6 Placement(transformation(extent = {{108, -34}, {88, -14}})));
7 Modelica.Mechanics.MultiBody.Parts.Body body(r_CM = {0, 0, 0}, m = 1, I_11 = 0.1, I_22 = 0.1, I_33 = 0.1) annotation(
8 Placement(transformation(extent = {{-66, -12}, {-86, 8}})));
9 equation
10 connect(world.frame_b, modelUp.frame_a) annotation(
11 Line(points = {{88, -24}, {30, -24}, {30, -23.6}, {18, -23.6}}, color = {95, 95, 95}, thickness = 0.5));
12 connect(modelUp.frame_b, body.frame_a) annotation(
13 Line(points = {{-54, -2}, {-66, -2}}, color = {95, 95, 95}, thickness = 0.5));
14 annotation(
15 Icon(coordinateSystem(initialScale = 0.1)),
16 experiment(StopTime = 60, Interval = 0.001, Tolerance = 1e-06),
17 __Dymola_experimentFlags(Advanced(EvaluateAlsoTop = false, GenerateVariableDependencies = true, OutputModelicaCode = false), Evaluate = true, OutputCPUtime = true, OutputFlatModelica = false));
18 end Test;
19
20 model ModelUp
21 import SI = Modelica.SIunits;
22 Modelica.Mechanics.MultiBody.Interfaces.Frame_a frame_a annotation(
23 Placement(visible = true, transformation(origin = {100, -60}, extent = {{-16, -16}, {16, 16}}, rotation = 0), iconTransformation(origin = {100, -60}, extent = {{-16, -16}, {16, 16}}, rotation = 0)));
24 Modelica.Mechanics.MultiBody.Interfaces.Frame_b frame_b annotation(
25 Placement(visible = true, transformation(origin = {-100, 1.77636e-15}, extent = {{-14, -14}, {14, 14}}, rotation = 0), iconTransformation(origin = {-100, 1.77636e-15}, extent = {{-14, -14}, {14, 14}}, rotation = 0)));
26 parameter StateSelect stateSelectOne = StateSelect.prefer annotation(
27 Evaluate = true,
28 Dialog(tab = "Advanced"));
29 parameter StateSelect stateSelectTwo = StateSelect.prefer annotation(
30 Evaluate = true,
31 Dialog(tab = "Advanced"));
32 parameter Boolean externalSteering = true;
33 // components
34 TestConvertStateSelectAttribute3.ModelDown modelDown(stateSelectU = {stateSelectOne, stateSelectTwo}) annotation(
35 Placement(transformation(extent = {{-20, -10}, {-40, 10}})));
36 equation
37 modelDown.u[2] = 0;
38 connect(frame_b, modelDown.frame_b) annotation(
39 Line(points = {{-100, 0}, {-40, 0}}, color = {95, 95, 95}, thickness = 0.5));
40 connect(modelDown.frame_a, frame_a) annotation(
41 Line(points = {{-20, 0}, {102, 0}, {102, -60}, {100, -60}}));
42 annotation(
43 Diagram(graphics = {Bitmap(extent = {{-10, 12}, {-10, 12}}), Bitmap(extent = {{18, 60}, {18, 60}})}, coordinateSystem(initialScale = 0.1)));
44 end ModelUp;
45
46 model ModelDown
47 extends Modelica.Mechanics.MultiBody.Interfaces.PartialElementaryJoint;
48 parameter StateSelect stateSelectU[2] = fill(StateSelect.prefer, 2);
49 parameter StateSelect stateSelectLambda[2] = fill(StateSelect.avoid, 2);
50 Real u[2](stateSelect = stateSelectU, each fixed = false);
51 Real lambda[2](stateSelect = stateSelectLambda, each fixed = false);
52 annotation(
53 Icon(coordinateSystem(initialScale = 0.1)),
54 experiment(StartTime = 0, StopTime = 5, Tolerance = 1e-6, Interval = 0.01));
55 end ModelDown;
56 annotation(
57 uses(Modelica(version = "3.2.3")));
58
59end TestConvertStateSelectAttribute3;