Сгенерируйте и упакуйте файлы опций, чтобы запустить анализ Polyspace на коде, сгенерированном из модели Simulink
исследует Simulink® модели archivePath = polyspacePackNGo(mdlName)mdlName, извлекает Polyspace® опции файлов из него и упакует файлы параметров в zip-файл, расположенный в archivePath. Перед использованием polyspacePackNGo, сгенерируйте код из вашей модели Simulink. Затем архивируйте сгенерированный код, например, используя packNGo. Сгенерируйте файлы опций Polyspace из модели Simulink и включите их в архив кода при помощи polyspacePackNGo. В другой среде разработки, при выполнении анализа Polyspace сгенерированного кода, используйте файлы опций, включенные в архив кода, чтобы сохранить специфическую для модели информацию, такую как спецификации области значений проекта. У вас должен быть Embedded Coder® использовать slbuild.
генерирует и упакует файлы опций Polyspace, которые генерируются согласно спецификации в archivePath = polyspacePackNGo(mdlName,psOpt)psOpt. Объект psOpt должен быть Объект опций Polyspace, которая генерируется при помощи pslinkoptions. Использование psOptизмените опции для анализа Polyspace.
генерирует и упакует файлы опций Polyspace при помощи archivePath = polyspacePackNGo(mdlName,psOpt,asModelRef)asModelRef чтобы указать, генерировать ли файлы опций для модели-ссылки кода или автономного кода.
Чтобы сгенерировать и упаковать файлы опций Polyspace для модели Simulink, используйте polyspacePacknGo.
Откройте модель Simulink rtwdemo_counter и укажите папку для хранения сгенерированного кода.
% Open the model mdlName = 'rtwdemo_counter'; open_system(mdlName); % Specify a folder for generated code codegenFolder = 'rtwdemo_counter_ert_rtw';
Чтобы включить упаковку сгенерированного кода в архив, установите опцию PackageGeneratedCodeAndArtifacts на true. Укажите имя сгенерированного архива кода следующим genCodeArchive.zip.
configSet = getActiveConfigSet(mdlName); set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); set_param(configSet, 'PackageName', 'genCodeArchive.zip');
Чтобы сделать модель совместимой с Polyspace, установите SystemTargetFile на etr.tlc.
set_param(configSet, 'SystemTargetFile', 'ert.tlc');
После конфигурирования модели сгенерируйте код.
if exist(fullfile(pwd,codegenFolder), 'dir') == 0 slbuild(mdlName) end
Потому что PackageGeneratedCodeAndArtifacts установлено в trueсгенерированный код упаковывается в архив genCodeArchive.zip.
Сгенерируйте и упакуйте файлы опций Polyspace.
zipFile = polyspacePackNGo(mdlName);
genCodeArchive.zipфайлы опций Polyspace упакованы в polyspace папка.Чтобы задать опции анализа Polyspace при упаковке и генерации файлов опций, используйте pslinktoptions.
Откройте модель Simulink rtwdemo_counter и сконфигурируйте модель для генерации архива кода, который совместим с Polyspace.
% Open the model mdlName = 'rtwdemo_counter'; open_system(mdlName); % Specify a folder for generated code codegenFolder = 'rtwdemo_counter_ert_rtw'; configSet = getActiveConfigSet(mdlName); % Enable packing the generated code into an archive set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); % Specify a name for the code archive set_param(configSet, 'PackageName', 'genCodeArchive.zip'); % Configure the model to be Polyspace Compatible set_param(configSet, 'SystemTargetFile', 'ert.tlc');
После конфигурирования модели сгенерируйте код.
if exist(fullfile(pwd,codegenFolder), 'dir') == 0 slbuild(mdlName) end
Потому что PackageGeneratedCodeAndArtifacts установлено в trueсгенерированный код упаковывается в архив genCodeArchive.zip.
Чтобы задать строение модели для анализа Polyspace, используйте pslinkoptions объект. Создайте этот объект с помощью функции pslinkoptions.
psOpt = pslinkoptions(mdlName);
psopt - структура, в которой поля являются строениями модели, которые можно задать.Задайте строение модели при помощи psOpt объект. Для образца задайте InputRangeMode на полную область значений. Полный список опций см. в входном параметре psOpt.
psOpt.InputRangeMode = 'FullRange';Сгенерируйте и упакуйте файлы опций Polyspace. Используйте psOpt объект как второй аргумент в polyspacePacknGo.
zipFile = polyspacePackNGo(mdlName,psOpt);
genCodeArchive.zipфайлы опций Polyspace упакованы в polyspace папка. Файл optionsFile.txt содержит указанные опции анализа Polyspace.Чтобы ускорить симуляции модели, активируйте ссылочные модели Simulink в качестве целей симуляции. Чтобы сгенерировать модель-ссылку симуляции цели из модели Simulink, сгенерируйте код из модели при помощи slbuild с процессом сборки, заданным как ModelReferenceCoderTargetOnly. Затем упакуйте сгенерированный код при помощи packNGo. Чтобы сгенерировать и упаковать файлы опций Polyspace для анализа такого кода, используйте функцию polyspacePacknGo с необязательным аргументом asModelRef установлено на true.
Откройте модель Simulink rtwdemo_counter и сконфигурируйте модель для генерации архива кода, который совместим с Polyspace.
% Load model mdlName = 'rtwdemo_counter'; load_system(mdlName); configSet = getActiveConfigSet(mdlName); % Enable packing the generated code into an archive set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); set_param(configSet, 'PackageName', ''); % Configure the model to be Polyspace Compatible set_param(configSet, 'SystemTargetFile', 'ert.tlc');
После конфигурирования модели сгенерируйте из нее модель-ссылку цель симуляции при помощи функции slbuild. Задайте опцию ModelReferenceCoderTargetOnly. Посмотрите slbuild.
slbuild(mdlName,'ModelReferenceCoderTargetOnly');slprj.Чтобы упаковать код, который генерируется как модель-ссылка, используйте функцию packNGo. Найдите файл buildinfo.mat в и используйте полный путь к нему в качестве входов <working folder>/ slprj/ert/rtwdemo_counterpackNGo. Эта команда генерирует архив, содержащий сгенерированный код и объект buildinfo.mat. Посмотрите packNGo (Embedded Coder).
% Locate buildinfo and generate code archive buildinfo = fullfile(pwd,'slprj','ert',mdlName,'buildinfo.mat'); packNGo(buildinfo)
Сгенерируйте и упакуйте файлы опций Polyspace. Опустите необязательный второй аргумент. Установите третий аргумент asModelRef на true.
zipFile = polyspacePackNGo(mdlName,[],true);
rtwdemo_counter.zipфайлы опций Polyspace упакованы в polyspace папка.mdlName - Имя модели Simulink, для которой можно сгенерировать файлы опций PolyspaceСимвольный массив, содержащее имя модели, для которой вы хотите сгенерировать и упаковать файлы опций Polyspace.
Пример: polyspacePackNGo('rtwdemo_roll')
Типы данных: char
psOpt - Объект опций Polyspacemodel (по умолчанию) | объект, созданный при помощи pslinkoptionsЗадает строение модели для анализа Polyspace при помощи pslinkoptions объект. Можно изменить определенные опции анализа путем изменения psOpt, которая является структурой, в которой отдельные поля представляют опции анализа. Список заливок опций, которые можно изменить, см. в таблице Polyspace Опций анализа Поддерживается polyspacePacknGo.
Опции анализа Polyspace, поддерживаемые polyspacePacknGo
| Свойство | Значение | Описание |
|---|---|---|
EnableAdditionalFileList: Включить анализ дополнительного списка файлов, заданный как true или false. Используйте с AdditionalFileList опция. | true | Polyspace проверяет дополнительные файлы, указанные в AdditionalFileList опция. |
false (по умолчанию) | Polyspace не проверяет дополнительные файлы. | |
ДополнительныйFileList: Список дополнительных файлов, подлежащих анализу, заданный как массив ячеек файлов. Чтобы добавить эти файлы к анализу, используйте EnableAdditionalFileList опция. | массив ячеек | Polyspace рассматривает перечисленные файлы для верификации. |
| InputRangeMode: задает область значений входных переменных. | 'DesignMinMax' (по умолчанию) | Polyspace использует входную область значений, заданный в рабочей области или блоке. |
'Fullrange' | Polyspace использует входы полной области значений. | |
| ParamRangeMode: задает область значений постоянных параметров. | 'DesignMinmax' | Polyspace использует постоянный параметр области значений заданный в рабочей области или в блоке. |
'None' (по умолчанию) | Polyspace использует значение параметров, заданных в коде. | |
| OutputRangeMode: задает выходные значения. | 'DesignMinMax' | Polyspace применяет утверждения к выходам с помощью области значений, заданной в блоке или рабочей области. |
'None' (по умолчанию) | Polyspace не применяет утверждения к переменным выходам. | |
| ModelRefVerifDepth: Задайте глубину для анализа моделей, на которые ссылается текущая модель. | 'Current model Only' (по умолчанию) | Polyspace анализирует только модель верхней части, не анализируя ссылку на модели. Используйте эту опцию, когда вы ссылаетесь на модели, которые не нужно анализировать, такие как модели библиотеки. |
'1'|'2'|'3' | Polyspace анализирует ссылки на модели до заданной глубины в иерархии ссылок. Чтобы проанализировать модели, на которые ссылается верхняя часть, задайте свойство ModelRefVerifDepth как '1'. Чтобы анализировать модели, на которые ссылается первый уровень ссылок, задайте это свойство как '2'. | |
'All' | Polyspace проверяет все ссылочные модели. | |
| ModelRefByModelRefVerif: Укажите, нужно ли анализировать все ссылочные модели вместе или по отдельности. | true | Polyspace анализирует верхнюю модель и ссылочные модели вместе. Используйте эту опцию для проверки проблем интегрирования или масштабирования. |
false (по умолчанию) | Polyspace анализирует верхнюю модель и ссылочные модели индивидуально. | |
| AutoStubLUT: определяет, как используются интерполяционные таблицы. | true (по умолчанию) | Polyspace заглушает интерполяционные таблицы и проверяет модель, не анализируя код интерполяционной таблицы. |
false | Polyspace включает код интерполяционной таблицы в анализ. | |
| CheckConfigBeforeAnalysis: задает уровень проверки строения, выполненной до начала анализа Polyspace. | 'Off' | Polyspace проверяет только на ошибки. Анализ останавливается, если обнаружены ошибки. |
'OnWarn' (по умолчанию) | Polyspace останавливает анализ при обнаружении ошибок и отображает сообщение при обнаружении предупреждений. | |
'OnHalt' | Polyspace останавливает анализ при обнаружении ошибок или предупреждений. |
Пример: polyspacePackNGo('rtwdemo_roll', psOpt), где ps_opt - объект опций, созданный вызовом pslinkoptions
asModelRef - Индикатор для эталонного анализа моделиfalse (по умолчанию) | trueИндикатор для модели-ссылки анализа, заданный как true или false.
Если asModelRef является false (по умолчанию), функция генерирует файлы опций, так что Polyspace анализирует сгенерированный код как автономный код.
Если asModelRef является true, функция генерирует файлы опций, так что Polyspace анализирует сгенерированный код как модель-ссылка код.
Примечание
Если вы задаете asModelRef на true, использование slbuild для генерации кода.
Пример: polyspacePackNGo('rtwdemo_roll', psOpt,true)
Типы данных: logical
archivePath - Полный путь к архиву, содержащему сгенерированные файлы опцийСимвольный массив, содержащий путь к сгенерированному архиву. Файлы опций расположены в polyspace папка в архиве. The polyspace папка содержит следующие файлы опций:
optionsFile.txt: текстовый файл, содержащий опции Polyspace, необходимые для запуска анализа Polyspace на сгенерированном коде без потери информации о модели, такой как проект области значений спецификация.
: Файл, содержащий проект области значений спецификацию модели.model_drs.xml
linkdata.xml: Файл, который связывает сгенерированный код с компонентами модели.
Чтобы запустить анализ Polyspace на сгенерированном коде в окружении, которая отличается от окружения, где код был сгенерирован из модели Simulink, используйте эти файлы.
Типы данных: char
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.