model.rtw ФайлНекоторые записи в файл, например, соответствующий параметрам и постоянным блокам ввода-вывода, может иметь чрезвычайно большие векторы значений данных, встроенные в них. Такой вектор может вызвать значительные издержки памяти во время генерации кода, потому что значения должны поддерживаться в виде текста в памяти во время этого процесса. model.rtw
Во избежание таких накладных расходов программное обеспечение Simulink ® по умолчанию не записывает весь вектор значений данных в. Вместо этого он записывает ключ, называемый ссылкой на данные, который может использоваться во время генерации кода для доступа к данным непосредственно из 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