Страница 218 из 371

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Пн фев 10, 2014 21:57:41
Леонид Иванович
Ухода в максимальный нагрев быть не должно. Могут быть колебания, может быть перерегулирование (выброс, иногда длительный), но в среднем должны быть колебания вокруг уставки. Возможно, где-то есть переполнение переменных, или еще что-то.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Пн фев 10, 2014 22:11:40
altais
Если чуть подробнее описать процесс, то получается что станция вроде как при нагреве замедляется около уставки, а потом резко идет вверх. Уходит в насыщение или нет зависит от разницы начальной температуры и уставки, т.е. если сбросить станцию около уставки - она стабилизируется. Еще это все как-то очень резко зависело от коэффициента, например, при D=8 все ок, а при D=10 уже нет. Но все это с 100n конденсаторами на входе ОУ и ADC, при 22n лучше.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Пн фев 10, 2014 22:50:19
Леонид Иванович
То, что возле уставки скорость роста температуры снижается - это нормально. А вот то, что дальше идет резкий рост - это неправильно. Нужно анализировать программу. Я в подобных спорных случаях или вывожу на график все интересующие внутренние переменные, или вообще временно реализую регулятор на компьютере, который по интерфейсу читает температуру датчика станции и возвращает нужную мощность нагревателя. Тогда можно в процессе нагрева наблюдать за всеми переменными. График нагрева паяльника у меня выглядит так:
СпойлерИзображение

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Пн фев 10, 2014 23:18:48
altais
Анализировать то собственно нечего :) , я описал поведение прошивки 1.42b авторства Victor_P на своем железе. Поэтому и бросил ссылку на ту статью, думал натолкнет на какие-нибудь мысли. Да и не стоит вопрос остро, работает же, просто диапазон доступных коэффициентов реально меньше, чем можно выбрать.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Пн фев 10, 2014 23:23:38
Victor_P.
altais писал(а):....описал поведение прошивки 1.42b авторства Victor_P на своем железе...
Видимо что-то с железом не то, потому что такого поведения никто не отмечал из собравиших станцию. Да и я такого ни разу не видел, а уж эксперименты со своей станцией я какие только не проводил. Да и коэффициенты у Вас подозрительные какие-то, у меня сейчас стоят П62 И64 Д00 и ничего нигде не прыгает и не летает.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Пн фев 10, 2014 23:53:53
imon220
Victor_P скажите пожалуйста, у вас есть схема для фена(я какую то нашел но видимо она старая, там еще на кнопках)
У вас ведь уже все на энкодерах.Вроде уже весь форум пролистал а так нечего не нашел...
Если есть то скиньте пожалуйста

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 00:03:28
a5021
Леонид Иванович писал(а):Сейчас нет технической цензуры, поэтому ничуть не удивляет появление таких бредовых статей.
А что не так со статьей?

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 00:26:46
Victor_P.
imon220, нету. Это к Леониду Ивановичу http://radiokot.ru/forum/viewtopic.php?f=2&t=61075

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 01:10:13
altais
Victor_P. писал(а): ....Да и коэффициенты у Вас подозрительные какие-то, у меня сейчас стоят П62 И64 Д00 и ничего нигде не прыгает и не летает.
Записал 2 видео работы, в обоих выбрал ваши коэффициенты. В первом старт с разогретым где-то до 130 паяльником - все хорошо. В втором холодный старт и видна проблема. Не похоже на железо.
Заполнение выбрано максимальным, блок питания MeanWell NES-100-24 100Вт тянет нормально.
https://dl.dropboxusercontent.com/u/40018460/1.mp4
https://dl.dropboxusercontent.com/u/40018460/2.mp4
Как раз кто-то просил здесь видео с демонстрацией, первое неплохо подходит.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 01:14:34
a5021
Victor_P. писал(а):Хм, это идея, но вродь пока тких помех не было, чтоб срабатывание кнопок из-за них было.
В небезызвестном "A Guide to Debouncing" описывается прецедент, когда "симпатичная красная кнопочка" давала искрение в течении 157 миллисекунд. Ваш алгоритм сработал бы пять раз на нее. :) То, что ваши кнопки работают замечательно, совсем не значит, что у повторяющих конструкцию никогда, в принципе, не может возникнуть проблем в этом смысле.

