exponenta event banner

Управление требованиями без изменения файлов модели Simulink

Можно сохранить данные связей для моделей Simulink, сохранив данные связей в модели Simulink .slx файл или сохранение ссылок во внешнем .slmx файл.

Внешнее хранилище ссылок используется для управления изменениями в файле модели отдельно от изменений в ссылках требований. Кроме того, использование внешнего хранилища ссылок позволяет управлять несколькими наборами ссылок требований для одной модели путем загрузки различных .slmx файлы.

В этом примере показано, как работать с внешними каналами RMI. Щелкните Открыть пример (Open Example), чтобы создать рабочую папку для файлов примеров. Выполните следующие команды:

rmimap.map('slvnvdemo_powerwindowController', 'clear');
Nothing to clear for .../slrequirements-ex04732634/slvnvdemo_powerwindowController.slx
open_system('slvnvdemo_powerwindowController');
rmipref('UnsecureHttpRequests',true);

Настройка диспетчера требований для работы со ссылками

  1. На вкладке Приложения откройте Диспетчер требований.

  2. На вкладке «Требования» выберите «Компоновка» > «Обозреватель требований».

  3. В браузере требований в раскрывающемся меню «Вид» выберите «Связи».

  4. В этом примере вы будете работать исключительно на вкладке Требования (Requirements), а все ссылки на кнопки панели инструментов находятся на этой вкладке.

В этом примере используется представление «Связи». В браузере требований установите для параметра «Вид» значение Links.

Настройка RMI для внешнего хранения ссылок

  1. На вкладке Требования выберите Параметры связи > Хранилище связей по умолчанию. Откроется диалоговое окно «Параметры требований».

  2. Выберите Сохранить внешне (в отдельном файле * .slmx).

rmipref('StoreDataExternally', true);

Имя файла по умолчанию для сохранения данных связей требований - ModelName.slmx. Файл ссылок должен находиться в той же папке, что и модель для разрешения ссылок.

Создание связей RMI и управление ими

Создание связи из модели в документ.

  1. Откройте окно PowerWindowSpecification.docx файл в текущем каталоге.

  2. Выберите вход пассажира подзаголовка, состоящий из вектора с тремя элементами в разделе Спецификация управления дискретными событиями высокого уровня.

  3. Найти блок Mux4.

rmidemo_callback('locate','slvnvdemo_powerwindowController/Mux4');

Щелкните правой кнопкой мыши Mux4 и выберите Требования > Связать с выделением в Word.

Для создания ссылки можно также ввести следующее:

testReqLink = rmi('createEmpty'); 
testReqLink.description = 'testReqLink';
testReqLink.doc = 'PowerWindowSpecification.docx';
testReqLink.id = '?passenger input consists of a vector with three elements';

После ввода кода используйте: rmi('set', 'slvnvdemo_powerwindowController/Mux4', testReqLink) для создания ссылки.

Если модель по-прежнему подсвечена, Mux4 выделение блока для указания связанных данных требований. Новая информация о связи сохраняется отдельно от модели и сохраняется при сохранении модели.

Сохранение требований связывает данные с внешними файлами

При внешнем сохранении данных потребности можно сохранить изменения в потребности, выполнив следующие действия:

  • Щелкните Сохранить (Save) или Сохранить как (Save As) модель Simulink, даже если в модели нет несохраненных изменений.

  • Закрытие модели. Вам будет предложено сохранить изменения ссылок.

  • Щелкните Параметры связи > Сохранить связи как.

Щелкните Параметры связи > Сохранить связи как и сохраните их с именем slvnvdemo_powerwindowController.slmx.

Закройте модель. close_system('slvnvdemo_powerwindowController',1)

Сохранение файла связей с именем модели по умолчанию.slmx имя в папке модели или выберите другое имя файла и/или расположение.

Загрузка ссылок требований из внешних файлов

При открытии модели RMI попытается загрузить данные связей требований из недавно использованного местоположения для этой модели. Можно также выбрать «Загрузить связи» для выбора другого .slmx или .req файл. Таким образом можно использовать несколько наборов связей с одной и той же моделью. Например, можно использовать ссылки для описаний изменений конструкции, которые отличаются от ссылок на исходные спецификации конструкции.

Снова откройте модель и выберите Загрузить связи (Load Links), чтобы открыть браузер файлов и указать на slvnvdemo_powerwindowRequirements.slmx в рабочей папке или вычислите следующий код.

open_system('slvnvdemo_powerwindowController');
otherReqFile = fullfile('slvnvdemo_powerwindowRequirements.slmx');
rmimap.map('slvnvdemo_powerwindowController', otherReqFile);
Mapping .../slrequirements-ex04732634/slvnvdemo_powerwindowController.slx to slvnvdemo_powerwindowRequirements.slmx

