Режим симуляции Акселератора запускает следующие блоки, как будто вы запускали Режим normal mode, потому что эти блоки не генерируют код для сборки акселератора. Следовательно, если ваша модель содержит высокий процент этих блоков, Режим Accelerator не может значительно увеличить производительность. Все эти Simulink® блокируют использование интерпретированный код.
В некоторых случаях Режим normal mode выход не может точно совпадать с выходом от Режима Accelerator из-за незначительных различий в числовой точности между интерпретированными и скомпилированными версиями модели.
Следующие блоки могут вызвать плохую производительность времени выполнения симуляции, когда запущено в Режиме Accelerator JIT по умолчанию.
Блоки, которые не поддерживают генерацию кода (такую как SimEvents®) или блоки, которые генерируют код только для определенной цели, не могут быть симулированы в Быстром Режиме Accelerator.
Кроме того, Быстрый Режим Accelerator не работает, если ваша модель содержит какой-либо из следующих блоков:
S-функции драйвера устройства, такие как блоки из продукта Simulink Real-Time™ или тех, которые предназначаются для Freescale™ MPC555
В Режиме Accelerator JIT по умолчанию не поддержано встраивание написанных пользователем S-функций TLC. Если при запуске модель, содержащую S-функции TLC в Режиме Accelerator JIT, существует возможность сокращения скорости выполнения. Скорость генерации кода, однако, произойдет высоко из-за ускорения JIT.
Встраивание S-функций с помощью Компилятора Выходного языка увеличивает производительность с классическим Режимом Accelerator путем устранения ненужных вызовов Simulink API. По умолчанию, однако, классический Режим Accelerator игнорирует встраивание файл TLC для S-функции, даже при том, что файл существует. Быстрый Режим 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); }
Быстрый Режим Accelerator использует файл MEX, если файл S-функции C не будет присутствовать в той же папке.
чтобы использовать.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 и Быстрый Режим Accelerator хранят целые числа максимально сжато.
Fixed-Point Designer™ не собирает min, макс., или переполняет данных в Акселераторе или Быстрых Режимах Accelerator.
Режим Accelerator поддерживает ограниченный набор диагностики во время выполнения, включая блок утверждения.
Быстрый Режим Accelerator поддерживает ограниченный набор диагностики во время выполнения, включая блок утверждения.
Выполнение симуляции из командной строки или меню определяет поведение осциллографов и средств просмотра в Быстром Режиме Accelerator.
Осциллограф или тип средства просмотра | Симуляция, запущенная в меню | Симуляция, запущенная из командной строки |
---|---|---|
Блоки Осциллографа Simulink | Та же поддержка как Режим normal mode |
|
Осциллографы средства просмотра сигнала Simulink | Графика обновляется, но логгирование не поддержано | Не поддерживаемый |
Другие осциллографы средства просмотра сигнала | Поддержка, ограниченная этим доступным в Режиме external mode | Не поддерживаемый |
Логгирование сигнала | Поддерживаемый, с ограничениями, перечисленными в Сигнале, Входящем в систему Быстрый Режим Accelerator | Поддерживаемый, с ограничениями, перечисленными в Сигнале, Входящем в систему Быстрый Режим Accelerator. |
Многоскоростные средства просмотра сигнала | Не поддерживаемый | Не поддерживаемый |
Блоки Графика Stateflow® | Та же поддержка анимации графика как Режим normal mode | Не поддерживаемый |
Быстрый Режим Accelerator не поддерживает многоскоростные средства просмотра сигнала, такие как осциллограф спектра DSP System Toolbox™ или Communications Toolbox™ scatterplot, траектория сигнала или осциллографы глазковой диаграммы.
Несмотря на то, что осциллографы и средства просмотра не обновляются, когда вы запускаете Быстрый Режим Accelerator из командной строки, они действительно обновляются, когда вы запускаете модель в меню. Запуститесь Ускоряющий Режим от Пользовательского интерфейса показывает, как запустить Быстрый Режим Accelerator в меню. Взаимодействуйте с Ускоряющими Режимами, Программно показывает, как запустить симуляцию из командной строки.
Вы не можете использовать Акселератор или Быстрый Режим Accelerator если ваша модель:
Параметры массива передач к S-функциям MATLAB®, которые не являются числовыми, логическими, или символьные массивы, являются разреженными массивами, или которые имеют больше чем две размерности.
Использование блоки Fcn, содержащие тригонометрические функции, имеющие комплексные входные параметры.
В некоторых случаях изменения, сопоставленные с внешним или пользовательским кодом, не заставляют Акселератор или Быстрые результаты симуляции Акселератора изменяться. Они включают:
Код TLC
Исходный код S-функции, включая rtwmakecfg.m файлы
Интегрированный пользовательский код
Разработчик S-функции
В таких случаях рассмотрите регенерацию силы кода для топ-модели. В качестве альтернативы можно обеспечить регенерацию кода топ-модели путем удаления папок генерации кода, таких как slprj или сгенерированная папка типового кодекса.
С ускорением JIT ускоряющий целевой код находится в памяти. Это поэтому доступно для повторного использования, пока модель открыта, даже если вы удаляете slprj
папка.
Быстрый Режим Accelerator не поддерживает:
Алгебраические циклы.
Цели написаны в C++.
Блоки Interpreted MATLAB Function.
Невстроенные S-функции языка MATLAB или Фортрана. Необходимо написать S-функции в C или встроить их использующий Компилятор выходного языка (TLC), или можно также использовать файл MEX. Для получения дополнительной информации смотрите Запись Полностью Встроенные S-функции (Simulink Coder).
Отладчик или профилировщик.
Время выполнения возражает для блоков Simulink.BlockCompOutputPortData и Simulink.RunTimeBlock.
Параметры модели должны быть одним из этих типов данных:
boolean
uint8
или int8
uint16
или int16
uint32
или int32
single
или double
Фиксированная точка
Перечислимый
Вы не можете приостановить симуляцию в Быстром Режиме Accelerator.
Если Быстрая сборка Акселератора включает модели, на которые ссылаются (при помощи блоков Model), настройте эти модели, чтобы использовать решатели фиксированного шага, чтобы сгенерировать код для них. Топ-модель, однако, может использовать решатель переменного шага, пока блоки в моделях, на которые ссылаются, дискретны.
В определенных случаях, изменяя параметры блоков может привести к структурным изменениям к вашей модели, которые изменяют контрольную сумму модели. Пример такого изменения изменяет количество задержек симуляции DSP. В этих случаях необходимо регенерировать код для модели. Смотрите Регенерацию Кода в Ускоренных Моделях для получения дополнительной информации.
Для корневого импорта Быстрый Режим Accelerator поддерживает только основу как Srcworkspace
.
Для корневого импорта, когда вы задаете минимальные и максимальные значения, которые должен вывести блок, Быстрый Режим Accelerator не распознает эти пределы в процессе моделирования.
В Быстром Режиме Accelerator To File или блоки To Workspace в подсистемах вызова функций не генерируют файлов логгирования, если порт вызова функции соединяется с Ground или несвязанный.
Быстрый Режим Accelerator не делает систем поддержки, которые запускают системы, которые запускают RHEL / CentOS 6.x или 7.x.
Определенные слова резервируются для использования кодовым языком Simulink Coder™ и Режимом Accelerator и Быстрым Режимом Accelerator. Эти ключевые слова не должны появляться как функция или имена переменных на подсистеме, или как экспортируемые глобальные имена сигнала. Используя результаты зарезервированных слов в программном обеспечении Simulink, сообщая об ошибке и модели не может быть скомпилирован или запущен.
Ключевые слова, зарезервированные для продукта Simulink Coder, перечислены в Конструкции Сгенерированных Идентификаторов (Simulink Coder). Дополнительные ключевые слова, которые применяются только к Акселератору и Быстрым режимам 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 |