В вышеупомянутом гайде описывается шикарный по логике действий и простейший в части реализации алгоритм дибаунса, основанный на операции сдвига. Смысл в том, что в переменную отображающую состояние нажато/отпущено загоняется в качестве младшего бита текущее состояние кнопки. При следующем опросе кнопки, содержимое переменной сдвигается на один разряд влево, а в младший разряд опять записывается текущее состояние. Подразумевая, что цикл этот бесконечен, можно больше не вспоминать о дребезге, а только смотреть на значение этой переменной. Когда все биты встали в единицу, значит мы имеем одно положение кнопки очищенное от дребезга, если все в нулях, то другое.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 01:30:57
Леонид Иванович
a5021 писал(а):А что не так со статьей?
Все не так. Переход к разностной схеме ничего не меняет, физического смысла коэффициентов в том числе. Математически схемы эквивалентны - сначала продифференцировали формулу ПИД, затем проинтегрировали, просуммировав воздействие. Зато появляется дополнительный плюс - простой и понятный критерий ограничения по максимальному воздействию. В прямой схеме интегральную составляющую тоже нужно ограничивать, но нет четких критериев, на каком именно уровне. В результате система имеет медленное восстановление после перегрузок, а иногда приходится прибегать даже к грубому вмешательству в виде сброса интегральной составляющей. Поэтому вывод №1 в статье неверный, всё как раз наоборот - ограничивать нужно обязательно, в этом и состоит основной плюс разностной схемы. А странный эффект, описанный в статье, мог быть связан с ошибкой в реализации. Вывод №2 не имеет отношения к ПИД, эта общая рекомендация при программировании вообще. Надо сказать, что в разностной схеме благодаря ограничению воздействия очень просто контролировать диапазоны значений каждой переменной. Вывод №3 вообще относится к какой-то ошибочной реализации, нет такой ошибки в реальности. Вывод №4 по абсурдности чемпион: "схему следует переинициализировать, как только создалось впечатление, что схема вернулась в нормальное состояние". Ну и заключительный совет, что не стоит использовать разностную схему, весьма спорный. Многие производители промышленных контроллеров почему-то этого совета не придерживаются.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 01:31:14
Victor_P.
altais, второе видео очень похоже на описание проблемы BV-Dial с П-канальным полевиком. После 130 градусов температура очень резко вырастает и не управляется. Это очень похоже на то, что полевик полностью открывается и закрыть его получается только выключением станции.

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

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 01:45:48
a5021
Victor_P. писал(а):но замедляет в 8 раз скорость опроса кнопок, которую можно конечно и поднять предварительно
У меня оно висит на таймере, ответственном за динамическую индикацию. Обработчик вызывается каждые 2 миллисекунды, что при восьмибитной переменной дает очищенное состояние через 16 мс после последнего проявления дребезга. Все удовольствие -- три строчки в обработчике.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 01:46:37
altais
Полевик IRFR5505 55V 18A, в работе холодный. Драйвер Л.И. больше 12-13В на затвор дать не может. В теории все хорошо. Попробовать его заменить? Почему эффект наблюдается только при определенных коэффициентах? Если руки дойдут, осциллографом гляну.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 01:50:21
Victor_P.
a5021, а не может получиться "обратного эффекта" при высокой скорости опроса и "медленной" кнопке? Т.е. варианта, когда один импульс дребезга поместится в 8 измерений?

altais, я не утверждаю что это полевик, но это первое что пришло в голову при просмотре видео.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 02:07:36
altais
Victor_P, спасибо за советы. Проблема, получается, индивидуальная. Буду разбираться.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 02:14:32
a5021
Victor_P. писал(а):a5021, а не может получиться "обратного эффекта" при высокой скорости опроса и "медленной" кнопке? Т.е. варианта, когда один импульс дребезга поместится в 8 измерений?
Так может получиться, если частота дребезга вдруг окажется ниже 31,5 герца. Контакт, наверное, должен быть толщиной с рельсу. :) В любом случае, никто не мешает увеличить число бит.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 02:16:40
Леонид Иванович
altais писал(а):В втором холодный старт и видна проблема.
Очень подозрительно. На 16 - 17 секунде видео температура за секунду повышается от 153 до 297 градусов. Разве такое физически возможно?
a5021 писал(а):шикарный по логике действий и простейший в части реализации алгоритм дибаунса
Он простой, конечно, но неудобный. Время дебаунса жестко привязано к периоду опроса и разрядности переменной. Лучше прямо в миллисекундах задавать интервал дебаунса. Признаком окончания дребезга является совпадение всех результатов опроса кнопок на этом интервале. Если внутри интервала обнаружено несовпадение - перезапуск интервала. Интервал для распространенных кнопок можно выбрать порядка 20 - 50 мс. Вот кусок исходника источника питания PSL-3604:
Спойлер

Код: Выделить всё

void TKeyboard::Execute(void)
{
  if(TSysTimer::Tick)   //каждый системный тик (чаще не нужно)
  {
    char Key = Scan();  //сканирование клавиатуры
    if(Key != Prev_Key) //код отличается
    {
      DebounceTimer->Start(DEBOUNCE_TM); //запуск Debounce таймера
      Prev_Key = Key;   //сохранение нового кода
    }
    else                //код совпадает
    {
      if(DebounceTimer->Over()) //если интервал истек,
        Message = Key;  //генерация сообщения
    }
  }
}

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 02:38:24
a5021
Леонид Иванович писал(а):Время дебаунса жестко привязано к периоду опроса и разрядности переменной. Лучше прямо в миллисекундах задавать интервал дебаунса. Признаком окончания дребезга является совпадение всех результатов опроса кнопок на этом интервале. Если внутри интервала обнаружено несовпадение - перезапуск интервала. Интервал для распространенных кнопок можно выбрать порядка 20 - 50 мс.
Берем переменную подходящей ширины и по маске отслеживаем нужное количество бит. Меняя значение маски можно задавать время дибаунса с шагом 2мс в любой момент. Не надо никаких перезапусков.

Re: Цифровая паяльная станция своими руками.(V 2.0)

Добавлено: Вт фев 11, 2014 02:54:33
Леонид Иванович
Можно. Но так придется делать для каждой кнопки отдельно. Выгоднее завести один программный таймер и отслеживать сразу весь скан-код клавиатуры. В похожем стиле делается автоповтор и отслеживание удержания кнопки. Впрочем, решений может быть множество, дело личных пристрастий.