Объединенная информация о трассируемости со строками кода MATLAB в Simulink

Поддержка управления трассируемостью в редакторе MATLAB является расширением основанного на Simulink Requirements Management Interface, чтобы разрешить ассоциации между строками кода MATLAB и внешними артефактами. Эта возможность не требует файлов MATLAB редактирования; все данные о трассируемости хранятся отдельно. Это подобно "внешнему" устройству хранения данных ссылок RMI при работе с моделями Simulink.

Кроме того, с помощью "внешнее устройство хранения данных" режим для получения информации о трассируемости управления, Simulink и пользователи Stateflow могут извлечь выгоду из более прекрасной гранулярности при соединении внешних документов с содержимым блоков MATLAB function.

Включенной модели в качестве примера сопоставили данные о трассируемости и с блоками Simulink и с отдельными строками кода блоков MATLAB function.

Открытая модель в качестве примера

Этот пример демонстрирует соединение между внешними документами и строками кода MATLAB, когда моделирование стимулировало пронзание в связанных нейронных ячейках.

Откройте slvnvdemo_synaptic_transmission модель. Существует три блока Model, ссылающиеся на ту же модель пронзающей нейронной ячейки. Нейронная модель ячейки следует "за Текучими Интеграторами" уравнение:

В целях симуляции мы преобразовали в:

Две функции MATLAB между нейронами вычисляют постсинаптические токи. Когда предсинаптическая деполяризация пересекает порог релиза нейромедиатора, мы постепенно увеличиваем постсинаптический ток одним импульсом данной амплитуды:

Получившиеся общие текущие затухания экспоненциально согласно

Мы запрещаем следующий шаг в течение определенного периода времени после предыдущего импульса, чтобы смоделировать эффект краткосрочной синаптической депрессии. Наша модель пропускает задержку аксональной передачи.

open_system('slvnvdemo_neuron');
open_system('slvnvdemo_synaptic_transmission');

Моделируйте модель и просмотрите результаты

Моделируйте slvnvdemo_synaptic_transmission модель. Проверяйте Осциллограф на результаты. Шесть графиков:

  • внешне введенный импульс электрического тока,

  • стимулированное инжекцией внутриклеточное напряжение, пронзающее из первого нейрона,

  • постсинаптический ток сгенерирован во втором нейроне,

  • синаптическим образом стимулированное действие второго нейрона,

  • постсинаптический ток сгенерирован в третьем нейроне,

  • синаптическим образом стимулированное действие третьего нейрона.

Наблюдайте регулярное пронзание восходящего нейрона (постройте 2), в то время как импульс стимуляции применяется (постройте 1). Синаптическим образом вызванный ток в нисходящем нейроне (строят 3) пропускает некоторые потенциалы действия восходящего нейрона из-за краткосрочного истощения нейромедиатора, смоделированного, когда временный файл выключает период в Синаптической текущей функции. Нисходящий нейрон, как замечается, иногда, объединяйтесь, больше чем один синаптический вход, чтобы произвести скачок (постройте 4). Третий нейрон объединяется, синаптические входные параметры от второго нейрона (постройте 5), и скачки в более позднее время (постройте 6). С нашими значениями параметров по умолчанию третий нейрон может пронзить 1 или более раз, в зависимости от намеренно введенного случайного шума в модели.

Мы присваиваем те же значения параметров для всех трех нейронов и обоих синапсов. Трассируемость, соединяющаяся, используется, чтобы выровнять по ширине значения параметров и реализацию.

sim('slvnvdemo_synaptic_transmission');
### Successfully updated the model reference simulation target for model: slvnvdemo_neuron

Перейдите между Simulink и автономными файлами MATLAB

slvnvdemo_synaptic_transmission модель запускает внешний скрипт, чтобы загрузить значения обязательного параметра в рабочую область. Код MATLAB, соединяющийся, позволяет вам прослеживать от зависимого блока в Simulink, не только к файлу скрипта, но и к определенной строке, которая задает значение, используемое в симуляции.

