@johan зато поймёшь зачем на самом деле нужны нейронные сети — как система принятия решений или поиска в тех прикладных областях, по которым не знакома даже терминологическая база.
Т.е. не знаешь терминов и понятий, а потому не можешь даже найти желаемое. Т.к. не знаешь что и как называется. А найдя не поймешь не зная терминологию.
@johan про SIMD инструкции слышать доводилось? Это которые SSE в прошлом, а ныне AVX. Векторная обработка, примерно так же как умножения или деления в столбик — т.е. работа с разрядами числа. А в нашем случае операции над отдельными байтами. Выполняемые одновременно, чтобы быстренько выполнить арифметическую операцию над всем числом, закодированном несколькими байтами.
@darkcat09 думали ты сообразишь, что можно отключиться от конкретной ветки — нажав на кнопочку:
@johan Как сильно тебя удивит, что именно это самое моделирование процессов и выполняет математическая модель, но без хранения многомерных таблиц в дорогой и горячей по тепловыделению SRAM памяти?
Математическая модель, это такая вещь, у которой может быть состояние и скармливая которой текущие показания можно оперировать знанием о протекании процесса :) Т.е. заглядывать в прошлое и предсказывать изменение определённых характеристик в будущем :)
@johan @darkcat09 ну посчитай двоичный логарифм от 16 миллионов. сколько бит получил? теперь умножай это на количество значений, что должны реально храниться в таблице — это «мощность множества» или размер палитры. какой размер в байтах у таблицы получил? в байте восемь бит.
движок не является инертным, у движка постоянно меняется крутящий момент на валу. очень быстро меняется, хоть тысячи раз в секунду. никак к инерции не привязан.
далее, это система с переходными процессами. сейчас у тебя изменился крутящий момент на валу, а обороты — угловая скорость вращения вала — изменятся из-за этого через некоторое время. как раз тогда, когда на валу будет уже другая нагрузка и тебе это в тот момент будет нахер не нужно. переходные процессы происходят не моментально и не в силу большой массы (инерции), а потому что идут по затухащей или по нарастающей. реагируя на управляющие воздействия далеко не моментально.
предсказать все возможные варианты смены состояний не реально. это очень большой автомат конечных состояний. и последовательности перехода (смены состояний) может быть огромное количество разных. а управляющие воздействия надо подавать исходя из комбинации нескольких последних состояний перемноженных на показания измеряемых характеристик (показаний датчиков).
считаем размер многомерной таблицы.
если число учитываемых состояний в прошлом порядка семи, всего возможное количество состояний пятьдесят. то получилось что? 50^7 × на показания нескольких датчиков (каждый из которых это отдельная ось).
@johan @darkcat09 размеры таблиц какие получатся?
чтобы ходить по таким таблицам надо иметь большой объём кеша. а делается такая память лишь на SRAM-ячейках. потому кешей таких объёмов нет даже на серверных ЦПУ.
это шеститранзисторная ячейка, конструктивно это далеко не тоже самое, что ячейки в DRAM-памяти.
что можно пихается в максимально быструю память контроллера, а остальное считается на регистрах, за счёт фрейма (регистрового файла).
всё что ты знаешь о быстродействии работы с DRAM-памятью это про то, что у процессора есть префетчер. который загружает в SRAM ячейки кеша целую строку данных размером в 128 байт, каждый раз, когда происходит обращение хотя бы к одному байту.
и компиляторы с программистами пишут свои программы так, чтобы префетчер пореже ошибался. пытаясь предсказать к каким адресам памяти программа в скором времени обратится.
и переменные используемые коде программы размешаются в памяти так, чтобы были на расстоянии меньше размера той самой cache line.
потому что DRAM-память очень медленная, общение с её контроллером жрёт огромное количество времени. и считывать данные с DRAM-памяти можно лишь такими вот строками.
P.S. есть публикация от одного из ментейнеров Red Hat — What every programmer should know about memory, Ulrich Drepper. и её перевод на русский https://rus-linux.net/lib.php?name=/MyLDP/hard/memory/memory.html о том как работает кеш-память в процессорах, как это всё обращается к памяти оперативной и что из себя эти процессы представляют.
@johan @darkcat09 слушай, гуманитарий, ты хоть 200 нейронок вокруг себя положи, но мозги то самому включать придётся.
«pwm_fan» — это что по-твоему? все разъёмы для вентиляторов на материнских платах, это PWM, т.е. от ШИМ-регуляторов.
и сходи погляди, что такое ШИМ-регулирование электродвигателем, что оно никак не касается вопроса управления напряжением :)
математическая модель двигателя позволяет рассчитывать скорость вращения ротора и момент на валу в зависимости от текущих токов фаз (от частоты и величин токов в обмотках статора).
Модель — это система уравнений. В которую подаёшь снятые показания в качестве коэффициентов. После чего ищешь решение уравнений.
Ищутся целочисленные решения дифференциальных уравнений высших порядков — производные шестого и восьмого порядка являются обычным явлением, а местами и до двенадцатого.
И не все из этих уравнений имеют алгебраическое решение, в которое можно было бы просто подставить коэффициенты. Некоторые из уравнений решаются сугубо численными методами.
Теперь ясно где там и зачем там нужна точность вычислений до определённого знака? Или упорно полагаешь, что речь идёт лишь о точности значений напряжения, силы тока или сдвига фазы?
@johan @darkcat09 если бы в таких контроллерах, используемых в электроприводе, был бы полезен блок FPU, то он непременно был бы обязательной составляющей. для вычисления корней в системах уравнений через IEEE-754. но таких лёгких путей не бывает.
@johan @darkcat09 над «прошивками» микроконтроллеров управляющих двигателям приходится работать серьёзными коллективами. во вполне серьёзных IDE и с использованием языков типа Си и С++.
чтобы научить микроконтроллер управлять всего лишь несколькими моделями двигателей требуется команда из нескольких человек разработчиков-программистов. по совместительству являющихся при этом ещё и инженерами по электротехнике.
@johan @darkcat09 в тех вентиляторах, что используются в десктопах или ноутбуках нет подшипников — там магнитный подвес, на многих даже написано что маглев или что-то такое. формально именуют подшипниками скольжения, но без магнитного подвеса такой не смог бы работать так долго, со всеми этими постоянными раскручивания и остановками крыльчатки.
читай по приведённой ссылке:
Сегодня подход к данному методу несколько иной: математическая модель двигателя позволяет рассчитывать скорость вращения ротора и момент на валу в зависимости от текущих токов фаз (от частоты и величин токов в обмотках статора).
Этот более прогрессивный подход предоставляет возможность независимо и почти безынерционно регулировать как момент на валу, так и скорость вращения вала под нагрузкой, ибо в процессе управления учитываются еще и фазы токов.
Некоторые более точные системы векторного управления оснащены схемами обратной связи по скорости, при этом системы управления без датчиков скорости именуются бездатчиковыми.
Так, в зависимости от области применения того или иного электропривода, его система векторного управления будет иметь свои особенности, свою степень точности регулировки.
Когда требования к точности регулировки скорости допускают отклонение до 1,5%, а диапазон регулировки — не превышает 1 к 100, то бездатчиковая система вполне подойдет. Если же требуется точность регулировки скорости с отклонением не более 0,2%, а диапазон сводится до 1 к 10000, то необходимо наличие обратной связи по датчику скорости на валу. Наличие датчика скорости в системах векторного управления позволяет точно регулировать момент даже при низких частотах до 1 Гц.
@johan @darkcat09 С каких пор вентиляторы куллеров стали делать на асинхронных двигателях? И зачем ему микроконтроллер для управления оборотами и крутящим моментом? :)
@johan @darkcat09 А тут про два подхода к управлению теми же асинхронниками https://electricalschool.info/elprivod/1975-skaljarnoe-i-vektornoe-upravlenie.html
Чем большее сопротивление вращению преодолевает вал двигателя (из-за механической нагрузки), тем активнее система управления сопротивляется перегреву в обмотках и смене угловой скорости вращения вала.
скорость вращения ротора всегда немного меньше скорости вращения магнитного поля (которая определяется частотой переменного тока, питающего двигатель).
Отставание ротора от вращающегося магнитного поля статора (скольжение ротора) тем больше, чем больше нагрузка двигателя. Отсутствие синхронизма между вращением ротора и магнитного поля статора — характерная черта асинхронного двигателя, от которой и происходит его название.
Вращающееся магнитное поле в статоре создается с помощью обмоток, питаемых токами, сдвинутыми по фазе.
С целью регулировки угловой скорости вращения ротора, а также крутящего момента на валу современных бесщеточных двигателей, применяют либо векторное, либо скалярное управление электроприводом.