Обширная сравнения между Simulink и LabVIEW и

Я пытаюсь определить, какой из этих двух купить для моей работы. Я использовал SIMULINK, но не LabVIEW. Есть ли кто-нибудь, кто использовал оба и хотел бы предоставить некоторые детали? Моими критериями исследования являются удобство для пользователей, наличие библиотек и функций шаблонов, Возможность зондирования в реальном времени, возможность сопряжения оборудования COTS, качество генерации кода, дизайн для тестируемости (т. е. простота генерации/приемочных тестов) и т. д. Однако, если кто-то хотел бы обучите меня с большим количеством критериев, пожалуйста, сделайте это всеми средствами!

для тех, кто не знает о SIMULINK и LabVIEW - это доменные языки (DSLs), предназначенные для графического моделирования потока данных (а также для генерации кода). Это многоотраслевые инструменты и довольно широко используются для проектирования и моделирования.

важно - мне очень интересно узнать, предлагают ли SIMULINK и LabVIEW зондирование в реальном времени. Например, у меня есть модель это я хочу симулировать. Если в этой модели есть переменные, связанные с определенными строительными блоками, могу ли я просмотреть их изменение по мере продолжения моделирования? Я знаю, что это, конечно, невозможно с SIMULINK, поскольку у него есть пошаговый отладчик. Я не знаю ничего подобного в LabVIEW.

Я действительно не использовал LabVIEW и не могу получить его временно, поскольку мой рабочий интернет имеет ограничения на загрузку и административные привилегии. Вот почему я просто нельзя использовать только сайт NI для выводов. Если есть какая-либо белая бумага, доступная для решения этой проблемы, я также хотел бы знать:)

ОБНОВЛЕНИЕ С ПОСЛЕДНЕГО ПОСТА

Я использовал генератор кода MATLAB и не скажу, что он лучший. Однако теперь я слышу, что Simulink Embedded Coder-лучший генератор кода и почти единственный в своем роде. Может ли кто-нибудь подтвердить, хорошо ли это для проектирования критической системы безопасности, т. е. генерации кода из моделей подсистем безопасности. Я знаю, что Mathworks постоянно пытается закрыть пробел, чтобы достичь полностью гибкой генерации кода на уровне производства C/C++.

Я знаю, что идеальным ответом было бы:"в зависимости от того, что вы пытаетесь сделать, используйте немного обоих". И что интересно, я думаю, что направляюсь в этом направлении. ATEOTD, это много денег и их нужно потратить "красиво".

спасибо заранее.

6 ответов


У меня нет абсолютно никакого опыта работы с Simulink, поэтому я буду комментировать только LV, хотя быстрое чтение о Simulink в Википедии, похоже, указывает на то, что он сосредоточен в основном на моделировании и моделировании, что, конечно, не относится к LabVIEW.

хорошо, поэтому, прежде всего, LV не является DSL. Пока вы не хотите использовать его для любого проекта, это язык программирования общего назначения, и вы должны учитывать это. Я знаю, что ни инструментарий моделирования на ЛВ, что может, это тебе и поможет, но у меня нет никакого опыта. Изображения, которые я видел, казалось, указывали на то, что он добавляет особый вид диаграммы к LV для моделирования.

во-вторых, LV не ограничивается каким-либо оборудованием. Это язык общего назначения, так что вы можете писать код, который не будет использовать любую аппаратную вообще, код, который будет использовать или работают на оборудовании или кода Ni с использованием любого оборудования (будь то через вызовы DLL, .Net-сборок, интерфейс RS232, по протоколу TCP, интерфейсы gpib или любой другой вариант, который вы можете придумать). Существует довольно большая коллекция драйверов LV для различных устройств, и качество драйвера обычно зависит от того, кто его написал.

В-третьих, вы можете, конечно, зондировать в режиме реального времени в LV. Вы пишете свой код так же, как на C или Java, и при его запуске у вас есть несколько вариантов отладки:

  1. один шаг. На самом деле это не так уж часто, отчасти потому, что LV параллельна.
  2. выполнение подсветка. Это запускает код в замедленном режиме, показывая все значения в различных проводах.
  3. зонды, которые показывают вам последнее значение, которое имел каждый провод, где провода заполняют ту же функцию, что и переменные в текстовых языках. Это обновления в режиме реального времени, и я предполагаю, что вы хотите.
  4. сохранить значения провода, что позволяет зондировать провод даже после того, как данные прошли через него. Это похоже на то, что вы получаете в текстовых IDEs с переменными. В LV вы не обычно это происходит потому, что значения проводов являются переходными, поэтому значение не сохраняется, если вы явно не попросите его.

конечно, поскольку вы говорите о коде, вы также можете просто написать код, чтобы отобразить значения на экране на графике или числовом индикаторе или записать их в файл, поэтому не должно быть необходимости в фактическом зондировании. Вы также можете добавить код анализа и т. д.

В-четвертых, вы можете попробовать загрузить и запустить LV в полнофункциональном режиме режим оценки. Если я правильно помню, NI в настоящее время дает вам 7 дней, а затем 45 дней, если вы зарегистрируетесь на своем сайте. Если вы не можете сделать это на рабочем компьютере, вы можете попробовать дома. Если ваша проблема только с загрузкой, вы можете попробовать связаться с местным офисом NI и попросить их отправить вам DVD.

