2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Формулы для интегрирования напряжений токов в цепи
Сообщение05.07.2018, 02:00 
Аватара пользователя


02/07/18
10
Москва
Andrey_Kireew в сообщении #1324454 писал(а):
Это функция, зависящая от тока через диод. Но этот ток является неизвестной величиной. И сама функция тоже поэтому неизвестна.

В первом посте я предложил своё решение. Там я принял, что ток диода равен току катушки $I_a$.
И предложил функцию, описывающую проводимость диода $g_d(I_a, V_m) = (I_a > 0)||(V_m > V_{threshold})$
Работает она, представляя диод как резистор с переменной проводимостью. Нелинейность создаётся при помощи сравнений и логической операции "ИЛИ":
- Если напряжение на конденсаторе(на мембране) $V_m$ превышает некую константу $V_{threshold}$, представляющую собой порог напряжения для открытия диода и общую для всей сети, то
проводимость диода $g_d$ становится равной 1.0 и ток через катушку $I_a$ начинает возрастать а напряжение на $V_m$ начинает убывать.
- Пока ток катушки $I_a > 0$ диод продолжает оставаться открытым, и, в силу инерции $V_m$ опускается аж до отрицательных значений.
- Когда ток прекращается диод закрывается - оба условия не выполняются и проводимость $g_d$ равна нулю.
- Падение напряжения на диоде не моделируется, так как лишь навредит модели.

Первый вопрос из шапки как раз таки и был про мой способ моделирования диода. Способ вроде хорош, что не нужно хранить дополнительные состояния-переменные. Для клетки хранится лишь список входных сопротивлений, напряжение на мембране и ток катушки(диода). Такое удобно подставлять в шаг итерации.

А также, он очень добр к железу - результаты сравнений являются масками, и мы обходимся вовсе без медленных условных переходов cmp/jmp - на уровне SSE инструкций это генерация битовых масок, операция или и умножение(логическое и) напряжения на полученную маску. Такая парадигма идеально подходит для параллельной обработки и всяческих видеокарт.

Andrey_Kireew в сообщении #1324454 писал(а):
Что касается трансформаторов - то они мало чего дадут, но сильно всё усложнят, и сильно отдалят модель от реальности.
Судя по тому, что Вы сейчас описали (множество соединённых между собой нейронов), в модели есть серьёзная проблема - это угасание сигналов. В Вашей цепи нет активных элементов. Мощность, так или иначе, рассеивается на резисторах. Если нейронов немного, то ещё ладно. Но если вы намекаете на аналогии с нервной системой, то сигналы рано или поздно угаснут до такой степени, что последующие нейроны просто перестанут на них реагировать.
В биологических нейронах такой проблемы нет, так как они сами генерируют электрический сигнал. Поэтому, Вашу модель нужно доработать, иначе она не будет функционировать.

Я и предложил идеальные "псевдотрансформаторы", которые являются источниками входного напряжения, управляемые током $L_a$. Ввести такое упрощение, чтобы напряжение на вторичных обмотках было пропорционально току на первичной. Это и будут активные элементы. Тогда входной ток в конденсатор становится рассчитать вроде очень просто. Правило кирхгофа, да.

EUgeneUS в сообщении #1324290 писал(а):
В общем виде, задача решается так:
1. Для каждого элемента (двухполюсника) есть два неизвестных: ток через него $I_i$ и напряжение на нём (между выводами) $U_i$.
2. Для активных сопротивлений всё просто, закон Ома: $I_r=U_r/R_r$
3. Для реактивных сопротивлений (конденсаторы, индуктивности) чуть сложнее, возникают дифференциальные уравнения:

конденсатор: $I_c = C\frac{dU_c}{dt}$
индуктивность: $U_L = -L\frac{dI_L}{dt}$

4. Для нелинейных элементов типа диода используется ВАХ (вольт-амперная характеристика) для связи между $U_i$ и $I_i$, или какое-то её приближение.

5. Далее применяем правила Кирхгофа. В частности, они дадут некоторые простые выводы (но простых выводов может не хватить):
а) Ток через последовательно включенные элементы (без ответвлений) один и тот же
б) Напряжение на параллельно включенных элементах одно и то же.

6. После чего всё это сводится в систему уравнений от $2N$ переменных, где $N$ - количество элементов.

Отличная задумка, так и хочется сделать. Двухполюсником является система конденсатор-диод-катушка и пытаюсь вымучить формулы для интегрирования напряжения и тока.

