-
Постов
815 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Весь контент amaora
-
То есть цифровой интегратор, для этого надо порядка 1М выборок/сек или больше. Без DSP с такой функцией это слишком дорого (невозможно). У меня СДПМ обычно, а параметры оцениваются непосредственно те, которые в уравнения входят, полные индуктивности Ld,Lq. Оценка есть только в одной точке Id=Iq=0, зависимости Ld,Lq (Lm?) от значений токов не снимаю и не аппроксимирую. Не уверен, что с каждым двигателем постоянная L/R будет в достаточной степени неизменна в процессе затухания тока.
-
Да, здесь давали ссылки на описание таких методов. По апериодическому процессу затухания тока, что исключает DT искажения и саму модуляцию напряжения на участке измерения. Но требует знания индуктивности, а с учётом нелинейности магнитопровода это сложно, я пока такое не оцениваю. Так а где брать среднее напряжение за цикл с учётом переходных процессов?
-
Разные составляющие по разному зависят от других переменных, падение на R зависит линейно от тока, а неопределённость DT не зависит от тока а только от его полярности. За счёт этого можно их разделить в правильно созданных условиях. Другие источники погрешности я пока игнорирую по причине их малости в моих условиях, либо их влияние не наблюдаемо и эквивалентно изменению R обмотки статора. Что такое cla?
-
В данном случае для повышения точности оценки R статора. В лоб это аналоговым интегратором? Я часто работаю со сторонними платами, на которых только простые делители с фазных напряжений на АЦП заведены. Это будет падение на диоде закрытого ключа. Такую схему модуляции ни в каких режимах не применяю, всегда синхронно. Если чуть подробнее, то сопротивление я измеряю при работе всех трёх фаз, модуляция от центра либо с подставкой, чтобы не зацепить нелинейности из-за искажения коротких импульсов, работают все ключи. Ток даю поочерёдно в трёх направлениях, оценки R получается тоже три, а для DT одна оценка на все положения тока. Можно было бы две фазы в землю упереть, но будет ли лучше сложно сказать, начнётся дребезг в токовом контуре из-за искажения коротких импульсов.
-
Сейчас переделал всю компенсацию DT на примитивный учёт полярности тока. Включил в уравнения напряжений составляющую от DT, за счёт чего оцениваю и саму её величину. Так же на двух значениях тока (заданный и 50% от него). Протестировал пока мало: оценка R = 8 мОм плывёт на -9% при изменении заданного тока от 20А до 80А. Время DT от 150 до 400 нс, время цикла 35 мкс, питание 30в, то есть на малом токе падение на R сравнимо с неопределённостью от DT. Импеданс на неподвижном, да. В этом тесте оценка активной части импеданса (на 1.1кГц) отличалась от R на постоянном токе на величину порядка 10%. Но это тестовый трехфазный дроссель без магнитопровода, воздушный.
-
1) Например я не придумал куда приложить эту аналоговую периферию, удобнее получается на внешнее рассыпухе сделать, а от МК мне надо побольше флопсов; 2) Сейчас есть новые G4; 3) Алиэкспресс это какой-то сомнительный показатель.
-
В приоритете целостность управляющих сигналов от МК на драйверы. То есть, в вашем случае земля МК идет с драйверов. Информационные интерфейсы изолируйте, делайте дифференциальными, по необходимости.
-
STM32 управление мостами
amaora ответил whale тема в ARM, 32bit
Может быть тогда перекладывать данные в регистры GPIO через DMA по событию таймера? -
Кратковременный источник питания
amaora ответил amaora тема в В помощь начинающему
Имеющийся упомянут к тому, что рассматривается возможность добавить "накопитель" к нему. Повышенный ток нужен только 2-3 сек с последующим отдыхом около 30 сек. Новый аккумулятор проще да, но это будет избыточная ёмкость и масса/габариты. -
Кратковременный источник питания
amaora ответил amaora тема в В помощь начинающему
Забыл важную деталь, что источник должен быть автономный. А по массе/габаритам предел - четыре автомобильных кислотных акб. Это только для экспериментов под моим контролем. Рассматривал батарею ионисторов в параллельном включении. 20-24 банок EDLC по 500Ф. Если упрощенно считать, 100А с конденсаторов и 100А с основной акб. По ёмкости получается можно выдержать 2 сек до просадки на 10в. Но если учесть внутреннее сопротивление (без учёта монтажа и проводов), то конденсаторы просядут на 9в сразу же на старте. Без преобразователя нужно очень невыгодно наращивать ёмкость и снижать ESR. -
Кратковременный источник питания
amaora опубликовал тема в В помощь начинающему
Есть аккумулятор 48в способный отдавать 80А с просадкой напряжения не более 10в. Мне необходим источник способный давать ток около 200А в течение 2-3 сек минимум. Какие есть способы накопления энергии аккумулятора и последующей отдачи в нагрузку за указанное короткое время? Это разовая задача, для экспериментов с электроприводом. В приоритете дешевое и простое решение. 1) Новый аккумулятор (дорого и он не нужен); 2) Батарея ионисторов и DC/DC (сомнительно и сложно, и дорого тоже); 3) Раскручивать маховик (опасно и нет готовой механики, дорого); 4) ??? Спасибо. -
Предпочёл бы вместо явной работы с этой древовидной структурой решать задачу пробросом интерфейсов. У себя например сделал вход в CLI удалённого узла, а если тот имеет доступ к каким-то slave-ам (по другоим интерфейсам или через другую сеть CAN) то можно зайти в их CLI. Матрёшка из транспортных протоколов, а интерфейс через сеть получается такой же как если устройство подключено локально по USB или UART. Сам "network discovery" у меня сильно похож на то, что описывал jcxz, и работа остальных протоколов так же происходит независимо. Есть некоторые особенности как именно новые устройства должны отвечать на запрос энумерации, у которых ещё не назначены короткие идентификаторы позволяющие задействовать арбитраж.
-
В частности, не хотелось составлять список обработчиков команд и регистрировать их на старте, как это обычно все делают. У меня команды разбросаны по всему проекту, помечены с помощью макросов, что это обработчик CLI, а таблица собирается python-скриптом на этапе сборки. Ну и это не такая сложная задача, чтобы не делать велосипед, посмотрел сейчас, у меня около 600 строк (как упомянутый tinycli). Но у вас в требованиях скрипты, это существенно усложняет задачу. Надо искать не библиотеку командной строки а в первую очередь интерпретатор какого-то языка влезающий по ресурсам.
- 26 ответов
-
- command shell
- interpreter
-
(и ещё 4 )
C тегом:
-
У меня свой простенький shell, с редактированием, историей и автодополнением названий команд, без скриптов. Библиотечку готовую не подобрал.
- 26 ответов
-
- command shell
- interpreter
-
(и ещё 4 )
C тегом:
-
Опрос по системам хранения данных
amaora ответил Segment тема в Программирование
ФС это слой абстракции для хранения данных, не обязательно она должна быть распространённой и с чем-то совместимой. На верхний уровень даёт работу с непрерывными блоками данных (файлами) а на нижнем уровне разбирается с конкретным носителем, куда записать новые данные, как потом их читать, когда и как стирать секторы flash, делать выравнивание износа и т.д. Требования к ФС в разных случаях разные, бывают примитивные, но это все равно можно назвать ФС. -
Быстрое деление в AVR - Как?
amaora ответил MPetrovich тема в AVR
Можно использовать то, что число x меняется не слишком быстро и находить обратное q=1/x каким-нибудь итерационным численным методом (метод Ньютона?) взяв за начальное приближение предыдущее значение q. Если значение x поменяется быстро, то находить начальное приближение подсчётом ведущих нулей, или искусственно ограничить его быстрое изменение. -
У меня есть вычисление тензора импеданса и далее индуктивностей в собственных DQ осях на переменном токе частотой порядка 1-3 кГц. Побочно там оценивается и активная составляющая, но это не то, что нужно. Относительно замера на постоянном токе эта оценка обычно сильно завышена т.к. включает в себя и магнитные потери. А погрешность на постоянном токе возникает от неопределённости напряжения во время DeadTime. Влияние пульсации тока от ШИМ не надо учитывать, ведь оценка Rs делается для того чтобы использовать это значение в обычном режиме работы двигатель/генератор, где так же используется ШИМ. Пока не везде есть возможность компенсировать DeadTime путём измерения фазных напряжений через RC фильтры подходящих номиналов.
-
UB с псевдонимами появляется когда через один тип записали а через другой прочитали (компилятор может решить не читать повторно а взять прочитанное ранее из регистра, или отложить запись на потом). В вашем коде type похоже будет константой времени жизни объекта с доступом через тип u32, а остальные поля структуры предназначены для работы только через свой тип, поэтому все нормально. Если так уж страшно, то можно использовать union из структур. Такое видел например в SDL.
-
Раньше применял ACS7**, потом перешёл на шунты и усилители AD8418 или INA240, только у меня частота в 10 раз меньше.
-
Может быть ещё, что вращение не равномерное. Увеличить момент инерции не пробовали? Вращать внешним независимым приводом?
-
Это же надо магниты неравномерно клеить? Датчики Холла рядом с обмотками на статоре? Или отдельная магнитная система для датчиков? 1) Когда датчики в обмотках, надо ещё анализировать как это будет работать на максимальном токе, паттерн может поменяться; 2) Стабильность на разной температуре и от старения; 3) Если магниты неравномерно расположены, то не будет ли видно эту нерегулярность по токам и напряжениям? А если добавить неравномерность количества витков на разных зубцах статора? 😁
-
Ну так это не надёжно, если только не работать с двигателями специальной конструкции, где неравномерность магнитной системы Холлов будет выполнена намеренно и стабильно. Очень узкий диапазон условий куда можно это применять, кто-то делает и не говорит. Возможно слова надо знать ключевые, чтобы найти.
-
Сайд-эффектом помечен барьер, все до чего "законно" без UB может дотянуться функция с неизвестной при компиляции реализацией (аналог барьера), не может быть переставлено вокруг барьера. Поэтому value запишется до барьера. Ну либо не запишется нигде, но я не уверен, что компиляторы могут это надёжно вывести. https://godbolt.org/z/rP4W4Eq19 Не похоже на барьер памяти, надо читать всю документацию чтобы понять.
-
Барьер компилятора это функция которая потенциально может читать и писать память, поэтому компилятор не может выбросить записи в память до барьера и использовать кэшированные в регистрах значения после барьера. Если value не используется и включена LTO, то наверно единственную запись в value можно выбросить и это будет корректно.