1.打开 Sysplorer 软件并加载 Modelica 标准库;

2.快速新建一个空模型;

3.在模型浏览器中搜索 “swicth”,并开启结果过滤,可以搜索到标准库中自带的几个选择器模块,其中:
• “Modelica.Blocks.Logical.LogicalSwitch” 是 bool 型选择器模块,通过一个 bool 输入来控制得到二选一的 bool 输出;
• “Modelica.Blocks.Logical.Switch” 是实数型选择器
• “Modelica.Blocks.Logical.IntegerSwitch” 是整型选择器

4.关闭结果过滤功能,找到之前快速新建的模型后,在其中拖入一个实数型选择器模块;

5.按如下图进行建模,对标准库中的整型选择器进行测试。
建模原理是添加两个实数型常量模块、一个布尔型常量模块和一个实数型输出模块;

6.选中组件 “const” 打开组件参数面板,设置其常量值为 1;设置 “const1” 的常量值为 2;布尔型常量模块的默认值是 true;

此时模型代码如下:
model Model38
Modelica.Blocks.Logical.Switch switch1
annotation (Placement(transformation(origin = {-5.02564, -9.33333}, extent = {{-10, -10}, {10, 10}})));
Modelica.Blocks.Sources.Constant const(k=1)
annotation (Placement(transformation(origin = {-98.9399, 24.1413}, extent = {{-10, -10}, {10, 10}})));
Modelica.Blocks.Sources.Constant const1(k=2)
annotation (Placement(transformation(origin={-99.3357,-53.4276},
extent={{-10,-10},{10,10}})));
Modelica.Blocks.Sources.BooleanConstant booleanConstant
annotation (Placement(transformation(origin={-99.3357,-9.49824},
extent={{-10,-10},{10,10}})));
Modelica.Blocks.Interfaces.RealOutput y
annotation (Placement(transformation(origin={113.187,-10.2898},
extent={{-10,-10},{10,10}})));
annotation(Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
grid={2,2})));
equation
connect(y, switch1.y)
annotation(Line(origin={60,-10},
points={{53.187,-0.2898},{-54.02564,-0.2898},{-54.02564,0.66667}},
color={0,0,127}));
connect(const.y, switch1.u1)
annotation(Line(origin={-52,11},
points={{-35.9399,13.1413},{34.9744,13.1413},{34.9744,-12.33333}},
color={0,0,127}));
connect(booleanConstant.y, switch1.u2)
annotation(Line(origin={-52,-12},
points={{-36.3357,2.50176},{34.9744,2.50176},{34.9744,2.66667}},
color={255,0,255}));
connect(const1.y, switch1.u3)
annotation(Line(origin={-53,-35},
points={{-35.3357,-18.4276},{35.9744,-18.4276},{35.9744,17.66667}},
color={0,0,127}));
end Model38;
7.点击启动仿真;

8.仿真完毕后,软件会自动跳转到仿真页面。勾选变量 “y” 显示其曲线,可以观察到此时 “y” 的输出为 1;

9.返回建模页面,设置布尔型常量模块的值为 false 后再次进行仿真;

10.再次观察仿真结果,此时 “y” 的输出为 2;

11.标准库自带的模块都是一个布尔型常量值控制两个输出,以下介绍如何控制多个输出。
快速新建一个模型,并在其中拖入一个整型输入模块、四个实数型输入模块还有一个实数型输出模块;

12.切换到模型文本,在其中添加等式;

model Model39
Modelica.Blocks.Interfaces.RealOutput y
annotation(Placement(transformation(origin={110,0},
extent={{-10,-10},{10,10}}),
iconTransformation(origin={0,0})));
Modelica.Blocks.Interfaces.RealInput u
annotation (Placement(transformation(origin={-120,80},
extent={{-20,-20},{20,20}}),
iconTransformation(origin={0,0})));
Modelica.Blocks.Interfaces.RealInput u1
annotation (Placement(transformation(origin={-120,40},
extent={{-20,-20},{20,20}}),
iconTransformation(origin={0,0})));
Modelica.Blocks.Interfaces.RealInput u2
annotation (Placement(transformation(origin={-120,-40},
extent={{-20,-20},{20,20}}),
iconTransformation(origin={0,0})));
Modelica.Blocks.Interfaces.RealInput u3
annotation (Placement(transformation(origin={-120,-80},
extent={{-20,-20},{20,20}}),
iconTransformation(origin={0,0})));
Modelica.Blocks.Interfaces.IntegerInput u4
annotation (Placement(transformation(origin={-120,0},
extent={{-20,-20},{20,20}}),
iconTransformation(origin={0,0})));
annotation(Diagram(coordinateSystem(extent={{-100,-100},{100,100}},
grid={2,2})));
equation
if u4 == 1 then
y = u;
elseif u4 == 2 then
y = u1;
elseif u4 == 3 then
y = u2;
elseif u4 == 4 then
y = u3;
else
y = u;
end if;
end Model39;
13.再次新建一个空模型后将之前建立好的 Model39 四选择器模型拖入其中,并拖入四个实数型常量模块、一个整型常量模块和一个实数型输出模块。同时设置四个实数型常量模块值为1、2、3、4;

14.分别设置整型常量模块的参数 k 值为 1、2、3、4 后启动仿真观察输出结果 y的值;

可以看到结果随输入控制的更改而发生更改;