Easyelectronics.ru

Электроника для всех
Текущее время: 17 июл 2019, 11:53

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 18 май 2015, 15:39 
Старожил
Аватара пользователя

Зарегистрирован: 10 май 2014, 01:21
Сообщения: 1056
Откуда: Мы люди простые, живем в лесу, на пенек молимся
Леонид Иванович писал(а):
Хорошо настроенный ПИД держит на датчике постоянную температуру с точностью порядка 0.1 градуса. Но это никак не помогает - температура кончика жала при пайке меняется на десятки градусов.

Ну, от этого при такой конструкции используемого паяльника никак не уйти.
Как вариант – использование паяльников Weller под жала серии LT, там конструктивно получше ситуация (короткое жало и термодатчик впритык к нему). Но намного дороже, да.

_________________
PL/1 forever!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 19 май 2015, 02:16 
Старожил
Аватара пользователя

Зарегистрирован: 27 окт 2014, 10:36
Сообщения: 274
Откуда: Самара
Добавил коррекцию линейности по таблице.

Обновил регулирование - всё никак не получается идеальное. Сейчас колебания +/- 2 градуса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 19 май 2015, 11:52 
Старожил
Аватара пользователя

Зарегистрирован: 20 фев 2012, 19:20
Сообщения: 753
Откуда: Минск
Большие колебания. У меня даже при пайке полигонов, когда жало к ним прилипает, температура датчика не отклоняется более, чем на несколько десятых градуса:


