model
.rtw
ФайлНекоторые записи в
файл, такой как те, которые соответствуют параметрам и постоянному вводу-выводу, может иметь чрезвычайно большие векторы значений данных, встроенные в них. Такой вектор может вызвать значительные накладные расходы на память во время генерации кода, потому что значения должны быть сохранены как текст в памяти во время этого процесса. model
.rtw
Чтобы избежать таких накладных расходов, по умолчанию Simulink® программное обеспечение не записывает весь вектор значений данных в
. Вместо этого он запишет ключ под названием data reference, который может использоваться во время генерации кода для доступа к данным непосредственно из Simulink. Если данные не мутируют во время генерации кода, они эффективно транслируются на диск, когда записывается фактический код, содержащий значения данных.model
.rtw
Ссылка на данные имеет формат SLData
, где (index
)
является числовым значением, которое сообщает Simulink, на какие данные ссылаются. Директивы TLC, такие как index
GENERATE_FORMATTED_VALUE
хранить ссылки на данные в нерасширенном формате в памяти. Когда сгенерированный код записывается на диск, значения данных расширяются до фактических значений.
По умолчанию Simulink записывает ссылку на данные в
вместо вектора данных, длина которого составляет 10 или более. Чтобы изменить максимальную длину вектора, которая может появиться буквально в файле, используйте: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 может вызвать значительные накладные расходы на текстовую память в процессе генерации кода. Во время большинства распространенных задач генерации кода нет необходимости иметь расширенный вектор данных в памяти и платить цену дополнительных накладных расходов. Избегайте развернутых векторов данных, если нет альтернативы.
A
файл, содержащий ссылки на данные, нельзя использовать изолированно для перезапуска пользовательского процесса генерации кода. Ссылки на данные в нем становятся устаревшими после завершения процесса генерации кода. Попытка запустить процесс генерации кода, используя только этот файл, может привести к непредсказуемому поведению и отказам сегментации памяти.model
.rtw