обратите внимание, что я ничего не знаю о моделировании и симуляции, поэтому я понятия не имею, какой код вам действительно нужно написать, чтобы делать то, что вы хотите. Я предположим, что если у NI есть специальный модуль для него, то это не то, что вы можете полностью покрыть обычным кодом (по крайней мере, если вы хотите оригинальную нотацию), но я бы сказал, что если вы можете написать код, который делает то, что вы хотите в C, нет причин, по которым вы не должны быть в состоянии написать его в LV (предполагая, конечно, что вы знаете, как писать код в LV).


я использовал labVIEW с 1995 года и Simulink с 2000 года. Теперь я занимаюсь проектированием систем управления и моделированием роботизированных систем с использованием labVIEW Real Time и автомобильных ECUs с использованием MATALAB/Simulink/DSPACE .

LabVIEW фокусируется на измерительных системах, а MATLAB / SIMULINK в динамическом моделировании, так что,

Если вы запускаете сложные симуляции, и ваша работа-создание/отладка сложных имитационных моделей контроллеров или установок, используйте Simulink+RealTimeWorkShop+StateFlowChart. LabVIEW не имеет эффективных генераторов кода для динамического моделирования. RTW генерирует меньший и быстрый код.

Если ваша основная работа-разработка систем с контроллерами и GUI для машин или вы хотите развернуть контроллеры на поле, используйте labVIEW.

Если ваша основная работа-разработка гибких систем HIL или SIL с хорошим GUI, вы можете использовать VeriStand. Veristand может смешивать код Simulink и LabVIEW.

и если у вас большой бюджет ( очень большой ), и вы работающ в автомобильных прототипах управления, Оборудование DSPACE очень хороший выбор для быстрого развития автомобильного ECUS, или опала для того чтобы начать цепи электричества. Но только для прототипа или Hil тестирования контроллеров.

с точки зрения оборудования детских кроваток: Mathworks не производит аппаратное обеспечение - > оборудование поддержки Matlab / Simulink от нескольких поставщиков.

национальные инструменты производят / продают оборудование - > LabVIEW Real Time ориентирован на поддержку NationalInstruments аппаратура. Нет полной замены детских кроваток.


многие из лучших ответов должны зависеть от ваших конечных требований к дизайну. Вы разрабатываете продукт? Если да, то на какой стадии развития вы находитесь? Или ты проводишь исследования?

недавно я сделал сравнение так же, как и вы. Я знаю LV, но хотел перейти к более аппаратно-масштабируемому варианту, так как NI HW очень дорогой по объему. То есть, моя компания хотела двигаться к продукту. Что LV и NI HW дают вам гибкость. Вы можете изменить код очень быстро по сравнению с C. С другой стороны, LV не работает почти на таком же количестве различных HW-платформ, как C. Поэтому я хотел найти недорогую платформу, которая хорошо работала бы для управления в реальном времени и сбора данных, так что если бы мы хотели продать продукт, скажем, за $30k, наш контроллер не стоил бы $15k этого. Мы закончили с Diamond Systems Linux SBC. Интересно, что Simulink в конечном итоге использовал большинство дорогостоящего оборудования! Он обладал большой гибкостью, и смогл произвести код, так же, как модельные заводы и регуляторы. Но тогда LV может это сделать.

Как писал Яир, у LV есть много хороших инструментов отладки. Одним из наиболее интересных инструментов, который не так хорошо известен, является приостановить при вызове опция для SubVI. Это позволяет вам играть с входами и выходами SubVI столько, сколько вы хотите, пока выполнение приостановлено.


Как я понимаю (я никогда не использовал его в гневе), LabView поддерживает только аппаратное обеспечение NI и более ориентирован на аппаратное обеспечение. Simulink поддерживает оборудование от нескольких поставщиков, будь то для сбора данных или реализации в режиме реального времени, но может потребовать немного больше работы для пользователя для взаимодействия с его собственным оборудованием (меньше plug & play, чем LabView). С другой стороны, Simulink предоставляет инструменты для поддержки всего процесса проектирования на основе модели, от моделирования и моделирования, управления дизайн, проверка & утверждение, поколение кода, аппаратн-в-петле, ЕТК...

отказ от ответственности: я работал в MathWorks.


вы, ребята, действительно можете быть заинтересованы в модуль моделирования вопог конструкции управления для LabVIEW. Он делает много симуляций и в будущем может быть конкурентоспособным для Simulink. Я не инженер по управлению, но иногда использую его для простого тестирования, и я рад, что мне не нужно изучать Simulink с самого начала, чтобы сделать некоторую работу, так как я знаком с философией LabVIEW.


MATLAB и Simulink стандарт defacto для конструкции и имитации системы управления. Модели регулятора Simulink можно использовать для автономной симуляции совместно с моделями завода, полностью К в реальном масштабе времени вставке на врезанных целях. Это общая структура моделирования с обширными встроенными библиотеками, а также библиотеками специального назначения a la carte и может быть расширена путем создания пользовательских блоков (s-функциональных блоков) на C и других языках. Она включает в себя способность для отображения значений в графиках, числовых дисплеях, датчиках и т. д. при моделировании nonrealtime происходит. Поддержка целей в реальном времени из Mathworks включает x86 (XPC Target) и несколько встроенных целей (MPC555 и т. д.), и есть сторонняя поддержка для других целей. Вышеупомянутый dSPACE предоставляет полные контроллеры прототипирования, включая поддержку их довольно мощного оборудования. цель xPC включает поддержку множества карт сбора данных ПК COTS. Поддержка целей в реальном времени включает элементы GUI как диаграммы, численные датчики дисплеев, etc.