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