EUgeneUS в сообщении #1324290 писал(а):
Про модель диода.
Судя по описанию на картинке, Вам достаточно простой модели:
1. Если напряжение на диоде меньше порогового: $U_D < U_t$, то сопротивление его бесконечно, то не течет: $I_D=0$
2. Если напряжение на диоде равно пороговому: $U_D = U_t$, то сопротивление его рано нулю, ток может быть любым.

Как это может быть реализовано в Вашем случае, с учетом того, что диод подключен последовательно индуктивности, а ток через индуктивность не может остановиться мгновенно:

1. Если на прошлой итерации ток через диод (а значит и через индуктивность) был ноль (или поменял знак, что тоже самое), а напряжение еще не достигло порогового $U_D < U_t$, то считаем ток нулем, $I_D=I_L=0$, снова рассчитываем напряжение на диоде $U_D$.
2. Если на прошлой итерации ток через диод (а значит и через индуктивность) был ноль, (или поменял знак, что тоже самое), а напряжение уже достигло порогового $U_D \geqslant U_t$, то фиксируем напряжение: $U_D = U_t$ и рассчитываем ток.
3. Если на прошлой итерации ток через диод (а значит и через индуктивность) был не ноль, то фиксируем напряжение: $U_D = U_t$ и рассчитываем ток.

Моя схема такова:
1. Если ток катушки больше нуля или напряжение больше порогового - то диод открыт(в режиме КЗ) - фиксируем напряжение конденсатора и рассчитываем новый ток катушки по предложенной вами формуле.
2. В противном случае диод закрыт и ток катушки строго равен нулю (ввиду неточности модели ток может стать немного отрицательным, и "застрять" в этом положении, бесплатно заряжая конденсатор) - в программе нужно добавить следующую строку чтобы исправить ошибку:
Используется синтаксис C
IL += di() * dt;
IL *= gd(); // исправит бесплатную подзарядку конденсатора

Лёгкая функция - реализуется через 1 вычитание, 2 сравнения, логическое ИЛИ, логическое И на уровне арифметики без вовлечения условных переходов.

вопрос - как можно реализовать эту функцию через экспоненту?

 Профиль  
                  
 
 Re: Формулы для интегрирования напряжений токов в цепи
Сообщение05.07.2018, 02:51 


07/10/15

2400
xakepp35 в сообщении #1324487 писал(а):
- Если напряжение на конденсаторе(на мембране) $V_m$ превышает некую константу $V_{threshold}$, представляющую собой порог напряжения для открытия диода и общую для всей сети, то
проводимость диода $g_d$ становится равной 1.0 и ток через катушку $I_a$ начинает возрастать а напряжение на $V_m$ начинает убывать.
- Пока ток катушки $I_a > 0$ диод продолжает оставаться открытым, и, в силу инерции $V_m$ опускается аж до отрицательных значений.
- Когда ток прекращается диод закрывается - оба условия не выполняются и проводимость $g_d$ равна нулю.
- Падение напряжения на диоде не моделируется, так как лишь навредит модели.


даже если использовать кусочно линейную аппроксимацию ВАХ, что предлагал EUgeneUS, на что больше всего похоже Ваше предложение, ВАХ останется нелинейной. Всё равно никак Вы не определите проводимость диода, до тех пор, пока не найдёте напряжение на конденсаторе. А найти его можно только зная проводимость диода.

Если использовать для этого напряжение на конденсаторе, в предыдущий момент времени, то да, посчитать всё можно точно. Но это уже будет не диод, а нелинейный динамический элемент. Если проводимость диода зависит не от напряжения на его выводах, а от напряжения на конденсаторе, то такое даже двухполюсником смоделировать нельзя.

Другими словами, всё то, что Вы предлагаете, требует существенного изменения схемы.

xakepp35 в сообщении #1324487 писал(а):
Я и предложил идеальные "псевдотрансформаторы", которые являются источниками входного напряжения. Ввести такое упрощение, чтобы напряжение на вторичных обмотках было пропорционально току на первичной, тогда входной ток в конденсатор становится рассчитать очень просто.


Не бывает ни каких псевдотрансформаторов, и придумывать их не нужно, в электротехнике всё что нужно давно придумано, есть повторители напряжения, которые как раз для этого должны подойти.

Да, все эти изменения приведут к упрощению вычислений. Но при всём при этом, схема у Вас изменяется до неузнаваемости. Если это допустимо, то зачем вообще Вам тогда эквивалентная схема замещения? Ведь ничего общего с реальным нейроном она иметь уже не будет.

