主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

管理信号线

随着模型的增长,模型组件有助于在功能和视觉上组织模型中的模块。为了在模型中以类似的方式组织信号线,您可以应用各种策略,例如将信号分组为总线。

为了演示如何减少信号线混乱,本示例实现了一个具有多个传感器和作动器的工厂。该工厂包含两个相同的质量弹簧阻尼器系统。一根梁连接着两个质量系统。

Diagram of two identical mass, spring, damper systems with the masses connected

传感器读取质量的位移。控制器调节梁中心的高度 x,并通过计算作动器必须施加到质量上的力来使梁保持水平。控制器使用梁端部之间的高度差 delta 来调平梁。

名为 BasicModelingSignals 的模型代表工厂及其环境、操作员和控制器。

mdl0 = "BasicModelingSignals";
open_system(mdl0);

Model with many signal lines

为了显示仿真后的信号,该模型使用了两个 Scope 模块。一个 Scope 模块显示目标和实际光束水平度。另一个 Scope 模块显示其中心光束的目标和实际位置,以及两端的实际光束位置。

sim(mdl0);

标记要记录的信号

为了减少信号线的数量,您可以将查看器直接连接到信号线或启用信号线的数据记录。通过选择一种不使用接收模块来可视化仿真数据的方式,您可以避免额外的信号线。

名为 BasicModelingLogging 的模型删除了 Scope 模块和相关信号线,然后启用这些信号的数据记录。

mdl1 = "BasicModelingLogging";
open_system(mdl1);

Model without Scope blocks and related lines

Operator 子系统中,标有 x_goaldelta_goal 的信号被标记为需要记录,如每个信号上方出现的图标所示。

Operator subsystem with logging icons above x_goal and delta_goal

Controller 子系统中,标记为 xdelta 的信号被标记为需要记录。

Controller subsystem with logging icons above x and delta

Plant 子系统中,标记为 x1x2 的信号被标记为需要记录。

Plant subsystem with logging icons above x1 and x2

仿真数据检查器可让您查看仿真后记录的信号数据。

sim(mdl1);

Simulation results in the Simulation Data Inspector with one plot for x, x1, x2, and x_goal and another plot for delta and delta_goal

对总线中的信号分组

为了进一步减少信号线的数量,您可以使用总线创建器或 Out Bus Element 模块将信号线分组为总线。所有信号线在总线中分组时都保留其身份,并且可以从总线下游分离。

通过创建总线,名为 BasicModelingBuses 的模型提供了更易读的系统表示。要查看公交线路样式,请编译模型。

mdl2 = "BasicModelingBuses";
open_system(mdl2);
set_param(mdl2,SimulationCommand="Update");

Model with bus input and output for each subsystem

该模型可以记录与名为 sensorgoal 的总线相关的信号线的数据,而不是单独记录这些总线中每个信号的数据。

将信号分组到总线后,仿真结果保持不变。

sim(mdl2);

Simulation results in the Simulation Data Inspector with signals grouped by bus but individually selected

另请参阅

主题