我有一个复杂的Simulink模型,并希望在子系统中生成一个简单的错误消息信号,其中包含许多传入的错误观察信号。 这些输入信号在总线中组织,并且始终为0,在发生错误时执行:然后存在值的边沿。 错误消息应包含单独的位代码,该代码是为excel列表中的每个错误名称和错误值定义的。
如何将此错误代码分配给具有上升沿的特定错误信号?我需要类似查找功能的东西:
(每个信号):
如果信号的边缘为值,则 查看列表中的信号名称 并输出其错误代码。
我的想法是使用带有总线输入和一维输出的MATLAB功能块。在模拟开始之前生成的.mat文件包含一个结构,其中包含来自excel文件的列表输入,应该用作MATLAB函数中的参数。
这个解决方案看起来有点困难,因为代码生成不支持动态字段引用和通过结构进行交互。我甚至无法从结构中获取信号名称,因为也不支持 fieldnames 功能。
我现在想知道是否有另一种方法或MATLAB功能仍然可以解决我的问题。我可以在PreLoadfcn中为MATLAB功能块生成代码吗? S功能在这里有意义吗?或者是否有基于Simulink的解决方案进行信号转换?