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

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

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

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

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

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

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

$$ \frac{C_m\rm{d}V}{\rm{d}t} = I_{\rm total} - \frac{V-V_0}{R_m} $$

$$ C_m,R_m - \mbox{capacitance and resistance of cell membrane} $$

$$ I_{\rm total} - \mbox{includes injected stimulation current and all ion channel currents} $$

$$ V_0 - \mbox{resting cross-membrane potential, typically -70mV} $$

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

$$ V \rightarrow V_0 + \int\limits_0^t \frac{1}{C_m} (I_{\rm total} - \frac{V-V_0}{R_m}) \rm{d}t  $$

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

$$ I \rightarrow I + I_{\rm amplitude} $$

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

$$ \rm{d}I/\rm{d}t = - I * \frac{t}{\tau} $$

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

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

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

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

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

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

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

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

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

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

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

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

sim('slvnvdemo_synaptic_transmission');
### Starting serial model reference simulation build
### Successfully updated the model reference simulation target for: 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.