В общем Вам нужно определиться с задачей.
Если Вы планируете обучить сеть на ЭВМ, а потом реализовать в аналоговом виде - это одно. Тогда нужно ориентироваться на реальную элементарную базу, а не на псевдотрансформаторы и псевдодиоды. И тогда придётся смириться со сложными вычислениями на этапе обучения.

Если же Вы планируете как можно точнее смоделировать биологическую нервную систему, то такие произвольные изменения схемы вообще недопустимы, так как модель будет неадекватной.

Если же вы просто хотите моделировать информационные процессы в нейросети, то опять же - не совсем понятно, зачем вообще Вам эквивалентные схемы замещения, зачем индуктивности и ёмкости, они ведь только усложняют расчёт, но не дают никаких преимуществ в плане обработки информации. Для этого есть простые стандартные модели.


Одинаково хорошо всё это сделать никак не получится. Тут нужно выбирать.

 Профиль  
                  
 
 Re: Формулы для интегрирования напряжений токов в цепи
Сообщение05.07.2018, 06:04 
Аватара пользователя


11/12/16
13990
уездный город Н
Поймите, в общем виде любой элемент будет влиять на любой другой элемент. Отсюда два выхода:

1. Рассматривая отдельный нейрон, нужно в уравнениях учитывать все элементы нейрона. Если диод можно приблизить функцией ВАХ (для которой существует обратная функция), то решение предоставил Andrey_Kireew.

2. Рассматривая связи между нейронами, нужно проводить между ними какое-то согласование. Чтобы перейти к рассмотрению работе каждого нейрона в отдельности. Например, ввести между нейронами активные элементы, которые
а) Передают со входа на выход напряжение как есть.
б) Имеют бесконечное входное сопротивление и нулевое выходное.

xakepp35 в сообщении #1324487 писал(а):
Моя схема такова:
1. Если ток катушки больше нуля или напряжение больше порогового - то диод открыт(в режиме КЗ) - фиксируем напряжение конденсатора и рассчитываем новый ток катушки по предложенной вами формуле.

Нельзя фиксировать напряжение на конденсаторе. Оно же меняется.

xakepp35 в сообщении #1324487 писал(а):
2. В противном случае диод закрыт и ток катушки строго равен нулю (ввиду неточности модели ток может стать немного отрицательным, и "застрять" в этом положении, бесплатно заряжая конденсатор)

Так как отрицательных токов через диод быть не может (в некоторых приближениях), то получив небольшой отрицательный ток - его в этом случае нужно просто считать нулем.
У Вас другая большая ошибка: состояние диода зависит не от напряжения на аноде (по Вашей схеме - это напряжения на конденсаторе) относительно "земли", а от напряжения между выводами диода. Впрочем, Andrey_Kireew уже об этом сказал:
Andrey_Kireew в сообщении #1324490 писал(а):
сли использовать для этого напряжение на конденсаторе, в предыдущий момент времени, то да, посчитать всё можно точно. Но это уже будет не диод, а нелинейный динамический элемент. Если проводимость диода зависит не от напряжения на его выводах, а от напряжения на конденсаторе, то такое даже двухполюсником смоделировать нельзя.


...
Andrey_Kireew в сообщении #1324490 писал(а):
даже если использовать кусочно линейную аппроксимацию ВАХ, что предлагал EUgeneUS, на что больше всего похоже Ваше предложение, ВАХ останется нелинейной


Нужно понимать, что в этом приближении ВАХ не является функцией. Поэтому не получится использовать одну систему дуф.уров.

Будет две системы:
1. Одна (диод закрыт) описывает отдельно левую (там будет как-то заряжаться-разряжаться конденсатор в зависимости от входных сигналов) и отдельно правую часть (там ничего не будет - токи прекратятся, напряжения на конденсаторах будут постоянными). Контролируем напряжение на диоде для перехода ко второй системе
2. Вторая (диод открыт) описывает нейрон в целом. Контролируем ток через диод для перехода к первой системе.

 Профиль  
                  
 
 Re: Формулы для интегрирования напряжений токов в цепи
Сообщение10.07.2018, 02:33 
Аватара пользователя


02/07/18
10
Москва
Я не очень понял предмет если честно. Но мне уже советуют дальше.

Первое - это использовать комплексные числа в уравнениях.
Но тут чтото странно - как я могу рассчитать импенданс если я не знаю частоты сигнала?

Однако постулируют, что комплекснозначный нейрон сможет решать промлему исклчающего или, а как известно, эта функция линейно неразделима на плоскости, и следовательно одним нейроном не решается

