管理信号线
随着模型的增长,模型组件有助于在功能和视觉上组织模型中的模块。为了在模型中以类似的方式组织信号线,您可以应用各种策略,例如将信号分组为总线。
为了演示如何减少信号线混乱,本示例实现了一个具有多个传感器和作动器的工厂。该工厂包含两个相同的质量弹簧阻尼器系统。一根梁连接着两个质量系统。
传感器读取质量的位移。控制器调节梁中心的高度 ,并通过计算作动器必须施加到质量上的力来使梁保持水平。控制器使用梁端部之间的高度差 来调平梁。
名为 BasicModelingSignals
的模型代表工厂及其环境、操作员和控制器。
mdl0 = "BasicModelingSignals";
open_system(mdl0);
为了显示仿真后的信号,该模型使用了两个 Scope 模块。一个 Scope 模块显示目标和实际光束水平度。另一个 Scope 模块显示其中心光束的目标和实际位置,以及两端的实际光束位置。
sim(mdl0);
标记要记录的信号
为了减少信号线的数量,您可以将查看器直接连接到信号线或启用信号线的数据记录。通过选择一种不使用接收模块来可视化仿真数据的方式,您可以避免额外的信号线。
名为 BasicModelingLogging
的模型删除了 Scope 模块和相关信号线,然后启用这些信号的数据记录。
mdl1 = "BasicModelingLogging";
open_system(mdl1);
在 Operator
子系统中,标有 x_goal
和 delta_goal
的信号被标记为需要记录,如每个信号上方出现的图标所示。
在 Controller
子系统中,标记为 x
和 delta
的信号被标记为需要记录。
在 Plant
子系统中,标记为 x1
和 x2
的信号被标记为需要记录。
仿真数据检查器可让您查看仿真后记录的信号数据。
sim(mdl1);
对总线中的信号分组
为了进一步减少信号线的数量,您可以使用总线创建器或 Out Bus Element 模块将信号线分组为总线。所有信号线在总线中分组时都保留其身份,并且可以从总线下游分离。
通过创建总线,名为 BasicModelingBuses
的模型提供了更易读的系统表示。要查看公交线路样式,请编译模型。
mdl2 = "BasicModelingBuses"; open_system(mdl2); set_param(mdl2,SimulationCommand="Update");
该模型可以记录与名为 sensor
和 goal
的总线相关的信号线的数据,而不是单独记录这些总线中每个信号的数据。
将信号分组到总线后,仿真结果保持不变。
sim(mdl2);