- •Отчет о научно-исследовательской работе
- •Задание
- •Содержание
- •1 Анализ проблемы 6
- •Введение
- •1Анализ проблемы
- •1.1Искусственные нейроны
- •1.2Модели биологических нейронов
- •1.3Теория возбуждения Ходжкина – Хаксли
- •1.4Модель Ижикевича
- •1.5Перспективный план исследований
- •2Разработка математических моделей
- •2.1Описание исследуемой системы
- •2.2Модель нейрона с взаимным влиянием ионных механизмов друг на друга
- •2.3Модель регулятора со структурной адаптацией
- •2.4Модель гироскопа
- •2.5Выводы
- •3Разработка компьютерных моделей
- •3.1Средства моделирования
- •3.2Реализация алгоритма одновременного влияния синапсов на все ионные механизмы нейрона
- •3.3Модель регулятора
- •3.4Модель гироскопа
- •3.5Модель исследуемой системы
- •3.6Алгоритм адаптации структуры нс регулятора
- •3.7Выводы
- •4Исследования
- •4.1Исследование поведения нейрона с взаимным влиянием ионных механизмов нейрона
- •4.2Исследование работы нейросетевого регулятора в задаче поддержания положения обратного маятника при наличии перекрестных связей между ионными механизмами нейрона
- •4.3План дальнейших исследований
- •4.4Выводы
- •Заключение
- •Список использованных источников
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;
