Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт НИР, осень 2013. Гунделах Ф.В..doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.02 Mб
Скачать

3.2Реализация алгоритма одновременного влияния синапсов на все ионные механизмы нейрона

Класс ионного механизма, реализован в коллекции Libraries/PulseLib среды NMSDK. Имя модуля NPulseSynChannel. В модуле описан одноименный класс, интерфейс которого описан ниже.

Параметры класса представлены в таблице (Таблица 3 .2).

Таблица 3.2- Параметры класса NPulseSynChannel

Имя параметра

Тип

Описание

Capacity

double

Емкость мембраны

Resistance

double

Сопротивление мембраны

FBResistance

double

Сопротивление перезаряда мембраны

Type

double

Тип ионного механизма

(<0 - накапливает отрицательный вклад в потенциал,

>0 - накапливает положительный вклад в потенциал)

PulseAmplitude

double

Амплитуда входных импульсов

SecretionTC

double

Постоянная времени выделения медиатора

DissociationTC

double

Постоянная времени распада медиатора

InhibitionCoeff

double

Коэффициент пресинаптического торможения

SynapseResistance

double

Вес (эффективность синапса) синапса

3.3Модель регулятора

Класс регулятора, реализующего схему, представленную выше (Рисунок 2 .6), реализован в коллекции Libraries/MotionControlLib среды NMSDK. Имя модуля NEngineMotionControl. В модуле описан одноименный класс, интерфейс которого описан ниже.

Параметры класса представлены в таблице (Таблица 3 .3).

Таблица 3.3 – Параметры класса NEngineMotionControl

Имя параметра

Тип

Описание

NumMotionElements

size_t

Число управляющих элементов

CreationMode

int

Режим формирования сети

0 - Signum

1 - Range

2 - Branched Range

3 - Branched Range Crosslinks

4 - Branched Ind. Range

5 - Branched Ind. Range Crosslinks

10 - Branched Ind. Range Continues LTZone neurons

11 - Simplest 2 neuron model

12 - As 11 but speed and force control added

MotionElementClassName

NameT

Имя класса управляющего элемента

AdaptiveStructureMode

int

Режим включения адаптивной перестройки структуры

0 - нет адаптивности

1 - адаптивность включена с полным сбрсом управления

2 - включена автоматическая адаптация c полным сбросом управления

IaMin, IaMax

double

Диапазон афферентных нейронов по каналу Ia

IbMin, IbMax

double

Диапазон афферентных нейронов по каналу Ib

IIMin, IIMax

double

Диапазон афферентных нейронов по каналу II

IcMin, IcMax

double

Диапазон афферентных нейронов по каналу Ic

PacGain

double

Максимальное усиление управляющего воздействия

0 - Разбиение на диапазоны [Max/(i+1)] где i - индекс диапазона

1 - Разбиение на диапазоны [Max/(i+1)] где i - индекс диапазона

2 -

3 - Max/(N-i), где i - индекс диапазона, а N - число диапазонов

AfferentRangeMode

int

Режим настройки диапазонов афферентных нейронов

0 - диапазоны одинаковой длины

1 - диапазоны с удвоением длины, и минимальной шириной в процентах

MinAfferentRange от соответствующей разницы *Max-*Min

PacRangeMode

int

Режим настрйоки диапазонов PAC

DestContourMaxAmplitude

std::vector<double>

Маскимально допустимая амплитуда колебаний

DestContourMinAmplitude

std::vector<double>

Минимально допустимая амплитуда колебаний

DestTransientTime

double

Желаемое время переходного процесса

UseContourData

std::vector<bool>

Используемые в адаптации контуры управления

TransientHistoryTime

double

Интервал времени на котором анализируем переходный процесс

TransientObjectIndex

int

Индекс выхода источника сигнала (объекта) по которому анализируем переходный процесс

TransientAverageThreshold

double

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

принимаем решение о том, что переходный процесс завершен

Переменные состояния класса представлены в таблице (Таблица 3 .4).

Таблица 3.4 – Переменные состояния класса NEngineMotionControl

Имя переменной состояния

Тип

Описание

MinAfferentRange

double

Процентная величина от соответствующей разницы *Max-*Min

определяющая минимальную ширину диапазона афферетных нейронов

изменяяется в интервале [0;1]

CurrentContourAmplitude

std::vector<double>

Текущая амплитуда колебаний

CurrentContourAverage

std::vector<double>

Текущее среднее колебаний

CurrentTransientTime

double

Текущее время переходного процесса

CurrentTransientState

bool

Текущее состояние переходного процесса

В таблице ниже (Таблица 3 .5) приведен перечень вариантов реализаций управляющих элементов.

Таблица 3.5 – Список вариантов реализации модели управляющего элемента

Имя прототипа компонента в коллекции

Описание

NMotionElement

СУ двигательной единицей со вставочными интернейронами

NSimpleMotionElement

СУ двигательной единицей без вставочных интернейронов

NBranchedMotionElement

СУ с ветвлением

NSimpleBranchedMotionElement

СУ с ветвлением без вставочных интернейронов

NContinuesBranchedMotionElement

СУ с ветвлением и “непрерывными” нейронами

NContinuesSimpleBranchedMotionElement

СУ с ветвлением и непрерывными нейронами без вставочных интернейронов

NSimplestMotionElement

простейшая СУ

NSimplestBranchedMotionElement

простейшая СУ с ветвлением

NSimplestAfferentBranchedMotionElement

простейшая СУ с ветвлением и простым афферентным нейроном

NNewSimplestAfferentBranchedMotionElement

простейшая СУ с ветвлением, простым афферентным нейроном и обновленной моделью нейрона с выделенным участком мембраны на сому

NAsfNewSimplestAfferentBranchedMotionElement

простейшая СУ с ветвлением, простым афферентным нейроном и обновленной моделью нейрона с выделенным участком мембраны на сому, на 3 афферентных канала

NAslsNewSimplestAfferentBranchedMotionElement

простейшая СУ с ветвлением, простым афферентным нейроном и и обновленной моделью нейрона с выделенным участком мембраны на сому, на 4 афферентных канала

Схема управляющего элемента (Рисунок 2 .8) воспроизводится путем выбора режима формирования сети CreationMode=12, и именем управляющего элемента: MotionElementClassName=” NAsfNewSimplestAfferentBranchedMotionElement”.

Все эксперименты проводились при следующих параметрах регулятора:

  • AfferentRangeMode=2;

  • PacRangeMode=2;

  • PacGain=100;