Functional Mock-up Interface (FMI) — становящийся всё более популярным стандарт — был быстро принят промышленностью. Он является независимым стандартом и даёт возможность обмениваться моделями между различными средами. Мы представили экспорт FMI в SystemModeler версии 4.0. Экспорт моделей в формате Functional Mock-up Unit (FMU) имеет различные приложения. Прежде всего FMU может использоваться в других средах и языках программирования. FMU так же защищает Вашу интеллектуальную собственность, компилируя код модели в двоичный файл, что может быть полезно при обмене моделями с клиентами и коллегами. Мы рады сообщить, что Версия 4.1 SystemModeler поддерживает теперь и импорт FMI.
![Use subsystems from other tools in FMI import Use subsystems from other tools in FMI import](https://habrastorage.org/getpro/habr/post_images/b51/2e2/923/b512e292358969adb4ac76776bd4c074.png)
Импорт FMI позволяет использовать подсистемы из других сред в процессе моделирования в SystemModeler и Wolfram Language. Можно исследовать импортированные модели в SystemModeler, меняя параметры и наблюдая результаты, выполнять пост-обработку и визуализацию результатов моделирования из импортированных моделей с помощью Wolfram Language. С автоматическими отчётами и облачными технологиями распространение результатов и анализ результатов моделирования становятся простыми задачами.
Давайте посмотрим, что из себя представляет импорт и использование FMU. Перетащите элемент в SystemModeler и следуйте инструкциям в диалоговых окнах, чтобы импортировать модель в class browser. Вот как выглядит импорт модели, экспортированной из Simulink с использованием FMI Toolbox от Modelon:
![Imported model exported from Simulink, with the FMI Toolbox from Modelon Imported model exported from Simulink, with the FMI Toolbox from Modelon](https://habrastorage.org/getpro/habr/post_images/1a4/d4a/6b8/1a4d4a6b8158b9e5a3d6b60042b17371.jpg)
Теперь этот элемент доступен в SystemModeler и мы можем соединять его с другими компонентами. В данном случае это модель круиз-контроля. Мы соединяем её с моделью машины чтобы посмотреть, как он может управлять скоростью автомобиля.
![Functional Mock-up Unit inside SystemModeler connected to cruise control in a car Functional Mock-up Unit inside SystemModeler connected to cruise control in a car](https://habrastorage.org/getpro/habr/post_images/fd9/073/480/fd9073480e274380d5c2c79cd6c28475.png)
Далее мы можем произвести параметризацию в Wolfram Language для анализа отклонений при задании различных скоростей. Эти графики показывают отклонения скорости для машины, когда она спускается с горки:
![Speed deviations in car going downhill Speed deviations in car going downhill](https://habrastorage.org/getpro/habr/post_images/9d0/e68/248/9d0e68248ee2588996b120ae51736b8d.png)
Другой способ визуализировать данные — функция DensityPlot, которая будет показывать относительное отклонение скорости от требуемой.
![DensityPlot showing the relative speed deviation from the reference speed DensityPlot showing the relative speed deviation from the reference speed](https://habrastorage.org/getpro/habr/post_images/553/95b/52b/55395b52b579baa203adb1c19750cd2e.png)
График показывает, что круиз-контроль работает лучше всего на плоскости и небольших подъёмах. Эта область закрашена зелёным — этому цвету соответствует отклонение скорости менее, чем на один процент. Если ехать со скоростью 40 км/ч под углом в два градуса, то отклонение будет в этой области. Красным областям соответствует отклонение скорости на более чем 5%. Если ехать со скоростью 30 км/ч под углом в три градуса, то отклонение будет в этой области.
Импорт и экспорт FMI встроены в SystemModeler и не требуют каких-то дополнительных покупок или специальных надстроек. С FMI — модели, созданные экспертами в своих областях, могут быть представлены широкому кругу потребителей, которые будут их использовать для каких-то своих задач в области моделирования и анализа. Тут</a есть пример того, как экспортировать модель из SystemModeler для использования в других средах.
ссылка на оригинал статьи http://habrahabr.ru/post/259071/
Добавить комментарий