Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2

ТЕМА: Нижний подогрев.

Нижний подогрев. 6 года 2 нед. назад #26

Пришла моя железяка. Два нерегулируемых режима 80 и 120 градусов, внутри скорей всего пара копеечных термореле. В комплекте силиконовый коврик толщиной 1.5..2мм, можно на стол лепить. Если использовать как подогрев, то годно. Если как термостол для пайки(с поддержкой заданного термопрофиля и ровным тепловым полем), то не годен даже как донор. Похоже дешевой альтернативы прошным столам нет.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 6 года 2 нед. назад #27

  • Ulis
  • Ulis аватар
  • Не в сети
  • А вот и я! (с)
Прошный от стольника деревом вроде, если хороший?
«Умные нам не надобны. Надобны верные» (с)

Пока горит огонь в груди,
Ты часто жало не луди.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 6 года 2 нед. назад #28

От ~15 деревянных, если маленький размер и голый стол, а все управление городить самому.
тут они есть termopro.ru/cat...va_pechatnyx_p/

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

Нижний подогрев. 6 года 2 нед. назад #29

  • Ulis
  • Ulis аватар
  • Не в сети
  • А вот и я! (с)
Ага, именно его и мел ввиду.
Наверное такую хреновину имеет смысл покупать комплектом, с верхней паялкой.

«Умные нам не надобны. Надобны верные» (с)

Пока горит огонь в груди,
Ты часто жало не луди.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 6 года 2 нед. назад #30

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Выпилил донышко и промежуточную пластину из стеклотекстолита. На теплоизоляцию пустил какую-то вату синтетическую: не колется, разделяется на слои, режется ножницами, держит какие-то тыщи градусов.
Выпилил рамку. Завтра надо решить с проводом и с крутить в кучу. Ну ещё коробку надо выпилить для регулятора.
Сергей
Последнее редактирование: 6 года 2 нед. назад от GREY.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 6 года 1 нед. назад #31

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Ну собрал грелку, да. Провода сунул в кремнийорганическую трубку, по ходу одну термопару на этом месте заломал. Хорошо, что купил лишнюю. И да, как обычно, изгавнялся в термопасте от пяток до бровей.

Потыркал термопарой в поверхность - разница в 2 градуса максимум. Греется долго. Максимальная температура 250°С - грелки последовательно. Так что - это подогрев, хотя, наверное, можно и запаять, если уж совсем надо. Думаю, что если запараллелить можно чуть побольше нагреть.



Уже воспользовался, снял два камешка и поставил другие. Очень удобно. Нужно было раньше сделать. Думал, что баловство это все.

Пойду коробочку для регулятора запилю.
Сергей
Последнее редактирование: 6 года 1 нед. назад от GREY.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 6 года 1 нед. назад #32

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Закончил.
Сергей
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #33

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
А никто не покажет нормально документированный ПИД для восьмибитника? А да, целочисленный. Или пните чего почитать.
Сергей
Последнее редактирование: 5 года 11 мес. назад от GREY.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #34

в фене подсмотри
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #35

GREY писал(а):
А никто не покажет нормально документированный ПИД для восьмибитника? А да, целочисленный. Или пните чего почитать.
Там несколько строк всего, какая разница скольки битника?
например
olegart.ru/word...flow-soldering/
Интегратор там не гуд, работает пока все хорошо. Но если не сможет вырулить, то интегратор пойдет в переполнение. en.wikipedia.or...Integral_windup
В интеграторе надо использовать математику с насыщением.
Дифференциатор тоже примитив как валенок, может быть не очень хорош в конкретном применении.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #36

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Я бы хотел остаться в рамках расчётов 8-м бит целых слов.

В том и дело, что хотелось бы более-менее готовое решение. Без грубых ошибок.
Сергей
Последнее редактирование: 5 года 11 мес. назад от GREY.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #37

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Йобан-бобан, дифсоставляющая считается, оказывается, не от ошибки, а от управляющего сигнала! Вот это открытие! Я думал, что все три составляющего сигнала считаются от ошибки. Вот она сила читания книжек. Почитал теорию в коротких статьях и всё как то выстроились в голове, примерно, в какую то систему.
Получается, что для данного конкретного применения достаточно ПИ регулятора и целочисленного счисления, нужно просто взять и смасштабировать вверх все расчёты, ограничить значения И, а затем все смасштабировать вниз. Ну десяток строк кода получится.

