SIMULINK和LabVIEW之间的广泛比较

时间:2013-06-19 07:27:01

标签: simulink labview

我正在努力确定为我的工作购买这两个中的哪一个。我使用过SIMULINK而不是LabVIEW。是否有人使用过两者并希望提供一些细节?我的调查标准是用户友好性,库和模板功能的可用性,实时探测设施,COTS硬件接口机会,代码生成质量,可测试性设计(即易于生成单元/验收测试)等。但是,如果任何人都想用更多标准教育我,请务必这样做!

对于不了解SIMULINK和LabVIEW的人 - 这些都是针对图形数据流建模(以及代码生成)的特定于域的语言(DSL)。这些是多工业工具,非常多地用于工程设计和建模。

重要 - 我很想知道SIMULINK和LabVIEW是否提供实时探测。例如,我有一个我想要模拟的模型。如果有与该模型中某些构建块关联的变量,我可以在模拟继续时查看它们吗?我知道SIMULINK肯定不可能,因为它有一个逐步调试器。我不知道LabVIEW中有类似内容。

我真的没有使用LabVIEW而暂时无法获取它因为我的工作互联网有下载限制和管理权限问题。这就是为什么我根本不能仅使用NI网站得出结论的原因。如果有任何白皮书可以解决这个问题,我也很想知道:)

自上次发布后更新

我使用过MATLAB代码生成器,并不会说它是最好的。但是,我现在听说SIMULINK嵌入式编码器是最好的代码生成器,几乎是其中一种。任何人都可以确认这是否有利于安全关键系统设计,即从安全关键子系统模型生成代码。我知道Mathworks不断尝试缩小差距,以实现完全灵活的生产级C / C ++代码生成。

我知道一个理想的答案是,“根据你想要做的事情,使用两者兼而有之”。有趣的是,我认为我正朝着这个方向前进。 ATEOTD,这是一笔很多钱,需要“很好”地度过。

提前致谢。

6 个答案:

答案 0 :(得分:14)

我使用了1995年的labVIEW和2000年的Simulink。现在我参与了使用MATALAB / Simulink / DSPACE的labVIEW Real Time和汽车ECU的控制系统设计和机器人系统仿真。

LabVIEW专注于测量系统,而MATLAB / SIMULINK则专注于动态模拟,

如果您运行复杂的模拟,并且您的工作是创建/调试控制器或工厂的复杂仿真模型,请使用Simulink + RealTimeWorkShop + StateFlowChart。 LabVIEW没有用于动态模拟的有效代码生成器。 RTW生成更小,更快的代码。

如果您的主要工作是为机器开发带控制器和GUI的系统,或者您想在现场部署控制器,请使用labVIEW。

如果您的主要工作是开发灵活的HIL或SIL系统,并且具有良好的GUI,则可以使用VeriStand。 Veristand可以混合使用Simulink和LabVIEW代码。

如果你有很大的预算(非常大)并且你正在从事汽车控制原型,DSPACE硬件是汽车ECUS或OPAL开发电力电路的快速开发的一个非常好的选择。但仅适用于控制器的原型或HIL测试。

从COTS硬件的角度来看: Mathworks不制造硬件 - > Matlab / Simulink支持多家供应商的硬件。

National Instruments生产/销售硬件 - > LabVIEW Real Time专注于支持NationalInstruments硬件。没有COTS完全替代。

答案 1 :(得分:6)

我完全没有使用Simulink的经验,所以我只对LV发表评论,虽然在维基百科上快速阅读Simulink似乎表明它主要关注模拟和建模,但肯定不是LabVIEW的情况。

好的,首先,LV不是DSL。虽然您不想将它用于任何项目,但它是一种通用编程语言,您应该考虑到这一点。我知道NI有一个针对LV的模拟工具包,如果这是你之后的事情可能对你有帮助,但我完全没有经验。我看到它的图像似乎表明它为LV添加了一种特殊的图形用于模拟。

其次,LV不限于任何类型的硬件。它是一种通用语言,因此您可以编写根本不会使用任何硬件的代码,使用或运行在NI硬件上的代码或将使用任何硬件的代码(通过它DLL调用,.NET程序集,RS232,TCP,GPIB或您能想到的任何其他选项)。各种设备都有大量的LV驱动程序,驱动程序的质量通常取决于是谁编写的。