Щелкните Подсветить связи (Highlight Links) на панели инструментов, чтобы подтвердить, что альтернативный набор связей теперь связан с моделью, или вычислите следующий код.

rmi('highlightModel', 'slvnvdemo_powerwindowController');

Figure Highlight Objects with Requirements contains an axes and another object of type uicontrol. The axes contains an object of type image.

Эти связи можно перемещать и изменять таким же образом, как и встроенные (в модели) связи.

Перемещение каналов RMI из внутреннего во внешнее хранилище

Модель с существующими ссылками на встроенные требования может быть преобразована во внешнее хранилище. Данные ссылки будут храниться не в SLX-файле, а в новом .slmx файл. Попробуйте это со следующими шагами.

Откройте другую модель с внутренними данными RMI путем анализа следующего кода.

open_system('slvnvdemo_fuelsys_officereq');

Выберите «Параметры связи» > «Сохранить связи как файл набора связей», чтобы открыть браузер файлов. Выберите имя файла для нового внешнего .slmx и нажмите OK. Модель будет повторно сохранена без встроенных ссылок и новой .slmx файл создан. Также можно проанализировать следующий код.

rmidata.saveAs('slvnvdemo_fuelsys_officereq','slvnvdemo_fuelsys_officereq.slmx');

Теперь ссылки на требования зависят от внешнего файла.

Нажмите кнопку «Выделить связи», чтобы подтвердить доступность данных связи, или оцените следующий код.

rmi('highlightModel', 'slvnvdemo_fuelsys_officereq');

Закройте модель вручную и удалите внешнюю .slmx или вычислите следующий код.

close_system('slvnvdemo_fuelsys_officereq',1);

Для удаления файла используйте следующий код: rmidemo_callback('remove','slvnvdemo_fuelsys_officereq.slmx')

Откройте модель вручную или вычислите следующий код.

open_system('slvnvdemo_fuelsys_officereq');

Щелкните Подсветить связи (Highlight Links) или вычислите следующее, чтобы выделить связи. rmi('highlightModel', 'slvnvdemo_fuelsys_officereq')

Ничего не выделено, так как данные больше недоступны. Воссоздать slvnvdemo_fuelsys_officereq.slmx и сопоставить его с slvndemo_fuelsys_officereq Модель Simulink путем оценки следующего кода.

rmimap.map('slvnvdemo_fuelsys_officereq','backup_reqs.slmx');
Mapping .../slrequirements-ex04732634/slvnvdemo_fuelsys_officereq.slx to backup_reqs.slmx
rmidata.saveAs('slvnvdemo_fuelsys_officereq','slvnvdemo_fuelsys_officereq.slmx');

Перед перемещением внутренних сохраненных ссылок во внешний файл необходимо помнить следующее:

  • Вам нужно будет нести дополнительный .slmx вместе с файлом модели.

  • Нестандартные сопоставления имен и расположений файлов хранятся в настройках пользователя. При перемещении или переименовании .slmx за пределами MATLAB при повторном открытии модели необходимо вручную указать RMI в новое расположение.

  • Если один пользователь настроил нестандартное расположение или имя для .slmx файл, связанный с моделью, другие пользователи RMI должны будут вручную выбрать Загрузить связи (Load links), когда они откроют модель. Указанное расположение сохранится в настройках каждого пользователя и не нуждается в изменении до тех пор, пока файлы не будут перемещены или переименованы снова.

Перемещение каналов RMI из внешнего во внутреннее хранилище

Для встраивания данных RMI в модель Simulink, чтобы вся информация находилась в одном месте и не требовалось отслеживать дополнительные файлы, выберите «Параметры связи» > «Сохранить связи в файле модели». Внешнее .slmx файл все еще существует, но он не читается при повторном открытии модели, которая теперь имеет встроенные данные RMI. Вы можете попробовать это с помощью slvnvdemo_fuelsys_officereq.slx модель из предыдущего раздела.

Либо проанализируйте следующий код.

rmipref('StoreDataExternally', false);
save_system('slvnvdemo_fuelsys_officereq');

Перед встраиванием данных RMI в файл модели необходимо помнить следующее:

  • Каждое изменение связей RMI приведет к изменению файла модели.

  • Внешний .slmx файлы игнорируются, когда .slx содержит данные связей отслеживания.

Очистка

Следующие шаги позволяют очистить рабочую область и закрыть открытые модели Simulink.

slreq.clear;
bdclose 'all';