9

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

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

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

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

自上次发布以来的更新

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

我知道一个理想的答案是“取决于你想要做什么,两者都用一点”。有趣的是,我认为我正朝着这个方向前进。ATEOTD,这是一大笔钱,需要“花好”。

提前致谢。

4

6 回答 6

18

我从 1995 年开始使用 LabVIEW,从 2000 年开始使用 Simulink。现在我参与控制系统设计,使用 LabVIEW Real Time 对机器人系统进行仿真,并使用 MATALAB/Simulink/DSPACE 进行汽车 ECU 仿真。

LabVIEW专注于测量系统,MATLAB/SIMULINK专注于动态仿真,所以,

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

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

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

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

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

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

于 2013-07-01T16:15:57.680 回答
8

我完全没有使用 Simulink 的经验,所以我只会评论 LV,尽管在 Wikipedia 上快速阅读 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 中,您通常没有它,因为线值是瞬态的,因此除非您明确要求,否则不会保留该值。

当然,由于您在谈论代码,您也可以简单地编写代码以将值显示在图形或数字指示器的屏幕上或将它们记录到文件中,因此不需要实际探测。您还可以添加分析代码等。

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

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

于 2013-06-19T10:25:18.583 回答
2

许多最佳答案必须取决于您的最终设计要求。你在开发产品吗?如果有,你处于什么发展阶段?还是你在做研究?

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

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

于 2013-06-26T14:13:15.353 回答
2

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

于 2016-03-30T15:06:01.573 回答
-1

你们可能真的对 LabVIEW 的控制设计和仿真模块感兴趣。它做了很多模拟,未来可能会与 Simulink 竞争。我不是控制工程师,但我有时会用它来进行简单的测试,我很高兴我不必从一开始就学习 Simulink 来做一些工作,因为我熟悉 LabVIEW 哲学。

于 2013-07-28T21:36:00.727 回答
-1

据我了解(我从来没有真正愤怒过使用它),LabView 只支持 NI 硬件,并且更面向硬件。Simulink 支持来自多个供应商的硬件,无论是用于数据采集还是实时实施,但用户可能需要更多的工作来连接自己的硬件(比 LabView 更少即插即用)。另一方面,Simulink 提供工具来支持整个基于模型的设计过程,从建模和仿真、控制设计、验证和确认、代码生成、硬件在环等......

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

于 2013-06-19T08:58:47.413 回答