Управление мощностью ТЭНа

  • В этой теме 422 ответа, 52 участника, последнее обновление 3 года сделано Андрей.
Просмотр 15 сообщений - с 226 по 240 (из 422 всего)
  • Автор
    Сообщения
  • #45777
    Роман
    Участник
    • Ответов: 291
    @papazol

    Не кратное 50 значение мощности не может появиться преднамеренно. Все значения мощности ТЭНа должны быть кратны 50, так задумано. Если вдруг в EEPROM записано 3240, это мусор, его нужно перезаписать.

    Максимально допустимая мощность прошита в программе жёстко (9000 Вт), и при её достижении в процессе установки перескока на минимум не происходит. Как, собственно, и при достижении минимальной мощности (она равна 300 Вт) не происходит перескока на максимум.

    #45783
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Чет все зацепились за самое не особо принципиальное. Лучше бы сам алгоритм прошерстили. Вдруг что то оптимизировать или улучшить можно. Принцип там простой: замеряем 4 полупериода напряжение, далее полупериод пропускаем для корректного временного переключения канала АЦП, далее 4 полупериода замеряем ток, далее основные рассчеты и так по кругу. При вычислении задержки включения симистора использую нелинейное приближение, может кто то придумает оптимальнее код, без кучи ифов.

    Ну и интересно, ни кто еще в живую не повторил?

    #45784
    Dark
    Участник
    • Ответов: 864
    @dark

    Тогда надо в конфиге внести три значения мощности (максимальная, минимальная, пользовательская), где пользовательская равна мощности тэна и не может быть больше максимальной и меньше минимальной.

    Так как дельта изменения 50Вт то соответственно при 3кВт 1% составит 30Вт и шаг получится равным 1,66% т.е. получается регулировка по проценту как то не очень смотрится. пойдем дальше по коду, там проверяется 10% мощность, как понимаю, чтобы соответствовать 300Вт, но если мощность тэна больше 3кВт то и 300Вт будут другими процентами (меньшими).

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

    В код прошивки регулятора полезу позже.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45785
    Dark
    Участник
    • Ответов: 864
    @dark

    Чет все зацепились за самое не особо принципиальное. Лучше бы сам алгоритм прошерстили. Вдруг что то оптимизировать или улучшить можно. Принцип там простой: замеряем 4 полупериода напряжение, далее полупериод пропускаем для корректного временного переключения канала АЦП, далее 4 полупериода замеряем ток, далее основные рассчеты и так по кругу. При вычислении задержки включения симистора использую нелинейное приближение, может кто то придумает оптимальнее код, без кучи ифов. Ну и интересно, ни кто еще в живую не повторил?

    Таки слухи шли что вроде бы что то еще меняться будет. Или я уже совсем потерял связь с реальностью.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45786
    Dark
    Участник
    • Ответов: 864
    @dark

    Чуток по коду

    frecuence = 1 / (tmpCalcTMR1 * 0.000001); // считаем герцы для отображения
    if (frecuence > 48 && frecuence < 52) frecuence = 50;
    else if (frecuence > 58 && frecuence < 62) frecuence = 60;

    скорее всего else не нужно или так

    if (frecuence <=52) frecuence = 50 else frecuence = 60;

    и по энкодеру может просто устновить значения 1 для положительного изменения и -1 для отрицательного.

    тогда шаг будет решаться в одну строчку

    W=w+dw*(значение энкодера) – получаем мощность

    и проверка на два крайних значения (чуток можно код сократить)

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45787
    Mef_poter
    Участник
    • Ответов: 112
    @mefody

    после этого отправили значение мощности на автоматику, чтобы она считала установленные значения мощности как основные.

    Для передачи данных в ЛБ надо дорабатывать схему, так как задействована только линия передачи данных на силовой блок.

    #45788
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Я же вроде написал, что схема принципиально не поменяется, возможно номинал резистора на токовом трансформаторе поменяется и все. Это будет ясно после проверки на максимальной мощности.

    #45789
    Dark
    Участник
    • Ответов: 864
    @dark

    после этого отправили значение мощности на автоматику, чтобы она считала установленные значения мощности как основные.

    Для передачи данных в ЛБ надо дорабатывать схему, так как задействована только линия передачи данных на силовой блок.

    Таки кто спорит, это моя хотелка.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45790
    Dark
    Участник
    • Ответов: 864
    @dark

    Я же вроде написал, что схема принципиально не поменяется, возможно номинал резистора на токовом трансформаторе поменяется и все. Это будет ясно после проверки на максимальной мощности.

    Ну вот зачем вам так портить отдых, отдохнули, люди собрали бы, у в новый бой. Если найду силы доехать до чипа то начну собирать.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45791
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Чуток по коду frecuence = 1 / (tmpCalcTMR1 * 0.000001); // считаем герцы для отображения if (frecuence > 48 && frecuence < 52) frecuence = 50; else if (frecuence > 58 && frecuence < 62) frecuence = 60; скорее всего else не нужно или так if (frecuence <=52) frecuence = 50 else frecuence = 60

    Это больше украшательство, ну и подстраховка, если на заставке нужной частоты не увидели, значит надо детектор нуля проверять. В принципе ифы можно и вообще убрать, просто у меня дома очень нестабильная сеть, мало того что напряжение +/- 20 вольт пляшет, так еще и синусоида искажена до безобразия. В итоге определялось от 49 до 51 Гц.

    #45793
    Dark
    Участник
    • Ответов: 864
    @dark

    Чуток по коду frecuence = 1 / (tmpCalcTMR1 * 0.000001); // считаем герцы для отображения if (frecuence > 48 && frecuence < 52) frecuence = 50; else if (frecuence > 58 && frecuence < 62) frecuence = 60; скорее всего else не нужно или так if (frecuence <=52) frecuence = 50 else frecuence = 60

    Это больше украшательство, ну и подстраховка, если на заставке нужной частоты не увидели, значит надо детектор нуля проверять. В принципе ифы можно и вообще убрать, просто у меня дома очень нестабильная сеть, мало того что напряжение +/- 20 вольт пляшет, так еще и синусоида искажена до безобразия. В итоге определялось от 49 до 51 Гц.

    В Вашем коде тогда пропадает промежуток от 53 до 57 тогда думаю лучше написать <55 = 50 иначе 60, тогда дырок не будет

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45794
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    после этого отправили значение мощности на автоматику, чтобы она считала установленные значения мощности как основные.

    Для передачи данных в ЛБ надо дорабатывать схему, так как задействована только линия передачи данных на силовой блок.

    А что нам принципиально даст обратная связь? Добавить то не проблема, а вот что потом с этой информацией делать? Просто три блока на PIC контроллере не глючат со связью. Вот и не стал усложнять.

    #45796
    Dark
    Участник
    • Ответов: 864
    @dark

    после этого отправили значение мощности на автоматику, чтобы она считала установленные значения мощности как основные.

    Для передачи данных в ЛБ надо дорабатывать схему, так как задействована только линия передачи данных на силовой блок.

    А что нам принципиально даст обратная связь? Добавить то не проблема, а вот что потом с этой информацией делать? Просто три блока на PIC контроллере не глючат со связью. Вот и не стал усложнять.

    Люди!!! Это моя хотелка, чуток под другую реализацию, в моей хотелке, центральная автоматика может находится где угодно, а не рядом с оборудованием, опс… а вот это уже совсем другая идея.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45797
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Чуток по коду frecuence = 1 / (tmpCalcTMR1 * 0.000001); // считаем герцы для отображения if (frecuence > 48 && frecuence < 52) frecuence = 50; else if (frecuence > 58 && frecuence < 62) frecuence = 60; скорее всего else не нужно или так if (frecuence <=52) frecuence = 50 else frecuence = 60

    Это больше украшательство, ну и подстраховка, если на заставке нужной частоты не увидели, значит надо детектор нуля проверять. В принципе ифы можно и вообще убрать, просто у меня дома очень нестабильная сеть, мало того что напряжение +/- 20 вольт пляшет, так еще и синусоида искажена до безобразия. В итоге определялось от 49 до 51 Гц.

    В Вашем коде тогда пропадает промежуток от 53 до 57 тогда думаю лучше написать <55 = 50 или 60, тогда дырок не будет

    Так я “дырки” специально оставил, так сразу в глаза бросается отсутствие значения на заставке. Значит что то пошло не так в схеме.

    #45799
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

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

    Я пробовал так делать, еще на весеннюю выставку привозил блок именно с таким функционалом. Не понравилось что можно нечаянно ручку крутануть и запороть процесс.

Просмотр 15 сообщений - с 226 по 240 (из 422 всего)
  • Для ответа в этой теме необходимо авторизоваться.