Найдите блок импульса Стимуляции в модели. Щелкните правой кнопкой по блоку и выберите Requirements Traceability> 1. "I_inj = 2e-11; % 20 Па", чтобы перейти по ссылке и просмотреть соответствующую подсвеченную область в файле кода MATLAB. Заметьте несовпадающее значение, так легко обнаруженное по ссылке Трассируемости. Щелкните правой кнопкой по другой подсвеченной строке по файлу MATLAB и перейдите назад к Simulink путем выбора ярлыка в контекстном меню Requirements Traceability.

rmi('highlightModel', 'slvnvdemo_synaptic_transmission');
rmipref('UnsecureHttpRequests',true);
rmipref('BiDirectionalLinking',true);

Создайте ссылку трассируемости для строк кода MATLAB

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

Убедитесь, что двунаправленное соединение включено, так, чтобы можно было создать двухсторонние ссылки трассируемости за один шаг. Во-первых, в Редакторе Simulink, выберите Синаптический блок временной константы. Затем в редакторе MATLAB выберите имя переменной Syn_decay_time в нижней части synaptic_params скрипта. Щелкните правой кнопкой по выбранной строке и из контекстного меню, выберите Requirements Traceability> Link to Selection in Simulink. Протестируйте новые ссылки путем навигации от MATLAB до Simulink и назад к MATLAB.

Создайте ссылку трассируемости для строк кода в блоках MATLAB function

slvnvdemo_synaptic_transmission модель имеет блок MATLAB function, который мы захотим проследить до источников значения параметров. Вместо того, чтобы соединить сам блок, откройте код MATLAB этого блока и соедините определенные строки. Например, в Редакторе Simulink, нажмите на Синаптическую силу постоянный блок, чтобы выбрать его для соединения. В редакторе MATLAB найдите вхождение I_amplitude на строке 33 из кода блока MATLAB function. Щелкните правой кнопкой по строке и из контекстного меню Requirements Traceability, выберите Link to Selection in Simulink.

Создайте ссылку трассируемости между строками в коде MATLAB и Microsoft Word

До этой точки мы только посмотрели на соединение между MATLAB и Simulink. Откройте Ион текущий блок MATLAB function вычисления, который принадлежит Натрию текущая подсистема вычисления slvnvdemo_neuron модели, на которую ссылаются. Щелкните правой кнопкой по подсвеченной строке или строкам и из контекстного меню Requirements Traceability, переместитесь по ссылке наверху. Связанный документ Word открывается к связанному тексту.

Чтобы создать подобную ссылку в другом блоке MATLAB function этой модели, Ион текущая Функция вычисления в канале Калия текущая подсистема, выбирают соответствующее содержимое в документе Word (т.е. исходящий ток ионов калия). Затем откройте канал Калия текущий блок MATLAB function. В редакторе MATLAB выберите реализацию для подфункции outwardCurrent (строки 34-37). Щелкните правой кнопкой по выбранным строкам и по контекстному меню, выберите Requirements Traceability> Link to Selection in Word. Минимизируйте документ Word, затем перейдите от недавно подсвеченных строк в нижней части кода MATLAB к связанному описанию в Word. Когда правильное местоположение будет подсвечено, используйте значок MATLAB, чтобы перейти назад к коду.

Сообщите о ссылках трассируемости

Ссылки трассируемости, сопоставленные со строками кода MATLAB блоков MATLAB function, включены в Отчет Трассируемости требований, сгенерированный для родительской модели Simulink. Используйте Анализ>, Трассируемость требований> Генерирует Отчет в slvnvdemo_neuron окне модели, чтобы сгенерировать отчет. Смотрите информацию о ссылках блока MATLAB function, существующую в отчете, включая цитаты соединенных строк кода MATLAB.