据我所知,stateflow和simulink经常同时使用,并且都是MathWorks开发的环境,他们制作了Matlab。我可以知道它们之间有什么区别吗?
答案 0 :(得分:13)
Simulink主要是面向控制的解决方案。它以图形方式描述数学,如产品,总和,积分等。但是,它缺乏条件逻辑设施。在我看来,任何类型的if
构造都很快变得简洁和无法管理。我见过很多模型,这里有一个明确的界限,Simulink应该结束,Stateflow应该开始。
Stateflow非常适合逻辑,当然还有状态机。现在,在Stateflow中添加了Simulink功能块,我们有一个强大的组合,允许Stateflow中的状态机指向程序的其余部分。
就功能而言,它们在功能上都是完整的,这意味着您可以使用C语言进行编码,您可以使用Simulink或Stateflow进行编码。但是,我不建议在Stateflow中编码PID循环,但这是可能的。你也可以在Simulink中轻松创建一个状态机,但我建议反对它。
代码生成;在融合的开头,Stateflow和Simulink有单独的代码生成器,它们在代码生成时与更多Simulink生成的C代码一起缝合在一起。然后是CGIR(代码生成中介表示),它统一了Stateflow和Simulink之间的代码生成器。它出现在2007年左右,并继续大幅提升业绩。生成的代码在目标性能方面已经提高到公司可以在其嵌入式系统中使用代码并实际获得性能收益而不是受到轻微打击的程度。此外,生成代码的时间也大幅减少。 CGIR是目标语言编译器的替代品,但是,从不担心,TLC API仍然可用,对于那些开发了大量专有代码生成库的人来说可能是永远可用的。
希望这会有所帮助,如果有些事情听起来很可疑或者我需要澄清,请告诉我。
答案 1 :(得分:1)
Simulink用于响应动态变化的持续变化。 Stateflow用于响应动态变化的瞬时变化。 真实世界的系统必须响应连续和瞬时的变化。 同时使用Simulink和Stateflow,以便您可以使用正确的工具来完成正确的工作。示例:汽车的悬架动力学采用Simulink建模,而齿轮传动采用Stateflow建模。
答案 2 :(得分:0)
了解有关Stateflow的更多信息,请访问: http://www.mathworks.com/products/stateflow/examples.html
Stateflow已更新,因此可以非常轻松地在R2012b中创建state machines和流程图。
主要更新包括新的图形编辑器,状态转换表,MATLAB作为动作语言和集成调试器。查找这些功能的简短视频以及如何使用它们:
http://www.mathworks.com/products/stateflow/whatsnew.html
最好的, 亚洲时报Siddharth
答案 3 :(得分:0)
我目前也参与了simulink和stateflow。直到现在我在Simulink中完成了所有工作,但是一旦你必须实现逻辑(if,case),你的模型在编码之后就很难被分析。但我认为理论上你也可以在Simulink中做所有事情(如果我错了,请纠正我)。
macduff的答案解释了很好的差异。
此致 GR
答案 4 :(得分:0)
复杂状态机:Stateflow
复杂的数学过程:Simulink块
其他:Stateflow和Simulink都很好
答案 5 :(得分:0)
我在simulink和状态流环境上都工作过,都是Matlab工具。当您当时要设计一个反应系统或事件驱动的系统时,我们应该选择状态流而不是simulink。 因为与simulink相比,我们可以更好地控制状态流中的事件,尽管simulink调试容易,但是状态流中的可读性和代码生成容易。