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

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

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

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

Имя параметра Тип Описание
Capacity double Емкость мембраны
Resistance double Сопротивление мембраны
FBResistance double Сопротивление перезаряда мембраны
Type double Тип ионного механизма (<0 - накапливает отрицательный вклад в потенциал, >0 - накапливает положительный вклад в потенциал)
PulseAmplitude double Амплитуда входных импульсов
SecretionTC double Постоянная времени выделения медиатора
DissociationTC double Постоянная времени распада медиатора
InhibitionCoeff double Коэффициент пресинаптического торможения
SynapseResistance double Вес (эффективность синапса) синапса

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

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

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

Таблица 3.2 – Параметры класса 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.3).

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

Имя переменной состояния Тип Описание
MinAfferentRange double Процентная величина от соответствующей разницы *Max-*Min определяющая минимальную ширину диапазона афферетных нейронов изменяяется в интервале [0;1]
CurrentContourAmplitude std::vector<double> Текущая амплитуда колебаний
CurrentContourAverage std::vector<double> Текущее среднее колебаний
CurrentTransientTime double Текущее время переходного процесса
CurrentTransientState bool Текущее состояние переходного процесса

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

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

Имя прототипа компонента в коллекции Описание
NMotionElement СУ двигательной единицей со вставочными интернейронами
NSimpleMotionElement СУ двигательной единицей без вставочных интернейронов
NBranchedMotionElement СУ с ветвлением
NSimpleBranchedMotionElement СУ с ветвлением без вставочных интернейронов
NContinuesBranchedMotionElement СУ с ветвлением и “непрерывными” нейронами
NContinuesSimpleBranchedMotionElement СУ с ветвлением и непрерывными нейронами без вставочных интернейронов
NSimplestMotionElement простейшая СУ
NSimplestBranchedMotionElement простейшая СУ с ветвлением
NSimplestAfferentBranchedMotionElement простейшая СУ с ветвлением и простым афферентным нейроном
NNewSimplestAfferentBranchedMotionElement простейшая СУ с ветвлением, простым афферентным нейроном и обновленной моделью нейрона с выделенным участком мембраны на сому
NAsfNewSimplestAfferentBranchedMotionElement простейшая СУ с ветвлением, простым афферентным нейроном и обновленной моделью нейрона с выделенным участком мембраны на сому, на 3 афферентных канала
NAslsNewSimplestAfferentBranchedMotionElement простейшая СУ с ветвлением, простым афферентным нейроном и и обновленной моделью нейрона с выделенным участком мембраны на сому, на 4 афферентных канала


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

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

- AfferentRangeMode=2;

- PacRangeMode=2;

- PacGain=100;

Модель гироскопа

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

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

Таблица 3.5 - Параметры класса NAstaticGyro

Имя параметра Тип Описание
natural_freq double Собственная частота гироскопа
z_g double Коэффициент демпфирования гироскопа

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

Таблица 3.6 - Переменные состояния класса NAstaticGyro

Имя переменной состояния Тип Описание
alpha double Угол вращения вокруг оси Z
betta double Угол вращения вокруг оси X
gamma double Угол вращения вокруг оси Y

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

- natural_freq = 2000;

- z_g = 0.707.

Модель исследуемой системы

Класс, реализующий систему, описанную в п.2.1 реализован в коллекции Libraries/ActLib среды NMSDK. Имя модуля NManipulatorAndGyro. В модуле описан одноименный класс, интерфейс которого описан ниже.

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

Таблица 3.7 - Параметры класса NManipulatorAndGyro

Имя параметра Тип Описание
Mass double Полная масса системы
Length double Длина звена манипулятора

Входные данные, используемые классом, представлены в таблице ниже (Таблица 3.8).

Таблица 3.8 - Входные данные класса NManipulatorAndGyro

№ входа Тип Описание
double Внешний момент, воздействующий на систему
double Момент на валу двигателя
double текущий угол поворота звена манипулятора по данным датчика манипулятора

Наши рекомендации