МММ, еще такой вопрос: если у меня грелка пипец инерционная, то фазовое управление мне никуда не упиралось и я могу просто думать в процентах и управлять целыми полупериодами. Если так, то измерение/вычисления я могу тактировать так же сетью, если уж у меня детектор нуля будет. Нафиг еще и таймер, частота сети примерно стабильная, ничего же не засифачится? Не?

Где я ошибаюсь?
Сергей
Последнее редактирование: 5 года 11 мес. назад от GREY.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #38

GREY писал(а):
Где я ошибаюсь?
Цепляешь термопару к процу, проц к компу и пишешь лог(номер семпла и температура в уарт) нагрева от нуля до упора.
Дальше по этому логу уже смотри(моделируй на си или калькуляторе рукопашно) будет ли считаться производная или всегда будет шум. Как повлияет интегратор и тп.

потом прицепи прстейший П регулятор и снова лог -> семл, температура, мощность.
Построишь графики гнуплотом, там и видно будет.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #39

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Не смогу вывести - ног не хватает. 18 ног: питание, земля, две для ZCD, температура, три на энкодер - входы посчитали с питанием, того 8 штук. Экран 6 ног, ШИМ для подсветки, выход, пищалка - одна нога в остатке. Нужно посмотреть, может можно сначала выводить, а потом использовать по другому.
Сергей
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #40

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

Нижний подогрев. 5 года 11 мес. назад #41

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Ни разу близко на ардуину не смотрел и не стремлюсь. 16F88 ещё пяток есть и покупать ничего не буду. Посмотрю можно ли скомбинировать как то.
В шпротеусе работает все. Только модель самой грелки сомнительная.
Сергей
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #42

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
А можно вообще схитртжопить: сделать две прошивки - рабочую и автотюн. Надо подумать.
Сергей
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #43

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Артём писал(а):
в фене подсмотри
Посмотрел. У тебя с плавающей точкой расчеты, я так думаю, что две операции деления, к примеру, сразу все ресурсы моего скромного пика отожрут. Я пытаюсь все оставить в целых числах.
Вопросы возникли: а чего ты закомментировал ограничение интегральной составляющей?
Так все же, диффсоставляющая считается от ошибки или от управляющего воздействия?
Вики пишет:
Дифференцирующая составляющая пропорциональна темпу изменения отклонения регулируемой величины и предназначена для противодействия отклонениям от целевого значения, которые прогнозируются в будущем. Отклонения могут быть вызваны внешними возмущениями или запаздыванием воздействия регулятора на систему.
И буквально через три строки формула:

где ясно видно, что расчет от ошибки.

Ладно, ниже есть ссылки, идем по первой и видим:
dTerm = pid->dGain * (position - pid->dState);
pid->dState = position;
Снова управляющий сигнал, а не ошибка.
Ладно смотрим еще ниже на полный код регулятора:
typedef struct
{
double dState; // Last position input
double iState; // Integrator state
double iMax, iMin;
// Maximum and minimum allowable integrator state
double iGain, // integral gain
pGain, // proportional gain
dGain; // derivative gain
} SPid;
double UpdatePID(SPid * pid, double error, double position)
{
double pTerm, dTerm, iTerm;

pTerm = pid->pGain * error; // calculate the proportional term
pid->iState += error; // calculate the integral state with appropriate limiting

if (pid->iState > pid->iMax)
pid->iState = pid->iMax;
else if (pid->iState < pid->iMin)
pid->iState = pid->iMin;
iTerm = pid->iGain * iState; // calculate the integral term
dTerm = pid->dGain * (position - pid->dState);
pid->dState = position;
return (pTerm + iTerm - dTerm);
}
Снова управляющий сигнал, но еще и диффсоставляющую отнимают из управляющего сигнала.

Открываем следующую ссылку с Вики:
...в обратную связь заводится также производная отклонения...
- снова ошибка. И так везде и всюду: в одном месте пишут про ошибку, в другом про управляющий сигнал. А это немножко разное.