Вложения:
poly.gif
poly.gif [ 55.44 Кб | Просмотров: 14315 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 19 май 2015, 15:36 
Старожил
Аватара пользователя

Зарегистрирован: 27 окт 2014, 10:36
Сообщения: 274
Откуда: Самара
Регулирование у вас лучше, да... И схема тоже лучше. У меня получилась китайская копия вашей. Честно, когда делал её - про вашу ничего не знал.

Какая у вас разрядность АЦП получилась и разрядность управления?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 02:06 
Старожил
Аватара пользователя

Зарегистрирован: 20 фев 2012, 19:20
Сообщения: 753
Откуда: Минск
АЦП работает с периодом дискретизации T_SYS = 500 мкс. Поток данных с выхода АЦП поступает на цифровой FIR-фильтр с прямоугольным окном. Длительность окна TSAMPLE = 100 мс. Фильтр производит децимацию, период дискретизации на выходе фильтра 100 мс. С таким периодом работает PID-регулятор. Сначала производится преобразование кода измеренного значения AdcCode в микровольты Vtc с учетом коэффициента передачи усилителя термопары и опорного напряжения:

Vtc = (AdcCode * ADC_REF / ADC_RES) / (FIR_N * GAIN)

Далее производится проверка этого напряжения с целью определения обрыва термопары. Если оно выше V_BRK = 24000, то ошибка. Затем вычисляется эквивалентное напряжение холодного спая Vcj на основе показаний tcj термометра DS18B20. Так как диапазон температур холодного спая невелик, вычисление производится по линейному закону с коэффициентом TCJ_K = 40.0 мкВ/°C:

Vcj = tcj * TCJ_K

Затем вычислятся выходное напряжение термопары с компенсацией холодного спая:

Vhj = Vtc + Vcj

Затем производится табличная лианеризация показаний термопары. Элементы таблицы Lin[TC_POINTS] рассчитаны с шагом 1000 мкВ. Находится элемент таблицы, меньший или равный измеренному напряжению. Индекс таблицы дает температуру ttab. Затем между точками таблицы проводится линейная интерполяция:

thj = ttab + DeltaV * DeltaT / 1000

Далее полученная температура подвергается процедуре цифровой калибровки:

t = thj * Gain / GAIN_NOM + Shift

Полученное значение температуры t поступает на PID-регулятор. Регулятор реализован в дифференциальной форме, т.е. пропорциональная составляющая превращается в дифференциальную, интегральная - в пропорциональную, а дифференциальная - во вторую производную. На выходе получаем дифференциал воздействия. Такой подход позволяет избавится от интегральной составляющей вместе с проблемой ее ограничения:

dP = Kp * (t[i] - t[i - 1]) - Ki * (tset - t[i]) + Kd * (t[i] - 2 * t[i - 1] + t[i -2])

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

P[i] = P[i-1] - dP

Управление нагревателем может осуществляться в фазовом режиме или в режиме Delta-Sigma модулятора. В любом случае требуется привязка к сети по фазе. Она реализована с помощью цифровой петли PLL. Импульсы с детектора перехода через ноль (ZCD) поступают на вход захвата ICP таймера 1. Используется спад импульса, так как он имеет большую крутизну. Схема захвата имеет аппаратный подавитель шумов, который включен с помощью бита ICNC1. В прерывании по захвату вычисляется текущая ошибка фазы:

dPh = ICR1 + Delay

Она является входной величиной для PI-регулятора, который служит петлевым фильтром PLL:

Period[i] = Period[i-1] - Kp * (dPh[i - 1] - dPh[i]) + Ki * dPh[i]

Выходной сигнал PI-регулятора представляет собой текущий период таймера 1, который загружается в регистр OCR1A. Таймер работает в режиме очистки по сравнению (CTC), причем TOP = OCR1A. В результате работа таймера оказывается синхронизированной с сетью с точностью до фазы (если точнее, с удвоенной частотой сети). PLL позволяет получить постоянный сдвиг Delay относительно сигнала ZCD, который позволяет скомпенсировать конечную длительность импульса ZCD и задержку срабатывания ZCD.

При работе в режиме фазового управления для управления ключом служит канал B аппаратного PWM, значение которого загружается в регистр OCR1B, а выходная последовательность формируется на выводе OC1B. Загрузка регистра OCR1B должна осуществляться как при изменении желаемого угла открывания ключа, так и при подстройке периода таймера (в прерывании по захвату). Регистры OCR1A и OCR1B имеют double buffering, поэтому их перезагрузка не нарушает текущий цикл управления ключом.

Желаемая мощность P задается в процентах от максимальной с дискретностью 0.1%. Далее эта мощность должна быть преобразована в угол открытия ключа, который и представляет собой код регистра OCR1B с точностью до постоянного множителя. При фазовом управлении мощность зависит от угла нелинейно: для угла f нормализованная мощность равна интегралу от f до pi от sin^2(x)dx, деленному на pi/2. Или

Pnorm = 1 - f / pi + sin(2 * f) / (2 * pi)

Если угол A задается в градусах, то f = A * pi / 180

Аналитическое выражения для угла в зависимости от требуемой мощности я найти не смог. И это не arccos, как вычисляют в некоторых фазовых регуляторах. Поэтому численными методами была сгенерирована таблица с шагом по мощности 1%. Между точками таблицы производится линейная интерполяция:

angle = A[p] + DeltaP * DeltaA / 10

Найденный угол преобразуется в код для загрузки регистра OCR1B:

OCR1B = Half_Period * angle / MAX_ANGLE;

При работе в режиме Delta-Sigma модулятора мощность зависит от кода линейно, никакой специальной линеаризации не требуется. Частота дискретизации Delta-Sigma модулятора равна частоте сравнений COMPA таймера 1. Модулятор реализован следующим образом:

квантование:

if(Sigma > MAX_POW) { Delta = -MAX_POW; OutOn(); }
else { Delta = 0; OutOff(); }

суммирование:

Sigma = Sigma + Power + Delta;

Ну как-то так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 02:23 
Старожил
Аватара пользователя

Зарегистрирован: 27 окт 2014, 10:36
Сообщения: 274
Откуда: Самара
А коэффициенты ПИД, если не секрет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 14:22 
Старожил
Аватара пользователя

Зарегистрирован: 20 фев 2012, 19:20
Сообщения: 753
Откуда: Минск
Пользователь с помощью утилиты PidLook может устанавливать любые, контролируя переходной процесс на графике нагрева. У меня сейчас установлены Kp = 100, Ki = 22, Kd = 50. Но это ни о чем не говорит, внутри функции PID они могут по-разному масштабироваться, это зависит от частоты дискретизации регулятора и масштаба внутреннего представления воздействия.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 16:10 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2148
Откуда: Нальчик
Леонид Иванович писал(а):
...Поток данных с выхода АЦП поступает на цифровой FIR-фильтр с прямоугольным окном. ...
...производится проверка этого напряжения с целью определения обрыва термопары. ...
...вычисляется эквивалентное напряжение холодного спая ...
...вычислятся выходное напряжение термопары с компенсацией холодного спая:...
...производится табличная лианеризация показаний термопары. ...
...полученная температура подвергается процедуре цифровой калибровки:...
...Регулятор реализован в дифференциальной форме, Такой подход позволяет ...
...для угла f нормализованная мощность равна интегралу от f до pi от sin^2(x)dx, деленному на pi/2....

Леонид Иванович - Вам бы протоны запускать... а не регулировать температуру паяльника )))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 16:13 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2148
Откуда: Нальчик
Леонид Иванович писал(а):
Vtc = (AdcCode * ADC_REF / ADC_RES) / (FIR_N * GAIN)
thj = ttab + DeltaV * DeltaT / 1000
t = thj * Gain / GAIN_NOM + Shift
dP = Kp * (t[i] - t[i - 1]) - Ki * (tset - t[i]) + Kd * (t[i] - 2 * t[i - 1] + t[i -2])
Period[i] = Period[i-1] - Kp * (dPh[i - 1] - dPh[i]) + Ki * dPh[i]
Pnorm = 1 - f / pi + sin(2 * f) / (2 * pi)
angle = A[p] + DeltaP * DeltaA / 10
OCR1B = Half_Period * angle / MAX_ANGLE;
Чем не расчет траектории полета протона )))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 16:50 
Старожил
Аватара пользователя

