ИК паяльная станция на Arduino Mega 2560. Доработка скетча "ARS_v2_Lilium_JSN"

Тема в разделе "Глядите, что я сделал", создана пользователем Jalnin, 2 ноя 2012.

Статус темы:
Закрыта.
  1. bamik

    bamik Нерд

    На выходе получаем байт, который в процентном соотношении показывает мощность нагревателя. Далее его можно использовать в ШИМ, например.
     
  2. revolover

    revolover Гик


    Я так понимаю, что всё давно сделано, есть библиотека.
    https://github.com/Wolf4D/WolfCrystal
     
  3. bamik

    bamik Нерд

    Полюбому это коряво будет выглядеть. Потому не стоит изобретать велосипед. Хочешь русский шрифт на диспелее - трать бабло на более дорогой вариант. А лучше переходи на ТФТ.
     
  4. SNMar4enko

    SNMar4enko Нерд

    -ну как откуда - без меня обсужали мои рассуждения:
    - сходство есть, ПИД принципи одни и те же, я же писал что увеличиваю скорость путем фиксации коэффициентов ПИД и избавление некоторых умножений и делений.

    - в моем скетче есть переменная времени вычислений ПИД. Пробывал делать аж 1 секунду. Результат - увеличивается время установки значения ПИД. Думайте сами - нужно ли вам чтобы то что должно быть отрегулировано за 0.5 секунды будет регулироваться аж 20-100 секунд.

    Смотрел и я, смотрели и другие - основная проблема использование таймеров. Таймеры уже используются для вычисления фазы включения симмистора и для пищалки, не считая всяких задержек и прочего. Тут нужно очень осторожно подходить - ведь нужно для двух ПИД освободить два таймера из 3х.
    Или переписывать библиотеку - хотя вопрос: кто нибуть пробывал ее к ардуине клеить - библиотека то в стиле AVR studio?

    И последний вывод: предлагаю как и раньше деребить копию PID_v1, если что-то не получиться - восстановил копию и делов то - примерно так:
    Код (C++):
    uint8_t set_temp, temp, error, set_pwm, pre_error;
    void pid()
    {
    error=set_temp-temp;
    I+=error;
    I+=error;
    I=constarin(I,0,100);
    set_pwm=constarin((error+I-(pre_error-error)/2),0,100));
    pre_error=error;
    .....
    }
    Да и все что касается времени в самой библиотеке закоментить ....или удалить.
     
    Последнее редактирование: 13 май 2018
  5. bamik

    bamik Нерд

  6. SNMar4enko

    SNMar4enko Нерд

    таймер для кнопок = это круто. Но взгляните там на сайте есть 3-4 урока по ПИД. С таймером по ходу нужно разбираться - просто так не влепиш. Если пользовать только таймером то в CyberLib.h он уже есть.
     
  7. Dmitrysh

    Dmitrysh Гуру

    Ну это да, я читал. А вы откуда такие рассуждения почерпнули.
    Ну не так все плохо. Я ставил 1 сек - низ держит железно +/-1градус.
    Я тоже смотрел, можно и без таймеров использовать.
    За последнее время у меня возник вопрос, а надо ли нам вообще увеличивать скорость ПИД?
     
  8. SNMar4enko

    SNMar4enko Нерд

    а коэффициенты ПИД меняли? Попробуйте увеличить или уменьшить RAMP скорорость роста температуры. Как себя ведет. Снимите ограничение по мощности - возможно вы угадали для своего нагревателя ограничение - которое даже без ПИД обеспечивает рост с определенной скоростью.
    Снова рассуждаем: те 0.5 секунды - для установившегося режима. Для нашего фактического - 20 делений мощности - получаем 25 милисекунд, фактически ПИД считается 100 милисекунд . Уже нужно 4 кратное увеличение быстродействия. - Рассуждение те же что обсуждали раннее.
    - почерпнул из одного проекта на ардуино для паяльника фена и еще чего то .... ссылку не помню потому как было недели 2 назад и ссылку не записал.
     
  9. Dmitrysh

    Dmitrysh Гуру

    Да, подбирал.
    Вот тут проблема, в нашем скетче нет рампы температуры для низа - где-то косяк, буду разбираться.
    Ограничение 60%, а ПИД отрабатывает около 16-30% возле уставки. Из-за проблемы с рампой не могу ничего сказать про скорость роста, надо править скетч
    Вот здесь посмотрите расчет ПИД, очень полезно - https://habr.com/post/145991/ . Особое внимание обратите на получение температуры для расчетов.
     
  10. alfataks

    alfataks Гик

    Вот читаю я последние 6 страниц форума и мучает меня пару вопросов:
    А собрал ли кто нибудь станцию на основе этого скетча и контроллера? А запаял ли кто нибудь пару чипов на собранной станции, что бы иметь какое то представление о ее работе?
     
  11. alfataks

    alfataks Гик

    Теории о работе ПИД это конечно полезно и очень интересно, но это мало влияет на реальную работу станции. ПИД коэфециенты можно подобрать один раз, в зависимости от используемых нагревателей и будет все нормально работать. Да и со скоростью обработки полученных данных у МЕГИ нет никаких проблем, даже наоборот. Чем больше запросов об изменении температуры за еденицу времени, тем больше ошибок в ПИД регулировании, здесь надо соблюсти золотую середину. Все потому, что чаще всего используются датчики температуры не способные отреагировать на изменения температуры за 0,5 сек., не говоря уже о МАХсах и скоростях передачи данных к контроллеру. Сам ПИД регулятор при этом дуреет, нагреватели стонут, а в сети 220 вольт бардак.
     
  12. Dmitrysh

    Dmitrysh Гуру

    Я собрал. Заменил несколько мостов и один видеочип. Есть проблемы с вылетом температуры, поэтому крутим ПИД ибо хочется чтобы кнопочку нажал - чип сел.
     
  13. Dmitrysh

    Dmitrysh Гуру

    Над этим и работаем.
    ВОТ, вот об этом я пытаюсь сказать последнее время, но никак не могу найти слов.
    Да, именно так у нас и происходит.
     
  14. alfataks

    alfataks Гик

    У любой материнской платы есть различия и в скорости нагрева и в равномерности нагрева, для этого и устанавливаются так называемые полки в профиле, что бы плата набирала температуру равномерно, а датчик температуры отдавал информацию контроллеру о более-менее реальной температуре платы и главным критерием равномерности и скорости является качество нагревателей и оптимальное расстояние от нагревателя до платы. И лучше учитывать общее время разогрева платы до установленной температуры, чем скорость нагрева в определенном промежутке времени. Ведь главная задача нижнего нагревателя, равномерно нагреть плату и удержать температуру, а верхнего нагревателя довести температуру в зоне пайки до температуры плавления припоя,
     
  15. alfataks

    alfataks Гик

    Вылет температуры низа или верха? И почему Вы решили, что вылет температуры связан именно с ПИДом?
     
  16. Dmitrysh

    Dmitrysh Гуру

    Я почему ставил вопрос о том, зачем нам быстрый ПИД. Все дело в синхронности. ПИД должен рассчитываться только тогда, когда у нас есть свежая информация о текущей температуре.
    Давайте по порядку.
    Мы получили от термопары текущую температуру. Скормили её ПИДу. ПИД выдал нам управляющее воздействие согласно ошибке и коэффициентам. Пока все хорошо и правильно.
    Что происходит дальше. Температуру мы получаем 1 раз за секунду, а вот расчёт ПИД делает от 10 до 20 раз за секунду. Вспоминаем формулу расчета ПИД U=Kp*error + summa(Ki*error) + Kd*(lastTemperatura-Temperatura).
    Итого получается что первый расчёт - верный. А начиная со второго и тд считается ерунда. А именно, растет только интегральная составляющая, потому как Kp*error становиться постоянной величиной, Kd*(lastTemperatura-Temperatura) - вообще ноль.
    Проходит 1 секунда и мы получаем новую температуру. ПИД опять рассчитывает первое значение правильно, но у нас уже "нарос" приличный интеграл, плюс подключились пропорциональная и дифференциальная составляющая.
    В итоге мощность доходит до 100% и прыгает с секундным ритмом и как следствие горбы на графике температуры. Вот как то так.
     
    SOLOway нравится это.
  17. Dmitrysh

    Dmitrysh Гуру

    Вылет верха, низ неплохо держит.
     
  18. Dmitrysh

    Dmitrysh Гуру

    Я смотрю на мощность подаваемую на нагреватель. ПИД при подходе к уставке должен мощность сбрасывать, а он рывками то максимум то минимум.
    Ну у меня ещё и керамика сверху, она достаточно инерционная, но все равно ПИД обязан справляться.
     
  19. Dmitrysh

    Dmitrysh Гуру

    Вот смотрите на горбы на нижнем нагревателе при опросе ПИД 7-10 раз в секунду.
     

    Вложения:

    • pid.jpg
      pid.jpg
      Размер файла:
      223,7 КБ
      Просмотров:
      605
  20. Dmitrysh

    Dmitrysh Гуру

    Да, ещё и визуально видно волны света при быстром ПИД. А вот при опросе ПИД 1 сек светит мягко лаконично без рывков.
     
Статус темы:
Закрыта.