Трассируемость управления в РЕДАКТОРА MATLAB является расширением основанного на Simulink Requirements Management Interface, чтобы разрешить связи между линиями кода MATLAB и внешними программными продуктами. Эта возможность не требует редактирования файлов MATLAB; все данные трассируемости хранятся отдельно. Это похоже на «внешнее» хранилище ссылок при работе с моделями Simulink, как в Управлении Требованиями Без Изменения Файлов Модели Simulink.
В сложение, используя режим «внешнего хранилища» для управления трассируемости информацией, пользователи Simulink и Stateflow могут извлечь выгоду из более мелкой детализации при связывании внешних документов с содержимым Блоков MATLAB function.
Включенная модель примера имеет трассируемость данные, сопоставленные как с блоками Simulink индивидуума так и с линиями кода Блоков MATLAB function.
Этот пример демонстрирует связь между внешними документами и кодовыми линиями MATLAB при моделировании стимулированного всплеска в связанных нейронных камерах.
Оцените следующий код, чтобы открыть slvnvdemo_synaptic_transmission
Simulink моделирует в рабочей директории и устанавливает выбор, чтобы разрешить правильную коммуникацию для файлов в этом примере.
open('slvnvdemo_synaptic_transmission.slx'); rmipref('UnsecureHttpRequests',true);
Существует три блока Model, ссылающихся на ту же модель всплеска нейронной камеры, который можно увидеть в slvnvdemo_neuron.slx
. Оцените код, чтобы открыть модель.
open('slvnvdemo_neuron.slx');
Модель нейронных камер следует уравнению «Утечки Интеграторов»:
В целях симуляции это преобразуется в:
Две функции MATLAB между нейронами вычисляют постсинаптические токи. Когда предсинаптическая деполяризация переходит порог релиза нейромедиатора, мы увеличиваем постсинаптический ток на один импульс заданной амплитуды:
Результат полного тока распадается экспоненциально согласно:
Следующий шаг запрещен для определенной временной системы координат после предыдущего импульса, чтобы смоделировать эффект краткосрочной синаптической депрессии. Модель пренебрегает временной задержкой аксонной передачи.
Оцените следующий код, чтобы моделировать 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');
Одинаковые значения параметров присвоены для всех трех нейронов и обоих синапсов. Связывание трассируемости используется для обоснования значений параметров и реализации.
The slvnvdemo_synaptic_transmission model
запускает внешний скрипт synaptic_params.m
для загрузки необходимых значений параметров в рабочую область. При желании откройте скрипт, оценив следующий код: open('synaptic_params.m').
Связывание кода MATLAB позволяет вам проследить от зависимого блока в Simulink не только к файлу скрипта, но и к определенной линии, которая задает значение, используемое в симуляции.
Найдите Stimulation pulse
блокировать в модели вручную или оценить следующий код.
rmidemo_callback('locate','slvnvdemo_synaptic_transmission/Stimulation pulse');
Щелкните правой кнопкой мыши блок и выберите Requirements > 1. «I_inj = 2e-11;% 20 pA», чтобы перейти по ссылке и просмотреть соответствующую подсвеченную область в файле кода MATLAB или оценить следующее:
open('synaptic_params.m');
% При желании откройте скрипт синаптических параметров
rmidemo_callback('view','slvnvdemo_synaptic_transmission/Stimulation pulse',1);
% Перейдите по ссылке Requirements
Заметьте, что в synaptic_params.m
скрипт, существует несоответствующее значение параметров. Это легко обнаруживается по ссылке трассируемости. Выделите линию 12 в synaptic_params.m
скрипт, который читает V_syn_release = -2e-2; % -20 mV
. Щелкните правой кнопкой мыши по выделенной области и в контекстном меню выберите Requirements > 1. slvnvdemo_synaptic_transmission/Synaptic релиза порога (Constant). Это перемещает вас назад к модели Simulink и подсвечивает блок, который связан с линией 12 в synaptic_params.m
.
В Simulink щелкните вкладку Приложения и откройте Диспетчер требований. Щелкните Подсветить ссылки на вкладке Требования (Requirements), чтобы выделить только что созданные связи или оценить следующий код.
rmi('highlightModel', 'slvnvdemo_synaptic_transmission');
Оцените следующий код, чтобы убедиться, что двунаправленное связывание включено, чтобы вы могли создать двухсторонние ссылки трассируемости за один шаг.
rmipref('BiDirectionalLinking',true);
The 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')
.
Щелкните правой кнопкой мыши по выбранной линии и в контекстном меню выберите Requirements > Link to Selection в Simulink. Протестируйте новые ссылки путем перехода от MATLAB до Simulink и обратно к MATLAB.
The slvnvdemo_synaptic_transmission
модель имеет Блок MATLAB function, которую вы будете использовать для трассировки, чтобы значение параметров источники в Synaptic strength
постоянный блок. В модели Simulink нажмите на Synaptic strength
constant block, чтобы выбрать его для связывания, или вычислить следующий код, чтобы найти блок и затем выбрать его.
rmidemo_callback('locate','slvnvdemo_synaptic_transmission/Synaptic strength');
Вместо того, чтобы связывать сам блок MATLAB function, откройте код MATLAB этого блока и соедините конкретные линии. В slvnvdemo_synaptic_transmission
модель, перейдите к Synaptic current
блокируйте и дважды кликните его, или оцените следующий код.
rmidemo_callback('emlshow','slvnvdemo_synaptic_transmission/Synaptic current');
В редакторе MATLAB найдите вхождение I_amplitude на линию 33 кода Блока MATLAB function. Выделите линию курсором, чтобы выбрать ее, и щелкните правой кнопкой мыши. Выберите Requirements в контекстном меню, затем выберите Link to Selection в Simulink.
До этого момента мы рассматривали только связь между MATLAB и Simulink. Откройте Ion current calculation
Блок MATLAB function, который принадлежит Sodium current calculation subsystem
ссылку на slvnvdemo_neuron
моделировать, или оценить следующий код: rmidemo_callback('emlshow','slvnvdemo_neuron/Sodium channel current/Ion current calculation')
.
Щелкните правой кнопкой мыши в редакторе MATLAB и выберите в контекстном меню «Требования» > «Включить подсветку требований», чтобы увидеть, какие строки кода имеют ссылки на требования.
Щелкните правой кнопкой мыши по строке кода, которая была подсвечена, чтобы указать, что у нее есть ссылка требований. В контекстном меню Requirements перейдите к нумерованной ссылке в верхней части меню. Связанный документ Word откроется к связанному тексту. Вы также можете открыть документ Word и визуально идентифицировать ссылки, ища объект, подобный значку MATLAB. Перейти к связанному коду можно нажав Ctrl + на этом связанном объекте.
Оцените следующий код, чтобы открыть документ Word: open('NeuralSpikeModeling.docx').
Чтобы создать аналогичную ссылку на Ion current calculation
Функция в Potassium channel current subsystem
откройте документ Word и используйте функцию Find (Ctrl + F), чтобы найти фразу «внешний ток ионов калия». Выберите эту фразу курсором в документе Word. Затем откройте Ion current calculation
Блок MATLAB function сверху, или оценить следующий код: rmidemo_callback('emlshow','slvnvdemo_neuron/Potassium channel current/Ion current calculation')
.
В редакторе MATLAB выберите реализацию для подфункции outwardCurrent ( линий 34-37). Щелкните правой кнопкой мыши выбранные линии и в контекстном меню выберите Requirements > Link to Selection in Word. Минимизируйте документ Word, а затем перейдите от вновь выделенных линий в нижней части кода MATLAB к соответствующему описанию в Word. Когда правильное расположение подсвечивается, используйте значок MATLAB, чтобы вернуться к коду.
Каналы отслеживания, сопоставленные с кодовыми строками MATLAB Function блоков MATLAB, включены в Отчет о отслеживании требований, сгенерированный для родительской модели Simulink. На вкладке Требования щелкните Поделиться > Сгенерировать Отчет о трассируемости модели в slvnvdemo_neuron
Модель Simulink. Оцените следующий код, чтобы открыть модель.
open('slvnvdemo_neuron.slx');
Обратите внимание, что информация о блоках ссылок MATLAB Function присутствует в отчете, включая цитаты из связанных линий кода MATLAB.
Следующие команды очищают рабочую область путем очистки всех объектов Simulink Requirements и закрытия всех моделей Simulink.
slreq.clear;
bdclose('all');