我使用了1995年的labVIEW和2000年的Simulink。现在我参与了控制系统设计,使用labVIEW Real Time和使用MATALAB / Simulink / DSPACE的汽车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支持多家供应商的硬件。
NI生产/销售硬件 - > LabVIEW Real Time专注于支持NationalInstruments硬件。没有COTS完全替换。
你们可能真的很感兴趣 用于LabVIEW的控制设计和仿真模块 。它做了很多模拟,并且将来可能与Simulink竞争。我不是一名控制工程师,但我有时会用它来进行简单的测试,我很高兴我从一开始就不需要学习Simulink做一些工作,因为我熟悉LabVIEW哲学。
MATLAB和Simulink是控制系统设计和仿真的事实标准。 Simulink控制器模型可以与工厂模型一起用于离线仿真,一直到嵌入式目标的实时实现。它是一个通用的模拟框架,具有广泛的内置库和单点专用库,可以通过C和其他语言创建自定义块(S功能块)进行扩展。它包括在进行非实时模拟时以图形,数字显示,量具等显示值的功能。 The Mathworks的实时目标支持包括x86(xPC Target)和几个嵌入式目标(MPC555等),并且还有第三方支持其他目标。上述dSPACE提供完整的原型控制器,包括对其功能强大的硬件的支持。 xPC Target包括对大量COTS PC数据采集卡的支持。实时目标支持包括GUI元素,如图形,数字显示量具等。
我完全没有使用Simulink的经验,所以我只评论LV,虽然在维基百科上快速阅读Simulink似乎表明它主要关注模拟和建模,但LabVIEW的情况肯定不是这样。
好的,首先,LV不是DSL。虽然您不希望将它用于任何项目,但它是一种通用编程语言,您应该考虑到这一点。我知道NI有一个LV的模拟工具包,如果这就是你所追求的,它可能对你有帮助,但我绝对没有经验。我看到它的图像似乎表明它为LV添加了一种特殊的图形用于模拟。
其次,LV不限于任何类型的硬件。它是一种通用语言,因此您可以编写完全不使用任何硬件的代码,使用或运行NI硬件的代码或将使用任何硬件的代码(通过DLL调用,.NET程序集,RS232, TCP,GPIB或您可以想到的任何其他选项)。各种设备都有大量的LV驱动程序,驱动程序的质量通常取决于是谁编写的。
第三,你当然可以在LV实时探测。您编写代码,就像在C或Java中编写代码一样,并且在运行它时,您有几个调试选项:
当然,既然您在谈论代码,您也可以简单地编写代码以在图形或数字指示器上将值显示到屏幕上或将它们记录到文件中,因此不需要实际探测。您还可以添加分析代码等。
第四,您可以尝试在功能完备的评估模式下下载和运行LV。如果我没记错的话,如果你在他们的网站上注册,NI目前给你7天,然后45天。如果你不能在工作电脑上这样做,你可以在家里试试。如果您的问题仅在下载时,您可以尝试联系当地的NI办事处并要求他们向您发送DVD。
请注意,我对构建和模拟一无所知,所以我不知道为了做你想做的事情,你实际上要编写什么样的代码。我假设如果NI有一个特殊的模块,那么你不能在常规代码中完全覆盖(至少如果你想要原始符号),但我会说,如果你能编写代码做什么你想要在C中,没有理由你不能在LV中编写它(当然,假设你知道如何在LV中编写代码)。
据我所知(我从未真正用过它),LabView只支持NI硬件,而且更加面向硬件。 Simulink支持来自多个供应商的硬件,无论是用于数据采集还是实时实现,但是可能需要更多的工作来让用户与他或她自己的硬件接口(比LabView更少的插件和播放)。另一方面,Simulink提供工具来支持整个基于模型的设计过程,从建模和仿真,控制设计,验证和验证,代码生成,硬件在环等......
免责声明:我曾经在MathWorks工作。
很多最佳答案都必须取决于您的最终设计要求。你在开发产品吗?如果是这样,你在哪个发展阶段?或者你在做研究吗?
我最近和你一样做了比较。我知道LV,但是想要转向更加硬件可扩展的选项,因为NI HW的数量非常昂贵。也就是说,我的公司想要转向产品。 LV和NI HW为您提供的灵活性。与C相比,您可以非常快速地更改代码。另一方面,LV不能在与C一样多的不同硬件平台上运行。所以我想找到一个适用于实时控制和数据采集的廉价平台,因此,如果我们想要以3万美元的价格销售产品,我们的控制器将不会花费15,000美元。我们最终得到了Diamond Systems Linux SBC。有趣的是,Simulink最终使用了 最 昂贵的硬件!它确实具有很大的灵活性,可以生成代码,以及模型工厂和控制器。但是,LV也可以做到这一点。
正如Yair所写,LV有很多很好的调试工具。一个不太为人所知的更有趣的工具是 被叫时暂停 SubVI的选项。这允许您在执行暂停时尽可能多地使用SubVI的输入和输出。