Matlab 在Simulink中,Goto和From块通常被认为是不好的样式吗?

Matlab 在Simulink中,Goto和From块通常被认为是不好的样式吗?,matlab,styles,simulink,goto,Matlab,Styles,Simulink,Goto,我最近正在研究一个Simulink模型,并使用Goto和From块来防止一个非常繁忙的系统变成一团扭曲的电线。我被告知我不能使用Goto和From块,因为它们被认为是不良风格(至少,根据我的雇主的说法) 虽然我认为应尽可能保持电线连接,但我相信,如果模型会导致大量交叉电线,则Goto和From块可以显著提高系统/子系统的可读性;特别是如果可以对块进行颜色编码(例如紫色Goto块转到所有紫色从块) 我会提供一个我正在使用的子系统的图像,但我不确定我能不能把它放在这里。子系统本身有大约12个子系统块

我最近正在研究一个Simulink模型,并使用
Goto
From
块来防止一个非常繁忙的系统变成一团扭曲的电线。我被告知我不能使用
Goto
From
块,因为它们被认为是不良风格(至少,根据我的雇主的说法)

虽然我认为应尽可能保持电线连接,但我相信,如果模型会导致大量交叉电线,则
Goto
From
块可以显著提高系统/子系统的可读性;特别是如果可以对块进行颜色编码(例如紫色
Goto
块转到所有紫色
块)

我会提供一个我正在使用的子系统的图像,但我不确定我能不能把它放在这里。子系统本身有大约12个子系统块(以后可能会有更多),每个子系统块有两个总线型输出。每个子系统的第一个输出到
总线创建者
块,每个子系统的第二个输出到第二个
总线创建者
块。由于子系统垂直对齐,且
总线创建者
位于右侧,因此会导致许多交叉导线。我正在使用
Goto
From
块清理系统

我可以提供一个较小但类似的模型的图像,我为这个问题将其组合在一起。 对于一个大约有12个子系统的系统,这将变得非常繁忙。我使用
Goto
From
块连接子系统和
Bus Creator
s,没有过多的交叉线


我相信我的雇主可能带有使用基于文本语言的
goto
语句并将其应用于Simulink中的
goto
/
块的污名。一般来说,以这种方式(或任何方式)使用
Goto
From
块是否被视为不良风格?

Mathworks汽车咨询委员会发布了一些模型(PDF),其中包括使用
Goto
/
。他们列出的规则是:

  • 没有浮动的子系统,即所有输入/输出端口都通过
    Goto
    s连接。Simulink的一大优点是能够通过粗略的目视检查来确定信号流,不要通过将所有内容与
    Goto
    s链接来破坏这一点。在通过信号线连接的子系统之间至少有一个前馈和一个反馈回路

    • 我个人对反馈信号的看法是,它们都应该与信号线相连,但我相信你能想出这样的例子:画出所有这些信号会使模型混乱。

  • 第二条准则是关于
    Goto
    标记的范围;尽可能保持可视性
    本地

    • 我觉得只要您使用的匹配
      来自
      不超过
      转到
      下游的几个级别,将可见性设置为
      范围
      也是可以接受的。我还没有遇到对全局
      Goto
      标记的合法需求
  • 所以,所有的
    Goto
    用法都不错,在某些情况下,它可以提高可读性,这是对的。尽管如此,我认为Gotos不适合上面的图片。我意识到这只是一个例子,但我应该指出,如果正在创建的总线是虚拟的,那么创建者的输入顺序并不重要,重新排列总线创建和Mux块输入可以在可读性方面产生奇迹


    上述指导原则的问题在于,有弯曲它们的空间,您团队中的开发人员可能会这样做。即使每个人一开始都很努力地遵循这些准则,但在很长一段时间后的某一天,当您重新绘制模型的该部分以改进/添加功能时,您可能会违反这些准则。在实现一些很酷的新特性的过程中,重新安排输入和输出尤其令人恼火。这可能就是你的雇主选择全面禁止的原因。在某些情况下,这很不方便,但更易于实施。

    感谢您的输入!你让我意识到,有一种非常简单的方法可以防止信号在不使用Goto和from Block的情况下穿越整个区域。
    Goto
    Block不一定是坏风格。与公交车一起,它们是避免电线混乱的有效方法。