И второе - есть предложения заменить диод двусторонним элементом, который открывается, если напряжение по модулю превышает некий порог и закрывается при переходе тока сквозь элемент через ноль.. Таким образом сеть уходит сильно от биологической модели но переходит из двоичной системы (есть-нет сигнала) в троично-симметричную сигнал положителен-отрицателен-незначителен

Это интересные предложения, которые я хотел бы обсудить в теме на досуге. Но для начала я не совсем понял почему моя модель диода не верна?

 Профиль  
                  
 
 Re: Формулы для интегрирования напряжений токов в цепи
Сообщение10.07.2018, 07:33 
Аватара пользователя


11/12/16
13990
уездный город Н
xakepp35 в сообщении #1325573 писал(а):
Но для начала я не совсем понял почему моя модель диода не верна?

Опять двадцать пять за рыбу деньги. Объясняли же в два голоса.
Потому что для определения скорости вращения ветряка в Сочи (тока через диод) Вы используете скорость ветра в Москве (напряжение на конденсаторе).
Так, конечно, можно но это уже будет не диод, а что-то типа твердотельного реле. Насколько это можно применять для моделирования нейронов - Вам виднее, но схеме не соответствует точно.

xakepp35 в сообщении #1325573 писал(а):
Первое - это использовать комплексные числа в уравнениях.

В электротехнике\электронике есть метод комплексных амплитуд, но похоже автор статьи предлагает что-то другое (по абстракту не разобрался, саму статью не качал).

xakepp35 в сообщении #1325573 писал(а):
Однако постулируют, что комплекснозначный нейрон сможет решать промлему исклчающего или, а как известно, эта функция линейно неразделима на плоскости, и следовательно одним нейроном не решается


XOR легко реализуется при наличии инвертора. Но, видимо, наличие инвертора невозможно в нейроне :D

xakepp35 в сообщении #1325573 писал(а):
И второе - есть предложения заменить диод двусторонним элементом, который открывается, если напряжение по модулю превышает некий порог и закрывается при переходе тока сквозь элемент через ноль..

Это легко. Как только с одним диодом разберетесь, так сразу будет ясно как такой вариант считать.

 Профиль  
                  
 
 Re: Формулы для интегрирования напряжений токов в цепи
Сообщение10.07.2018, 12:37 


07/10/15

2400
Попробуйте вот такую модель
Изображение
в ней устранены многие недостатки. В зелёном квадрате - собственно модель нейрона, всё что вне него - это соединения с соседними нейронами. Если это очень нужно, то можете поставить индуктивности, но не на выходе нейрона, как у Вас было, а на всех входах (это будет тоже самое, но рассчитывать проще).

Чем хороша эта модель - напряжение на её выходе можно принять (хотя и в первом приближении) не зависящим от нагрузки, затухания сигналов уже не будет, и можно соединить последовательно сколько угодно нейронов. Рассчитывать такую модель можно независимо от других, подключенных к ней, нейронов.

Нагрузочная способность (число входов соседних нейронов, которое можно одновременно подключить к выходу) небольшая, всего несколько нейронов, может 5-10, не больше. Её можно повысить раз в 10, если использовать в модели полевой транзистор, возможно это будет даже адекватнее.

PS: по сути получается некое подобие элемента "И" допотопной технологии РТЛ, и вывод на счёт всех этих нейросетей напрашивается сам собой ...

 Профиль  
                  
 
 Re: Формулы для интегрирования напряжений токов в цепи
Сообщение10.07.2018, 15:45 
Заслуженный участник


20/08/14
11861
Россия, Москва
Andrey_Kireew в сообщении #1325642 писал(а):
PS: по сути получается некое подобие элемента "И" допотопной технологии РТЛ, и вывод на счёт всех этих нейросетей напрашивается сам собой ...
Не, тут конденсатор всё портит и схема превращается из логической с устойчивыми состояниями в некую аналоговую по которой гуляют волны переключений. В цифровых такое наблюдается в случае "гонок" сигналов, но обычно их как раз подавляют, а тут конденсатором наоборот растягивают до смыкания отдельных процессов переключений в непрерывную кашу. Да и относительно малое усиление транзистора этому способствует.
В общем при достаточно большой ёмкости конденсатора анализировать схему как логическую не получится.
Но для расчётов схема намного приятнее исходной конечно. Насколько она соответствует процессам в нейроне ничего не скажу.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2

Модераторы: photon, profrotter, Парджеттер, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group