Зарегистрирован: 27 окт 2014, 10:36
Сообщения: 274
Откуда: Самара
Протоны падают не из-за плохих алгоритмов, а потому что некоторые умудряются датчики вверх ногами поставить.

А алгоритм очень хороший, да. Но вот запихать его в 8 мегу сложновато.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 20:11 
Старожил
Аватара пользователя

Зарегистрирован: 10 май 2014, 01:21
Сообщения: 1056
Откуда: Мы люди простые, живем в лесу, на пенек молимся
smoluks писал(а):
Но вот запихать его в 8 мегу сложновато.

Можно взять 328

_________________
PL/1 forever!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 21:05 
Старожил
Аватара пользователя

Зарегистрирован: 27 окт 2014, 10:36
Сообщения: 274
Откуда: Самара
У Леонида Ивановича 168 используется. А я просто привожу в порядок старый проект, менять железо вряд ли буду.
Самая большая польза здесь не готовый проект, а принципы и алгоритмы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 23:04 
Старожил
Аватара пользователя

Зарегистрирован: 20 фев 2012, 19:20
Сообщения: 753
Откуда: Минск
Основной объем занимает меню. Измерительный модуль (АЦП, линеаризация термопары, калибровка) расходует 878 байт кода, модуль управления нагревателем (PLL для привязки к сети, реализация фазового и дельта-сигма управления, таблица мощность-угол) расходует 1670 байт кода.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 20 май 2015, 23:26 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4112
Откуда: Кемеровская область, Киселевск
все куда проще в моей станции реализована простая логика термостата, с ОУ получаю напряжение и по нему стабилизирую на трех уровнях.

if (VADC >= 740) GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_RESET);
if (VADC <= 740) GPIO_WriteBit(GPIOA, GPIO_Pin_9, Bit_SET);

ШИМ не требуется, полевик IRLZ34N холодный, управляется нарямую от ножки МК через резистор.
Сделана на STM32F030F4P6 c дисплеем LPH9157-2
Меняя число 740 (напряжение в mV c ОУ) меняем уровень температуры.
Уровень меняется одной кнопкой.

работает отлично.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 21 май 2015, 00:21 
Старожил
Аватара пользователя

Зарегистрирован: 10 май 2014, 01:21
Сообщения: 1056
Откуда: Мы люди простые, живем в лесу, на пенек молимся
smoluks писал(а):
У Леонида Ивановича 168 используется. А я просто привожу в порядок старый проект, менять железо вряд ли буду.