第三,你当然可以在LV中实时探测。您编写代码,就像在C或Java中编写代码一样,运行它时,您有几个调试选项:

  1. 单步。这实际上并不常见,部分原因是LV是平行的。
  2. 执行突出显示。这会以慢动作运行代码,同时显示各种线路中的所有值。
  3. 探针,它显示每根电线的最后一个值,其中电线填充变量在基于文本的语言中执行的相同功能。这实时更新,我认为是你想要的。
  4. 保留导线值,即使在数据通过导线后也可以探测导线。这与您在带有变量的基于文本的IDE中获得的类似。在LV中你通常不会拥有它,因为线值是瞬态的,所以除非你明确要求,否则不会保留值。
  5. 当然,既然您正在谈论代码,您也可以简单地编写代码以在图形或数字指示器上将值显示在屏幕上或将它们记录到文件中,因此应该没有需要进行实际探测。您还可以添加分析代码等。

    第四,您可以尝试在功能完备的评估模式下下载和运行LV。如果我没记错的话,如果你在他们的网站上注册,NI目前给你7天,然后45天。如果你不能在工作电脑上这样做,你可以在家里试试。如果您的问题仅在下载时,您可以尝试联系当地的NI办事处并要求他们向您发送DVD。

    请注意,我对建模和模拟一无所知,所以我不知道为了做你想做的事情,你实际上要编写什么样的代码。我假设如果NI有一个特殊的模块,那么它不是你可以在常规代码中完全覆盖的东西(至少如果你想要原始的符号),但我会说,如果你可以写在C中做你想要的代码,没有理由你不能在LV中编写它(当然,假设你知道如何在LV中编写代码)。

答案 2 :(得分:1)

许多最佳答案必须取决于您的最终设计要求。你在开发产品吗?如果是这样,你在哪个发展阶段?或者你在做研究吗?

我最近和你一样做了比较。我知道LV,但是想要转向更加硬件可扩展的选项,因为NI HW的数量非常昂贵。也就是说,我的公司想要转向产品。 LV和NI HW为您提供的灵活性。与C相比,您可以非常快速地更改代码。另一方面,LV不能在与C一样多的不同硬件平台上运行。所以我想找到一个适用于实时控制和数据采集的廉价平台,因此,如果我们想要以3万美元的价格销售产品,我们的控制器将不会花费15,000美元。我们最终得到了Diamond Systems Linux SBC。有趣的是,Simulink最终使用了大多数昂贵的硬件!它确实具有很大的灵活性,可以生成代码,以及模型工厂和控制器。但是,LV也可以这样做。

正如Yair所写,LV有很多很好的调试工具。一个不太为人所知的更有趣的工具是SubVI的Suspend when Called选项。这允许您在执行暂停时尽可能多地使用SubVI的输入和输出。

答案 3 :(得分:0)

据我了解(我从未真正使用它),LabView仅支持NI硬件,并且更加面向硬件。 Simulink支持来自多个供应商的硬件,无论是用于数据采集还是实时实现,但是可能需要更多的工作来让用户与他或她自己的硬件接口(比LabView更少的插件和播放)。另一方面,Simulink提供工具来支持整个基于模型的设计过程,从建模和仿真,控制设计,验证和验证,代码生成,硬件在环等......

免责声明:我曾经在MathWorks工作。

答案 4 :(得分:0)

你们可能真的对Control Design adn Simulation Module for LabVIEW感兴趣。它做了很多模拟,并且将来可能与Simulink竞争。我不是一名控制工程师,但我有时会用它来进行简单的测试,我很高兴我从一开始就不需要学习Simulink做一些工作,因为我熟悉LabVIEW哲学。

答案 5 :(得分:0)

MATLAB和Simulink是控制系统设计和仿真的事实标准。 Simulink控制器模型可以与工厂模型一起用于离线仿真,一直到嵌入式目标的实时实现。它是一个通用的模拟框架,具有广泛的内置库和单点专用库,可以通过C和其他语言创建自定义块(S功能块)进行扩展。它包括在进行非实时模拟时以图形,数字显示,量具等显示值的功能。 The Mathworks的实时目标支持包括x86(xPC Target)和几个嵌入式目标(MPC555等),并且还有第三方支持其他目标。上述dSPACE提供完整的原型控制器,包括对其功能强大的硬件的支持。 xPC Target包括对大量COTS PC数据采集卡的支持。实时目标支持包括GUI元素,如图形,数字显示器等。