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