Реализация алгоритма одновременного влияния синапсов на все ионные механизмы нейрона
Класс ионного механизма, реализован в коллекции 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 | текущий угол поворота звена манипулятора по данным датчика манипулятора |