Поддержка управления отслеживанием в редакторе MATLAB является расширением интерфейса управления требованиями на основе Simulink, позволяющим связывать строки кода MATLAB и внешние артефакты. Эта возможность не требует редактирования файлов MATLAB; все данные отслеживания хранятся отдельно. Это аналогично «внешнему» хранению ссылок RMI при работе с моделями Simulink, как в разделе Управление требованиями без изменения файлов модели Simulink.
Кроме того, используя режим «внешнего хранилища» для управления информацией об отслеживании, пользователи Simulink и Stateflow могут воспользоваться более высокой степенью детализации при связывании внешних документов с содержимым функциональных блоков MATLAB.
Включенная модель имеет данные отслеживания, связанные как с блоками Simulink, так и с отдельными строками кода функциональных блоков MATLAB.
Этот пример демонстрирует связь между внешними документами и кодовыми линиями MATLAB при моделировании стимулированного пика в связанных нервных клетках.
Вычислите следующий код, чтобы открыть slvnvdemo_synaptic_transmission Модель Simulink в рабочей папке и задание предпочтения для обеспечения правильного обмена файлами в этом примере.
open('slvnvdemo_synaptic_transmission.slx'); rmipref('UnsecureHttpRequests',true);
Существует три блока Model, ссылающиеся на одну и ту же модель пикирующей нейронной клетки, которую можно увидеть в slvnvdemo_neuron.slx. Оцените код, чтобы открыть модель.
open('slvnvdemo_neuron.slx');Модель нейронных клеток следует уравнению «Leaky Integrators»:
Итотал-V-V0Rm
клеточной мембраны
Для целей моделирования это значение преобразуется в:
дт
Две функции MATLAB между нейронами рассчитывают постсинаптические токи. Когда пресинаптическая деполяризация пересекает порог высвобождения нейромедиатора, мы увеличиваем постсинаптический ток на один импульс заданной амплитуды:
Результирующий суммарный ток затухает экспоненциально в соответствии с:
* t
Следующее приращение не допускается в течение определенного периода времени после предыдущего импульса для моделирования эффекта кратковременной синаптической депрессии. Модель игнорирует временную задержку аксональной передачи.
Вычислите следующий код для моделирования slvnvdemo_synaptic_transmission модель.
sim('slvnvdemo_synaptic_transmission');### Starting serial model reference simulation build ### Successfully updated the model reference simulation target for: slvnvdemo_neuron Build Summary Simulation targets built: Model Action Rebuild Reason ============================================================================================ slvnvdemo_neuron Code generated and compiled slvnvdemo_neuron_msf.mexa64 does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 28.191s
Проверьте вручную Scope блокировать результаты или вычислить следующий код.
open_system('slvnvdemo_synaptic_transmission/Scope');Шесть участков:
импульс электрического тока с внешним впрыском
стимулированный инъекцией внутриклеточный скачок напряжения первого нейрона
постсинаптический ток, генерируемый во втором нейроне
синаптически стимулированная активность второго нейрона
постсинаптический ток, генерируемый в третьем нейроне
синаптически стимулированная активность третьего нейрона
Наблюдайте регулярные всплески нейрона вверх по течению (график 2) при подаче импульса стимуляции (график 1). Синаптически индуцированный ток в нисходящем нейроне (график 3) пропускает некоторые потенциалы действия восходящего нейрона из-за кратковременного истощения нейромедиатора, смоделированного как временный период отключения в Synaptic current функциональный блок. Вычислите код для перехода к Synaptic current блок.
rmidemo_callback('locate','slvnvdemo_synaptic_transmission/Synaptic current');
Иногда видно, что нижестоящий нейрон интегрирует более одного синаптического входа для получения пика (график 4). Третий нейрон интегрирует синаптические входы второго нейрона (график 5) и шипы в более позднее время (график 6). При значениях параметров по умолчанию третий нейрон может всплескиваться 1 или более раз, в зависимости от намеренно введенного случайного шума в модели, посредством Noise current блок в slvnvdemo_neuron модель. Перейдите к Noise current блок.
rmidemo_callback('locate','slvnvdemo_neuron/Noise current');
Одинаковые значения параметров назначаются для всех трех нейронов и обоих синапсов. Связывание прослеживаемости используется для выравнивания значений параметров и реализации.
slvnvdemo_synaptic_transmission model запускает внешний сценарий synaptic_params.m для загрузки требуемых значений параметров в рабочую область. При необходимости откройте сценарий, вычисляя следующий код: open('synaptic_params.m').
Связывание кода MATLAB позволяет отслеживать зависимый блок в Simulink не только в файле сценария, но и в определенной строке, определяющей значение, используемое при моделировании.
Найдите Stimulation pulse блок в модели вручную или вычислите следующий код.
rmidemo_callback('locate','slvnvdemo_synaptic_transmission/Stimulation pulse');
Щелкните правой кнопкой мыши блок и выберите «Требования > 1». «I_inj = 2e-11;% 20 pA», чтобы перейти по ссылке и просмотреть соответствующую выделенную область в кодовом файле MATLAB, или оценить следующее:
open('synaptic_params.m'); % При необходимости откройте скрипт синаптических параметров
rmidemo_callback('view','slvnvdemo_synaptic_transmission/Stimulation pulse',1); % Перейдите по ссылке «Требования»
Обратите внимание, что в synaptic_params.m , существует несоответствующее значение параметра. Это легко обнаруживается с помощью связи отслеживания. Выделите строку 12 в synaptic_params.m сценарий, который читает V_syn_release = -2e-2; % -20 mV. Щелкните правой кнопкой мыши по выделенному фрагменту и в контекстном меню выберите «Требования > 1». Порог освобождения slvnvdemo_synaptic_transmission/Synaptic (константа). Это позволяет вернуться к модели Simulink и выделить блок, связанный с линией 12 в synaptic_params.m.
В Simulink перейдите на вкладку Приложения и откройте Диспетчер требований. Щелкните Подсветить связи (Highlight links) на вкладке Требования (Requirements), чтобы выделить только что созданные связи или оценить следующий код.
rmi('highlightModel', 'slvnvdemo_synaptic_transmission');
Оцените следующий код, чтобы убедиться, что двунаправленная связь включена, чтобы можно было создать двусторонние связи отслеживания за один шаг.
rmipref('BiDirectionalLinking',true); Synaptic time constant блок в левом нижнем углу модели еще не связан с соответствующей линией в synaptic_params.m. В модели Simulink выберите Synaptic time constant блок. Если этот блок не найден, вычислите следующий код и выберите его.
rmidemo_callback('locate','slvnvdemo_synaptic_transmission/Synaptic time constant');
Затем в редакторе MATLAB выберите имя переменной Syn_decay_time в нижней части окна synaptic_params.m сценарий. Оцените следующий код, чтобы открыть сценарий, если вы еще не сделали этого: open('synaptic_params').
Щелкните правой кнопкой мыши по выбранной строке и в контекстном меню выберите «Требования» > «Связать с выделением в Simulink». Проверьте новые линии связи путем перехода от MATLAB к Simulink и обратно к MATLAB.

