вот тебе формула
спич в том что расчёт по этой формуле займёт у процессора много времени но это не проблема. я , когда строил свой РМ, по этой формуле построил таблицу зависимости выходного напряжения РМ с шагом в 1 вольт от угла открытия триака. результат оказался плачевный - в диапазоне 80-200в напряжение на тэне поддерживалось с точностью 1-8в. естественно меня это не утроило , долго ковырялся, перепроверял пока не сунул щуп осциллографа в сеть. нет там синуса, точнее изуродованный синус. в этом как раз и крылась причина хреновой работы РМ. эта формула справедлива для чистого синуса, а в сети мы имеем то что имеем.
в результате реализовал следящий алгоритм [сообщение #12691149] , напряжение на тэнах поддерживается с точностью 1в , трёхфазный РМ пашет третий год.
Аппаратная платформа Arduino для автоматизации наших процессов
m16
Модератор
Тамбов
1.9K 1K
Отв.1240 16 Мая 19, 11:18
Sonologist
Профессор
Москва
2.5K 875
Отв.1241 16 Мая 19, 12:52
Вот как раз из-за "драной" синусоиды в сети мне померещилось, что данная таблица поможет хоть как-то приблизиться к желаемому результату без лишних пересчетов градусов в радианы и отрезки времени: все уже дано и можно напрямую оперировать с micros(). Однако попытка вывести формулу в экселе потерпела неудачу. В принципе, можно тем же свитч-кэйс перебрать сотню позиций и сделать нужный пересчет, просто показалось, что с формулой получится изящней. Касательно обратной связи - думаю не изгаляться с многократыми измерениями с последующим пересчетом в среднеквадратичное значение. На мой взгляд проще на ТЭН повесить или LTC196x (реальное напряжение) или сразу ADE7754ARZ (реальная мощность) и от их показаний плясать - дальше арифметика уже простая (главное отловить дельту между детектором нуля и самим нулем). Или я тут что-то опять напутал?
m16
Модератор
Тамбов
1.9K 1K
Отв.1242 16 Мая 19, 13:27, через 36 мин
В принципе, можно тем же свитч-кэйс перебрать сотню позиций и сделать нужный пересчет, просто показалось, что с формулой получится изящней.Sonologist, 16 Мая 19, 12:52время от времени кривизна синусоиды в сети меняется , и какой формулой это можно описать?
изящно это двадесятка строк на асме - и весь регулятор
Скрытый текст
//*****************************************************************************//
// вычисление напряжения стабилизации
// if U_ctrl = U_rms TOP_T0 = TOP_T0
// if U_ctrl < U_rms TOP_T0 = TOP_T0 + step_fase
// if U_ctrl > U_rms TOP_T0 = TOP_T0 - step_fase
//*****************************************************************************//
sbrc psw, m_pw_zero // nriac not onn if power < 5%
rjmp ml2
.........................................
dec D0l
cp D0l, U_rms // E0 - ctrl B0 - rms
// U_ctrl - U_rms
breq equal // U_ctrl = U_rms
brcc ctrl_over
.........................................
ctrl_under: adi_w DELTA, step_fase // U_ctrl < U_rms
cp_w DELTA, Z
breq equal
brcs equal
mov_w DELTA, Z
rjmp equal
.........................................
ctrl_over: subi_w DELTA, step_fase // U_ctrl > U_rms
tst_w DELTA
breq equal
brpl equal
clr_w DELTA
.......................
equal: mov tmpA, U_rms
sub tmpA, U_ctrl
brmi neg_delta
cpi tmpA, 10
.......................
positiv_delta: brcs error_not
.......................
error_yes: error_on
// rjmp ml2
//*****************************************************************************//
На мой взгляд проще на ТЭН повесить или LTC196x (реальное напряжение) или сразу ADE7754ARZ (реальная мощность) и от их показаний плясатьSonologist, 16 Мая 19, 12:52можно конечно и так, но у меня одна tiny13a со всем этим справляется
Sonologist
Профессор
Москва
2.5K 875
Отв.1243 16 Мая 19, 14:04, через 37 мин
Про формулу, безуспешно пытающуюся описать деформированную синусоиду - понятно. Речь шла о другом: есть таблица (доля мощности и время открытия триака), хотел найти формулу зависимости второго от первого. Дальше - простая арифметика. Но эксель выдал белиберду.
За код спасибо, но в нем не разобраться... ассемблер для меня - совершенно черный ящик. Даже не знаю, как к нему подходить. Можно ли повторить то же самое на "недобитом" ардуиновском С? Или скетч выйдет намного длиннее и неизящнее? "Рожа" - как я понимаю, - это "D"?
За код спасибо, но в нем не разобраться... ассемблер для меня - совершенно черный ящик. Даже не знаю, как к нему подходить. Можно ли повторить то же самое на "недобитом" ардуиновском С? Или скетч выйдет намного длиннее и неизящнее? "Рожа" - как я понимаю, - это "D"?
Tomat7
Магистр
Черноморская губинния
235 138
Отв.1244 16 Мая 19, 14:34, через 31 мин
Играюсь с Ардуиной на предмет создания стабилизатора мощностиSonologist, 16 Мая 19, 09:58Чо там играться, тема изъедена вдоль и поперек - [Регулятор напряжения и тока на Arduino Pro Mini]
Бери да делай.
Sonologist
Профессор
Москва
2.5K 875
Отв.1245 16 Мая 19, 15:02, через 28 мин
Чо там играться, тема изъедена вдоль и поперекTomat7, 16 Мая 19, 14:34Неужели пришло в голову, что я это не читал? И почему обязательно надо брать да делать? Есть желание сделать самому. Криминал?
m16
Модератор
Тамбов
1.9K 1K
Отв.1246 16 Мая 19, 15:06, через 5 мин
делать не обязательно, а почитать чтобы на грабли не наступать оно того стоит.
Tomat7
Магистр
Черноморская губинния
235 138
Отв.1247 16 Мая 19, 15:16, через 10 мин
Неужели пришло в голову, что я это не читал?Sonologist, 16 Мая 19, 15:02Хмм... Неоптимальность расчета по таблице в той теме обсуждалась несколько месяцев и единогласно была отвергнута.
Хочется пройти по "своим" граблям? ;D Знакомо... ;)
Sonologist
Профессор
Москва
2.5K 875
Отв.1248 16 Мая 19, 15:19, через 4 мин
почитать чтобы на грабли не наступатьm16, 16 Мая 19, 15:06Да уж по второму кругу пошел К сожалению, не все ухватываю, ибо не спец. А разобраться хочется.
Gurrd
Доктор наук
Курган
792 390
Отв.1249 21 Мая 19, 14:29
Подставляю ее в столбец "D" и получаю какую-то хрень. В математике я совсем не силён, очевидно, что хрень из этого и проистекает. Но что я сделал неправильно?Sonologist, 16 Мая 19, 09:58В математике тоже не очень силен, поэтому может чего-то недопонял... Но в экселе можно увеличить точность (в смысле разрядность) коэффициентов полинома.
Выставив 16 знаков после запятой, твоя формула превращается в "y = 0,0000000000000002x6 - 0,0000045736282693x5 + 0,0011434070609377x4 - 0,1121341871353250x3 + 5,3860574789918600x2 - 192,2446563592120000x + 9 446,8272127805000000". Точность значительно возрастает.
Правда для ардуины это не очень подходит, т.к. у нее точность 6 или 7 знаков после запятой. Могу ошибаться, ибо не очень (или "очень не" ) ардуинщик)))
surami56
Магистр
СПб
202 71
Отв.1250 21 Мая 19, 20:06
Правда для ардуины это не очень подходит, т.к. у нее точность 6 или 7 знаков после запятой.Gurrd, 21 Мая 19, 14:29Есть и 32 разрядные данные.
Типы данных в Ардуино:
boolean (8 бит) - простое логическое true/false (правда/ложь)
byte (8 бит) - unsigned число в диапазоне от 0-255
char (8 бит) - signed число в диапазоне от -128 до 127. В некоторых случаях компилятор будет интерпретировать этот тип данных как символ, что может привести к неожиданным результатам.
unsigned char (8 бит) - то же что и ‘byte’; для ясности кода рекомендуется вместо этого типа данных использовать ‘byte’.
word (16 бит) - unsigned число в диапазоне от 0 до 65535
unsigned int (16 бит)- то же, что и ‘word’. Рекомендуется заменять типом данных ‘word’ для сокращения кода и ясности
int (16 бит) - signed число в диапазоне от -32768 до 32767. Один из самых распространенных типов данных, который очень часто используется для объявления переменных в скетчах-примерах для Arduino, встроенных в Arduino IDE
unsigned long (32 бита) - unsigned число в диапазоне от 0-4,294,967,295. Чаще всего этот тип данных используется для хранения результатов функции millis( ), которая возвращает количество миллисекунд, на протяжении которого работал ваш код.
long (32 бита) - signed число в диапазоне от -2,147,483,648 до 2,147,483,647
float (32 бита) - signed число в диапазоне от -3.4028235E38 до 3.4028235E38.
Gurrd
Доктор наук
Курган
792 390
Отв.1251 22 Мая 19, 08:30
Есть и 32 разрядные данные.surami56, 21 Мая 19, 20:06Дело не в разрядности (кол-во бит), а в точности (кол-во знаков после запятой).
Вот про точность ардуины (мысля, не моя а копипаст):
Точность дробных чисел типа float составляет 6-7 десятичных знаков. Здесь имеется ввиду общее количество цифр, а не количество знаков после запятой. В отличие от других платформ, где более высокой точности можно добиться за счет использования типа double (до 15 знаков), в Ардуино тип double имеет такую же размерность, как и float.
m16
Модератор
Тамбов
1.9K 1K
Отв.1252 22 Мая 19, 10:04
ерундой занимаетесь товарищи, в целочисленке считать нужно , в целочисленке.
Sonologist
Профессор
Москва
2.5K 875
Отв.1253 24 Мая 19, 17:54
Короче, народ мне помог справиться. Формула не понадобилась. Программа ([Маленький скетч для управления триаком Ардуиной.]) исправно и быстро работает с таблицей. Как будет выглядеть в железе - посмотрим: до него руки никак не дойдут .
PS: Кстати, работа исключительно с целочисленкой.
PS: Кстати, работа исключительно с целочисленкой.
Шмель161
Студент
Каменск-Шахтинский
49 21
Отв.1254 19 Марта 20, 12:32
KD, подскажите, пожалуйста, а в ардуино уно можно затолкать этот скетч? И где можно глянуть список компонентов?
gxtkjdjl
Профессор
архангельск
6.4K 1.7K
Отв.1255 19 Марта 20, 14:48
коллеги а не кто, известную на другом форуме, автоматику Спиртогон на один термодатчик не переделывал? штука простая, даже я собрал и прошил с первого раза, но у меня царга короткая по дельте между датчиками стабилизации нет.
Soberman
Новичок
Москва
9 1
Отв.1256 28 Июля 20, 21:38
Дробного дня, коллеги.
Не знаю в каком разделе спросить, спрошу тут, так как тема наиболее схожая.
Есть ли ветка , в которой обсуждается проект с сайта homesamogon точка ru ?
Не реклама ни чего такого. Просто понравился проект. Но так как в ардуино не шарю пока, то хотелось бы пообщаться с теми, кто уже собирал такое... Автор же сам, как то на контакт не выходит.
Спасибо за внимание.
Не знаю в каком разделе спросить, спрошу тут, так как тема наиболее схожая.
Есть ли ветка , в которой обсуждается проект с сайта homesamogon точка ru ?
Не реклама ни чего такого. Просто понравился проект. Но так как в ардуино не шарю пока, то хотелось бы пообщаться с теми, кто уже собирал такое... Автор же сам, как то на контакт не выходит.
Спасибо за внимание.
Gurrd
Доктор наук
Курган
792 390
Отв.1257 29 Июля 20, 07:07
Soberman, ветки такой тут вроде нет, могу поделиться собственным опытом. По этому проекту я собирал себе автоматику. Немного не устраивала функциональность, решил подправить под себя код. Толи автор свой код обфусцирует, толи просто так кодит, но в итоге под его аппаратную платформу мне пришлось написать свой скетч. Более сырой конечно, решающий более узкие задачи (чисто под себя). Были планы расширять его дальше, но наткнулся на проект лакибокса. Посмотрел и в итоге пересобрал свою автоматику и переехал на лакибокс. Советую обратить внимание на него. Аппаратно не сильно отличается от хоумсамогон. Функционал гораздо шире.
При этом проект более чем живой - постоянно выходят новые версии (в ближайшее время обещают вообще облачную версию выпустить), есть форум, где пасутся и пользователи (в т.ч. собирающие его самостоятельно) и разрабы, на форуме куча инфы и по самостоятельной сборке и по эксплуатации.
При этом проект более чем живой - постоянно выходят новые версии (в ближайшее время обещают вообще облачную версию выпустить), есть форум, где пасутся и пользователи (в т.ч. собирающие его самостоятельно) и разрабы, на форуме куча инфы и по самостоятельной сборке и по эксплуатации.
Soberman
Новичок
Москва
9 1
Отв.1258 29 Июля 20, 12:02
обфусцируетGurrd, 29 Июля 20, 07:07
Чтож , спасибо за ответ. Попробую присмотреться. )) За одно и слово новое узнал))
saniaxxx
Кандидат наук
Кострома
421 63
Отв.1259 29 Июля 20, 12:37, через 35 мин
Попробую присмотретьсяSoberman, 29 Июля 20, 12:02Могу посоветовать присмотреться к малинке и проекту craftbeerpi, я пользуюсь уже несколько лет, даже тему создавал, постоянно добавляю новый функционал.
В отличии от ардуины производительность малинки гораздо выше, цена выше но приемлимая, можно использовать языки высокого уровня, например пайтон - соотвественно и код писать проще (порог входа ниже), есть документация и возможность писать свои плагины. Добавил плагин - добавилась функциональность, ничего прошивать не надо. Есть конечно свои ограничения, но собрать все можно на коленке за пару вечеров