数据依赖违反语义错误和子系统
你有没有收到一个“数据依赖违反”错误消息从一个仿真软件模型?金宝app
我将试着解释为什么发生这种情况,你需要做些什么来避免这个错误我最喜欢通过引入模型的例子。金宝app
函数调用子系统
首先,让我们解释函数调用子系统是执行。
下面的示例模型,我显示模块顺序。你可以注意到函数调用子系统是指出“0:F {1}”。“F”意味着这个子系统是函数调用,你应该看看调用生成器顺序。在本例中,它是“0:1”。
如果我们生成代码,我们可以看到,函数调用执行子系统的顺序:
调用一个函数调用子系统从一个原子子系统
现在让我们把函数调用发电机内部原子子系统。
同样的原理与前面的例子适用。自源现在原子子系统内部,原子内部的函数调用子系统被子系统。
数据依赖违反
现在,如果函数调用子系统需要原子子系统的输出作为输入。
如果你想更新这个模型中,您将收到以下错误:
输入数据依赖违反由于函数调用或行动子系统。看到模型库子系统的例子有效和无效的例子函数调用和行动子系统金宝app
输入端口(1,FcnCall)“fcnCallExample1c / FcnCallSS”参与的循环
输入端口(1)“fcnCallExample1c / GainBefore”参与的循环
我希望基于前面的例子,你可以想象为什么这个语义是不可能的。一方面,我指定原子是原子,包括FcnCallSS得到了如上所示。另一方面,FcnCallSS需要的输出Gain3。但Gain3不能执行,直到原子就完成了。
要做什么吗?
对这一主题得到帮助,名为搜索模型的例子金宝app金宝app仿真软件子系统的语义。它可以打开使用sl_subsys_semantics。
这个例子是一个集合的模型显示出好的和坏的实践不同类型的子系统模型。金宝app对于函数调用子系统,您将发现大量的模型。绿色的例子展示了正确的方法连接函数调用子系统和红色的例子解释常见的错误。
对于上面的示例,sl_subsys_fcncallerr7是你正在寻找的。
现在轮到你了我希望sl_subsys_semantics会给我如此对你有用!给它一看,离开我们下面的评论。
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。