Режим симуляции Accelerator запускает следующие блоки, как если бы вы запускали режим normal mode, потому что эти блоки не генерируют код для сборки Accelerator. Следовательно, если ваша модель содержит высокий процент этих блоков, режим Accelerator может не значительно увеличить эффективность. Все эти Simulink® блоки используют интерпретированный код.
Примечание
В некоторых образцах Режима normal mode выхода могут точно не совпадать с выходом из режима Accelerator из-за небольших различий в числовой точности между интерпретированной и скомпилированной версиями модели.
Следующие блоки могут привести к плохой эффективности выполнения симуляции при запуске в режиме JIT Accelerator по умолчанию.
Блоки, которые не поддерживают генерацию кода (такие как SimEvents®) или блоки, которые генерируют код только для определенного целевого объекта, не могут быть симулированы в режиме Rapid Accelerator.
Кроме того, режим Rapid Accelerator не работает, если ваша модель содержит любой из следующих блоков:
Драйвер устройства S-функции, такие как блоки из продукта Simulink Real-Time™ или те, которые нацелены на Freescale™ MPC555
Примечание
В режиме JIT Accelerator по умолчанию вставка пользовательских функций TLC S не поддерживается. Если вы запускаете модель, содержащую TLC S-Functions в режиме JIT Accelerator, существует вероятность снижения скорости выполнения. Скорость генерации кода, однако, будет высокой из-за ускорения JIT.
Внедрение S-функций с помощью Target Language Compiler увеличивает эффективность при классическом режиме Accelerator, устраняя ненужные вызовы Simulink API. По умолчанию, однако, классический режим Accelerator игнорирует встроенный файл TLC для S-функции, даже если файл существует. В режиме Rapid Accelerator всегда используется файл TLC, если он доступен.
Драйвер устройства блок s-function, записанный для доступа к конкретным аппаратным регистрам на плате ввода-вывода, является одним из примеров того, почему это поведение было выбрано как поведение по умолчанию. Поскольку программное обеспечение Simulink работает в хост-системе, а не в целевой системе, оно не может получить доступ к целевым регистрам ввода-вывода и поэтому при попытке сделать это не удастся.
Чтобы направить классический режим Accelerator на использование файла TLC вместо Файла MEX S-функции, задайте SS_OPTION_USE_TLC_WITH_ACCELERATOR
в mdlInitializeSizes
функция S-функции, как в этом примере:
static void mdlInitializeSizes(SimStruct *S) { /* Code deleted */ ssSetOptions(S, SS_OPTION_USE_TLC_WITH_ACCELERATOR); }
Режим Rapid Accelerator будет использовать файл MEX, если файл C S-Function отсутствует в одной папке.
Примечание
чтобы использовать код .c или .cpp для вашей S-функции, убедитесь, что они находятся в той же папке, что и Файл MEX S-функции, в противном случае можно включать дополнительные файлы в S-функцию или обойти ограничение пути с помощью файла rtwmakecfg.m. Для получения дополнительной информации смотрите Использовать rtwmakecfg.m API для настройки сгенерированных make-файлов (Simulink Coder).
Режим Accelerator поддерживает сигналы с фиксированной точкой и векторы до 128 бит.
Быстрый Режим Accelerator поддерживает параметры с фиксированной точкой до 128 бит.
Быстрый Режим Accelerator поддерживает корневые входы с фиксированной точкой до 32 бит
Быстрый Режим Accelerator поддерживает корневые входы типа Перечисленных данных
Быстрый Режим Accelerator не поддерживает данные с фиксированной точкой для блока From Workspace.
Быстрый Режим Accelerator игнорирует установка флажка Log fixed-point data as a fi object (FixptAsFi) для блока To Workspace.
Быстрый Режим Accelerator поддерживает объекты шины как параметры.
Режим Accelerator и режим Rapid Accelerator сохраняют целые числа максимально компактно.
Fixed-Point Designer™ не собирает данные min, max или overflow в режимах Accelerator или Rapid Accelerator.
Режим Accelerator поддерживает ограниченный набор диагностики во время выполнения, включая блок assertion.
Быстрый Режим Accelerator поддерживает ограниченный набор диагностики во время выполнения, включая блок assertion.
Выполнение симуляции из командной строки или меню определяет поведение возможностей и средств просмотра в режиме Rapid Accelerator.
Возможности или средства просмотра | Прогон симуляции из меню | Прогон симуляции из командной строки |
---|---|---|
Осциллограф Simulink | Такая же поддержка как и в режиме normal mode |
|
Сигнал Simulink средства просмотра возможностей | Графика обновляется, но логгирование не поддерживается | Не поддерживается |
Другие возможности средства просмотра сигналов | Поддержка ограничена доступной в режиме external mode | Не поддерживается |
Логгирование сигналов | Поддерживается. | Поддерживается. |
Визуализаторы с входами от логгирования (Например, Data Inspector или Logic Analyzer) | Данные, не визуализированные во время симуляции. | Данные, не визуализированные во время симуляции. |
Stateflow® Блоки графиков | Та же поддержка анимации на графике, что и в режиме normal mode | Не поддерживается |
Примечание
Несмотря на то, что возможности и средства просмотра не обновляются, когда вы запускаете режим Rapid Accelerator из командной строки, они обновляются, когда вы запускаете модель из меню. Запуск Acceleration Mode из интерфейса пользователя показывает, как запустить режим Rapid Accelerator из меню. Взаимодействие с режимами ускорения Программно показывает, как запустить симуляцию из командной строки.
Вы не можете использовать режим Accelerator или Rapid Accelerator, если ваша модель:
Передает параметры массива в MATLAB® S-функции, которые не являются числовыми, логическими или символьными массивами, являются разреженными массивами или имеют более двух размерности.
Использует Fcn блоков, содержащие тригонометрические функции, имеющие сложные входы.
В некоторых случаях изменения, связанные с внешним или пользовательским кодом, не вызывают изменения результатов симуляции Accelerator или Rapid Accelerator. К ним относятся:
Код TLC
Исходный код S-функции, включая файлы rtwmakecfg.m
Интегрированный пользовательский код
Построитель S-функций
В таких случаях рассмотрим регенерацию силы кода для верхней модели. Также можно форсировать регенерацию кода верхней модели путем удаления папок генерации кода, таких как slprj или сгенерированная папка кода модели.
Примечание
С ускорением JIT целевой код ускорения находится в памяти. Поэтому он доступен для повторного использования, пока модель открыта, даже если вы удаляете slprj
папка.
Быстрый режим Accelerator не поддерживает:
Алгебраические циклы.
Цели написаны на C++.
Interpreted MATLAB Function блоки.
Неинлинфицированный язык MATLAB или S-функции Фортран. Необходимо записать S-функции на C или встроить их с помощью Target Language Compiler (TLC), или можно также использовать файл MEX. Для получения дополнительной информации смотрите Запись полностью встроенных S-функций (Simulink Coder).
Отладчик или профилировщик.
Объекты времени выполнения для блоков Simulink.RunTimeBlock и Simulink.BlockCompOutputPortData.
Параметры модели должны быть одним из следующих типов данных:
boolean
uint8
или int8
uint16
или int16
uint32
или int32
single
или double
Фиксированная точка
Перечисленный
Вы не можете приостановить симуляцию в режиме Rapid Accelerator.
Если сборка Rapid Accelerator включает модели-ссылки (при помощи блоков Model), настройте эти модели, чтобы использовать решатели с фиксированным шагом для генерации кода для них. Верхняя модель, однако, может использовать решатель с переменным шагом, пока блоки в ссылочных моделях дискретны.
В некоторых случаях изменение параметров блоков может привести к структурным изменениям вашей модели, которые изменяют контрольную сумму модели. Примером такого изменения является изменение количества задержек в симуляции DSP. В этих случаях необходимо перегенерировать код для модели. Дополнительные сведения см. в разделе Регенерация кода в Accelerated Моделей.
Для корневых входных портов режим Rapid Accelerator поддерживает только основу как Srcworkspace
.
Для корневых входных портов, когда вы задаете минимальное и максимальное значения, которые должен вывести блок, режим Rapid Accelerator не распознает эти пределы во время симуляции.
В режиме Rapid Accelerator To File или To Workspace блоки внутри подсистем вызова функций не генерируют файлы логгирования, если порт вызова функции соединен с Ground или не соединен.
Быстрый Режим Accelerator не поддерживает системы, которые запускают RHEL/CentOS 6.x или 7.x.
Некоторые слова зарезервированы для использования языком кода Simulink Coder™ и режимом Accelerator и режимом Rapid Accelerator. Эти ключевые слова не должны отображаться как имена имен функции или переменных в подсистеме или как экспортированные глобальные имена сигналов. Использование зарезервированных ключевых слов приводит к тому, что программное обеспечение Simulink сообщает об ошибке, и модель не может быть скомпилирована или запущена.
Ключевые слова, зарезервированные для продукта Simulink Coder, перечислены в Конструкции Сгенерированных Идентификаторов (Simulink Coder). Дополнительные ключевые слова, которые применяются только к режимам Accelerator и Rapid Accelerator:
muDoubleScalarAbs | muDoubleScalarCos | muDoubleScalarMod |
muDoubleScalarAcos | muDoubleScalarCosh | muDoubleScalarPower |
muDoubleScalarAcosh | muDoubleScalarExp | muDoubleScalarRound |
muDoubleScalarAsin | muDoubleScalarFloor | muDoubleScalarSign |
muDoubleScalarAsinh | muDoubleScalarHypot | muDoubleScalarSin |
muDoubleScalarAtan, | muDoubleScalarLog | muDoubleScalarSinh |
muDoubleScalarAtan2 | muDoubleScalarLog10 | muDoubleScalarSqrt |
muDoubleScalarAtanh | muDoubleScalarMax | muDoubleScalarTan |
muDoubleScalarCeil | muDoubleScalarMin | muDoubleScalarTanh |