Mega8 и Mega328, насколько я помню, полностью совместимы.

_________________
PL/1 forever!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 21 май 2015, 00:30 
Старожил

Зарегистрирован: 16 авг 2012, 23:27
Сообщения: 1893
Откуда: Москва
Полностью совместимы 48, 88, 168 и 328. Atmega8 совместима по пинам, но аппаратных плюшек у неё меньше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 21 май 2015, 00:41 
Старожил
Аватара пользователя

Зарегистрирован: 27 окт 2014, 10:36
Сообщения: 274
Откуда: Самара
Я знаю это, просто надо разбирать, выпаивать... И 328 у меня одна, и 48 одна, а 8 - целый пакетик от китайцев. Если точно не влезет - перепаяю


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 21 май 2015, 02:50 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2148
Откуда: Нальчик
smoluks писал(а):
Я знаю это, просто надо разбирать, выпаивать... И 328 у меня одна, и 48 одна, а 8 - целый пакетик от китайцев. Если точно не влезет - перепаяю
Да все там влезет... даже алгоритм Леонида Ивановича, даже вместе с интерфейсом - без проблем ляжет на мегу8...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 21 май 2015, 17:30 
Старожил
Аватара пользователя

Зарегистрирован: 10 май 2014, 01:21
Сообщения: 1056
Откуда: Мы люди простые, живем в лесу, на пенек молимся
Ну, иметь избыточный ресурс отнюдь не вредно. Если не ставить целью «спортивный» результат или серийное производство (где каждый цент считать нужно).

_________________
PL/1 forever!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 02 июн 2015, 23:30 
Старожил
Аватара пользователя

Зарегистрирован: 23 авг 2010, 12:10
Сообщения: 1113
Откуда: Ижевск
Леонид Иванович, а какие пределы установки температуры в вашей станции? Интересует нижний предел. Можно ли устанавливать температуру термопары от 60 градусов?

_________________
Жизнь - повидло)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 03 июн 2015, 01:00 
Старожил
Аватара пользователя

Зарегистрирован: 20 фев 2012, 19:20
Сообщения: 753
Откуда: Минск
Да, можно. Устанавливается от 0 градусов, но, понятное дело, ниже комнатной поддерживаться не будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 11 июн 2015, 22:43 
Старожил
Аватара пользователя

Зарегистрирован: 23 авг 2010, 12:10
Сообщения: 1113
Откуда: Ижевск
Вопрос к сообществу: диаметр нагревателя 3,7 мм, необходимо нагревать алюминиевый брусок. В бруске будет просверлено отверстие. Какой зазор выбрать для посадки нагревателя в отверстие?

_________________
Жизнь - повидло)))


Последний раз редактировалось Sergio 20 июн 2015, 19:33, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 19 июн 2015, 01:13 
Старожил
Аватара пользователя

Зарегистрирован: 10 май 2014, 01:21
Сообщения: 1056
Откуда: Мы люди простые, живем в лесу, на пенек молимся
smoluks писал(а):
Кварц - чтобы поднять частоту ШИМ до 60кГц без уменьшения разрядности


Еще вопрос: что в качестве L1 использовано?

_________________
PL/1 forever!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 18 июл 2015, 19:09 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 09 фев 2011, 23:57
Сообщения: 116
Леонид Иванович, а как у вас в станции обрабатывается резистивный термодатчик?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ещё одна версия паяльной станции на паяльнике LUKEY
СообщениеДобавлено: 19 июл 2015, 19:06 
Старожил
Аватара пользователя

Зарегистрирован: 10 май 2014, 01:21
Сообщения: 1056
Откуда: Мы люди простые, живем в лесу, на пенек молимся
Vga писал(а):
Леонид Иванович, а как у вас в станции обрабатывается резистивный термодатчик?

Я не Леонид Иванович, но насколько я знаю, никак. Его станция рассчитана только на паяльники с термопарой.

_________________
PL/1 forever!


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

Часовой пояс: UTC + 5 часов


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

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


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB