model
.rtw
ФайлНекоторые записи в
файлу, такому как те, которые соответствуют параметрам и постоянному блоку I/O, можно было встроить чрезвычайно большие векторы значения данных в них. Такой вектор может вызвать значительную память наверху во время генерации кода, потому что значения должны быть обеспечены как текст в памяти во время этого процесса. model
.rtw
Избегать таких издержек, по умолчанию Simulink® программное обеспечение не выписывает целый вектор значения данных в
. Вместо этого это пишет, что ключ вызвал data reference, который может использоваться во время генерации кода, чтобы получить доступ к данным непосредственно из Simulink. Если данные не видоизменены во время генерации кода, они эффективно передаются потоком к диску, когда фактический код, содержащий значения данных, выписан.model
.rtw
Ссылка на данные имеет формат SLData (
, где index
)
числовое значение, которое говорит Simulink, на какие данные ссылаются. Директивы TLC, такие как index
GENERATE_FORMATTED_VALUE
сохраните ссылки на данные в нерасширенном формате в памяти. Когда сгенерированный код выписан к диску, значения данных расширяются до фактических значений. Получить доступ к вектору данных параметра модели, записанного в ModelParameters
запись в model.rtw
, используйте LibGetParameterValue
функция.
По умолчанию, если вы не задаете значение для параметра конфигурации модели RTWDataReferencesMinSize
, генератор кода присваивает значение -1
к параметру. В этом случае генератор кода пишет ссылку на данные параметра модели к model.rtw
файл вместо вектора данных. Эта оптимизация уменьшает операции чтения-записи файла, который улучшает время генерации кода. Когда вы задаете положительное значение для RTWDataReferencesMinSize
параметр, генератор кода использует значение в качестве порогового размера, на основе которого это записывает данные ссылки на model.rtw
файл вместо вектора данных.
Чтобы изменить максимальную длину вектора, который может появиться буквально в файле, используйте:
set_param(0, 'RTWDataReferencesMinSize', maxlen)
Simulink заменяет вектор в качестве длинного или более длинного, чем maxlen
со ссылкой на данные, когда это создает
. Задайте model
.rtwmaxlen
как целое число или как inf
. Определение inf
отключает ссылки на данные. Полный набор значений каждого вектора, однако долго, затем появляется буквально в
и занимает текстовую память во время генерации кода.model
.rtw
Установка явного
влияет только на текущий MATLAB® сеанс. Чтобы установить значение через сеансы, включайте maxlen
set_param
команда в вашем startup.m
файл, или автоматизируют выполнение команды, когда MATLAB запускается.
Можно явным образом расширить ссылку на данные при помощи GENERATE_FORMATTED_VALUE
встроенная функция с дополнительной третью expand
аргумент. Команды, такие как FEVAL
может заставить ссылку на данные быть расширенной до полной формы.
Или выключение ссылок на данные полностью или расширение избранных параметров в TLC могут вызвать значительную текстовую память наверху во время процесса генерации кода. Во время наиболее распространенных задач генерации кода является ненужным иметь расширенный вектор данных в памяти и заплатить цену дополнительных издержек. Избегайте расширенных векторов данных, если никакая альтернатива не существует.
файл, который содержит ссылки на данные, не может использоваться в изоляции, чтобы перезапустить процесс генерации пользовательского кода. Ссылки на данные в нем становятся устаревшими, если процесс генерации кода завершается. Попытка запустить процесс генерации кода с помощью только этот файл может привести к непредсказуемому поведению и отказам сегментации памяти.model
.rtw