slvnvdemo_synaptic_transmission модель имеет функциональный блок MATLAB, который будет использоваться для трассировки источников значений параметров для Synaptic strength постоянный блок. В модели Simulink щелкните значок Synaptic strength блок константы, чтобы выбрать его для связывания, или вычислить следующий код, чтобы найти блок, а затем выбрать его.
rmidemo_callback('locate','slvnvdemo_synaptic_transmission/Synaptic strength');
Вместо связывания самого функционального блока MATLAB откройте код MATLAB этого блока и свяжите определенные строки. В slvnvdemo_synaptic_transmission модель, перейдите к Synaptic current блок и дважды щелкните его или вычислите следующий код.
rmidemo_callback('emlshow','slvnvdemo_synaptic_transmission/Synaptic current');
В редакторе MATLAB найдите появление I_amplitude в строке 33 кода блока функции MATLAB. Выделите линию курсором, чтобы выделить ее, а затем щелкните правой кнопкой мыши. Выберите в контекстном меню «Требования», затем выберите «Связать с выделением в Simulink».
До этого момента мы смотрели только на связь между MATLAB и Simulink. Откройте окно Ion current calculation MATLAB Функциональный блок, который принадлежит Sodium current calculation subsystem ссылочного slvnvdemo_neuron модель или вычислите следующий код: rmidemo_callback('emlshow','slvnvdemo_neuron/Sodium channel current/Ion current calculation').
Щелкните правой кнопкой мыши в редакторе MATLAB и выберите «Требования» > «Включить выделение требований» в контекстном меню, чтобы увидеть, какие строки кода имеют ссылки на требования.

Щелкните правой кнопкой мыши по выделенной строке кода, чтобы указать на наличие ссылки на требования. В контекстном меню «Требования» перейдите к нумерованной ссылке в верхней части меню. Связанный документ Word откроется для связанного текста. Также можно открыть документ Word и визуально идентифицировать ссылки, выполнив поиск объекта, похожего на значок MATLAB. Чтобы перейти к связанному коду, щелкните этот связанный объект, удерживая нажатой клавишу Ctrl.

Оцените следующий код, чтобы открыть документ Word: open('NeuralSpikeModeling.docx').
Создание аналогичной ссылки на Ion current calculation Функция в Potassium channel current subsystem, откройте документ Word и с помощью функции Find (Ctrl + F) найдите фразу «внешний ток ионов калия». Выделите эту фразу курсором в документе Word. Затем откройте Ion current calculation MATLAB Функциональный блок сверху или оцените следующий код: rmidemo_callback('emlshow','slvnvdemo_neuron/Potassium channel current/Ion current calculation').
В редакторе MATLAB выберите реализацию для подфункции outingCurrent (строки 34-37). Щелкните правой кнопкой мыши выбранные строки и в контекстном меню выберите «Требования» > «Связать с выделением в Word». Сверните документ Word, затем перейдите от вновь выделенных строк в нижней части кода MATLAB к соответствующему описанию в Word. При выделении правильного местоположения используйте значок MATLAB для возврата к коду.

Связи отслеживания, связанные со строками кода MATLAB функциональных блоков MATLAB, включаются в отчет отслеживания требований, созданный для родительской модели Simulink. На вкладке Требования (Requirements) щелкните Общий доступ (Share) > Создать отчет об отслеживании модели (Generate Model Traceability Report) в окне slvnvdemo_neuron Модель Simulink. Вычислите следующий код, чтобы открыть модель.
open('slvnvdemo_neuron.slx');
Следует отметить, что информация о связях функционального блока MATLAB присутствует в отчете, включая предложения связанных строк кода MATLAB.
Следующие команды очищают рабочую область путем очистки всех объектов Simulink Requirements и закрытия всех моделей Simulink.
slreq.clear;
bdclose('all');