Я никогда никаких терморегуляторов не делал, поэтому нахожусь в легком а}{уе, и не понимаю как же правильно на самом деле?!
Сергей
Последнее редактирование: 5 года 11 мес. назад от GREY.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #44

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

Зачем тебе надо делать D!=0 ?
Для большинства грелок достаточно PI.
Наличие D это всегда гемор, если уж решил что он нужен, то придется курить буквари и вникнуть в физический смысл.

Плавучка не так много жрет, на 90S8535 EMA фильтр считался влет 60 раз в сек и еще времени оставалось. Для атмеги уже 250 раз в сек не вопрос.
На STM32S071 примерно подобная плавучка легко 25к раз в сек и еще туева хуча другого кода крутится.

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

Нижний подогрев. 5 года 11 мес. назад #45

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Оперативка кончится с плавучкой. Да я тупо смасштабировал вверх всё на тысячу, в таком виде считается и готовый результат на тысячу делится. Дальше я управляющий полными полупериодами и мне нужны снова целые от 0 до 100, так что с этим всё в порядке. Приём не новый и не сложный.
С Д я тоже думаю, что нужно от ошибки. Набирает грелка быстро, температуру и расчёт/управление я делаю раз в секунду, синхронизируюсь по ZCD, без таймера. И тут ещё один вопрос: трансформатор фазу перекрутит? Не, ну можно взять с высокой стороны, отвязаться оптроном и завести на внешнее прерывание, без компаратора, так ещё одна нога сэкономится.
Сергей
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #46

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

Множить и делить лучше на 256, оно значительно быстрей - достаточно поправить адреса. Ну или 1024.

Расчет производной это задача. Тупая разница между текущим и прошлым бывает разве что в букварях.

Медленный "Шим" надо делать алгоритмом Брезенхэма, ака дельтасигма.
медленная грелка на 3 квт, рулит в таймере(ZCD в твердотелку встроен и в моем софте не юзается)
typedef struct
{
  u16 ph_cnt;

  s32 sigma;
  s32 delta;
  s32 value;
  signed char power_cur; //Текущая мощность для алгоритма
}tdsheater;
tdsheater dsvar;


#define DSMAX_VALUE 32
void DeltaSigma_ModulatorTmr(void)
{
  //Value - входная величина (0..MAX_VALUE)
  //Delta-Sigma модулятор:
  //квантование:
  if(0==dsvar.value)
  {
    OutMatrix_TurnHeater(0);
  }else
  if(dsvar.ph_cnt==0)
  {
    dsvar.ph_cnt = reg_heaterSet.dsmod_takt_time*10; //0.2 sec cycle
    if(dsvar.sigma > DSMAX_VALUE)
    {
      dsvar.delta = -DSMAX_VALUE;
      OutMatrix_TurnHeater(1);
    }
    else
    {
      dsvar.delta = 0;
      OutMatrix_TurnHeater(0);
    }
    //суммирование:
    dsvar.sigma +=  (dsvar.value + dsvar.delta);
  }else
  {
    dsvar.ph_cnt--;
  }
  if(dsvar.value != dsvar.power_cur)
  {
    LogEvent_PushE_Simple(TS_EVENT_SIMPLE_NEW_POWER,dsvar.value);
  }
  dsvar.value = dsvar.power_cur;

}

OutMatrix_TurnHeater - это включатель - выключатель грелки
dsvar.power_cur - сюда заносишь требуемую мощность.
dsvar.ph_cnt - это делитель, если надо шпарить по прерыванию от ZCD непрерывно, то просто выкини его
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #47

GREY писал(а):
Вопросы возникли: а чего ты закомментировал ограничение интегральной составляющей?
Так все же, диффсоставляющая считается от ошибки или от управляющего воздействия?
Интегральная ограничена там рядышком. Точнее не совсем ограничена, а просто не накапливается, если воздействие большое.
И вообще, я ничего не знаю. Я как обычно чего-то накопировал из интернетов и оно работает.
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #48

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Openreel писал(а):
Транс фазу крутит только при сильной нагрузке и заметной LS. В моей практике гораздо сильней крутили фильтры.
На прерывание фазу вешать надо подумать и запирать прерывание на время, иначе можно траблов словить на дребезге и помехах.
Ну, я так и думал. При перегрузке магнитится и начинает крутить, наверное такой механизм. Нафиг, возьму трансик чуть больше. В конце концов можно подкрутить опорным напряжением компаратора, если заметно много будет. Просто очень не хочется ни руками, ни приборами лазать по высокой стороне. Вот прямо ненавижу это делать, потею и лазаю одной рукой. Фу, бля, гадость какая!

Openreel писал(а):
Множить и делить лучше на 256, оно значительно быстрей - достаточно поправить адреса. Ну или 1024.
Да, уменя именно на 1024 умножается\делится. Думаю, что оно там половчее получается, хотя асм я не смотрел, не проверял.

Openreel писал(а):
Расчет производной это задача. Тупая разница между текущим и прошлым бывает разве что в букварях.
Ну а почему бы и не да? Интервал стабильный, дрожания не будет, можно чуть съехать с ноля, тогда гарантированно не будет заметного дрожания, времени - целая секунда, шума с термопары не предвидится. Должно же работать. Не будет - ну в одну строку ну нужно будет // поставить и будет ПИ. В интернетах все тупо разность за дельту Т делают. Что там можно придумать? Есть мысли?

Openreel писал(а):
Медленный "Шим" надо делать алгоритмом Брезенхэма, ака дельтасигма.
медленная грелка на 3 квт, рулит в таймере(ZCD в твердотелку встроен и в моем софте не юзается)
У меня инерция грелки большая и мне не нужно по всей секунде мощность размазывать, я включаю грелку в начале секунды, отсчитываю с помощью детектора ноля потребное количество полупериодов и выключаю. Прямой первод процентов мощности. Нужно ли мне дельта-сигму делать? Не вижу необходимости, возможно ошибаюсь, открой глаза, объясни.


Артём писал(а):
GREY писал(а):
Вопросы возникли: а чего ты закомментировал ограничение интегральной составляющей?
Так все же, диффсоставляющая считается от ошибки или от управляющего воздействия?
Интегральная ограничена там рядышком. Точнее не совсем ограничена, а просто не накапливается, если воздействие большое.
И вообще, я ничего не знаю. Я как обычно чего-то накопировал из интернетов и оно работает.
Я понял, еще раз посмотрю что-как. Интересно же разобраться как оно должно работать. Так то у меня уже подогрев работает, можно пользоваться, но уж очень все медленно и криво.
Сергей
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #49

DS vs PWM - это просто. Положим тактовая 1 сек(вкл-выкл не чаще раза в сек), мощность установили 50%, 64 шага установки мощности. DS при таких условиях дает меандр с честотой 2 Гц, а PWM в 32 раза дольше. Получаешь заметно меньшую пилу по темературе. На мощностях близко к макс и мин существенной разницы между ДС и ШИМ нет.

Шум с термапары есть всегда - АЦП не бесконечную разрядность имеет. Сними логи и потом по ним считай, на сколько ступеней за 1 сек пошел нагрев. положим 3 ступеньки - погрешность 33%. И нафиг оно надо такое?

Теперь главное - D надо, если внезапно все поменялось и нагрев-остывание пошло совсем не так было. Например паяльник ткнули в полигон.
А в сабже у тебя откуда могут быть резкие изменения? Увидит ли их всегда, один термодатчик, или надо поставить много термодатчиков в разных местах....
Расчет производной не прост, там всякий непонятный матан и сильно от задачи зависит. Простейший случай - берутся три точки и для двух из них считается средняя(это цифровой фильтр с кривой АЧХ, но зато летает на любом проце). Можно брать 3-5 точек и считать производную через полиномы, можно делать плавающее окно с адаптивными параметрами, много чего есть, но сабжу да с дохлым процом это все зачем?
Администратор запретил публиковать записи гостям.

Нижний подогрев. 5 года 11 мес. назад #50

  • GREY
  • GREY аватар
  • Не в сети
  • Новичок
Openreel писал(а):
Возьми другую плату, да хоть ардуину. Уарт надо всегда выводить под подобные задачи, это на будущее.
Принял волевое решение, КУПИЛ, мле, другой мелкочип: ног больше, памяти больше. Буду портировать то, что есть, допишу чутка удобств, чуть усложню расчёт, но так же, без плавучки, и, главное, сделаю вывод в последовательный порт. Так что проект чуть затянется. Хочу сделать ПИД целиком, что бы была заготовка под печку. Как то так.
Сергей
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2