Обсуждаем цифровые устройства...
Ответить

Терморегулятор: неприятный эффект

Ср мар 14, 2007 14:49:23

Сделал 2-х канальный терморегулятор для одного автомата, и при наладке наткнулся на очень неприятную проблему. При нагревании до нужной температуры (у меня 120 - 170 градусов, испытывал на 25 ВТ паяльнике, засунув термопару вместо жала), МК как положено отключает нагреватель, но паяльник всё равно продолжает разогревать термопару, как бы "по инерции"(на +5 градусов перегревается). Потом плавно начинает остывать, и при включении паяльника термопара продолжает остывать(примерно -5С). В итоге разброс +/-5С. Как можно избавиться от этого иннерционного эффекта?

Ср мар 14, 2007 20:12:33

Применить другой закон регулирования.
П, ПИ, ПИД.

Ср мар 14, 2007 22:57:04

А есть где почитать про это?

Ср мар 14, 2007 23:12:16

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

Попробуй хотя бы пропорциональный закон реализовать, а не просто включено-выключено.

Чт мар 15, 2007 14:45:11

Придется читать ТАУ :cry:, всё равно в универе придется проходить.
спасибо!

Чт мар 15, 2007 15:13:01

ARV писал(а):Попробуй хотя бы пропорциональный закон реализовать, а не просто включено-выключено.


Включено-выключено может реализовать полный ПИД а не только П.

Чт мар 15, 2007 19:06:59

Вот еще вам:

"Измерение управление и регулирование с помощью AVR" - книга
roboforum.ru/viewtopic.htm?t=1964&postdays=0&postorder=asc&start=0

Пт мар 16, 2007 01:27:24

Abaktych пасиба! Скачал, вроде есть что почитать!

Пн мар 19, 2007 22:49:57

Нужно при приближении к нужной температуры уменьшить мощность нагревателя (например, включая не постоянно, а импульсами). А при достижении совсем отключать. Скорее всего, отключать придется несколько раньше, чем желаемая температура будет достигнута. Уровни для уменьшения мощности и отключения и длину импульсов в любом случае придется подбирать эспериментально для каждого типа нагревателя, ведь теплоемкость/теплопроводность/размеры у каждого нагревателя свои.
Когда температура опустится ниже желаемой, опять включить импульсный режим. Желательно сделать гистеризис, думаю 1 градус достаточно.

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

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

Пн мар 19, 2007 23:45:13

Телерадиокошак писал(а):Нужно при приближении к нужной температуры уменьшить мощность нагревателя (например, включая не постоянно, а импульсами). А при достижении совсем отключать. Скорее всего, отключать придется несколько раньше, чем желаемая температура будет достигнута. Уровни для уменьшения мощности и отключения и длину импульсов в любом случае придется подбирать эспериментально для каждого типа нагревателя, ведь теплоемкость/теплопроводность/размеры у каждого нагревателя свои.
Когда температура опустится ниже желаемой, опять включить импульсный режим. Желательно сделать гистеризис, думаю 1 градус достаточно.

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

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

Ну и рассказал по сути про П- или ПИ-регулирование (см. выше)... так оно и есть

Вт мар 20, 2007 01:02:27

ARV писал(а):Ну и рассказал по сути про П- или ПИ-регулирование (см. выше)... так оно и есть
А я и не знал, что это так называется. Теперь буду знать.:)

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

Вт мар 20, 2007 12:15:44

Регулируйте посредством ШИМ-импульсов, прямо на паяльник, таким образом не нужно будет выдумывать уровни. Скажем при приближении к номинальному значению температуры за пару градусов МК будет сужать ширину импульса, при приблежении номинального значения температуры МК будет "подбирать" ширину пытаясь удержать температуру на одном уровне.

Вт мар 20, 2007 14:33:18

Это и есть ПИД. Просто коэффы КП КИ и КД определяют КАК будет меняться ШИМ в зависимости от отклонения (ошибки) и ее истории.

Вт мар 20, 2007 14:43:02

Если уж речь зашла за ШИМ и прочее, давайте уж более конкретно распишем принцип пропорционального регулирования, что ли :)

Делаем расчет примерно так: Т - это заданная температура, Ti - текущая измеренная, К - коэффициент заполнения ШИМ (от 0 до 100%), N - некий порог температуры
Программу для МК делаем такую:
1. Если Т-Ti > N, то К=100% - выдаем полную мощность на нагрев, если разница температур очень велика.
2. Если T-Ti <= N, то К = zs(р * (T-Ti)/100), где р - некий коэффициент пропорциональности, zs(х) - функция, которая возвращает 0, если x отрицательное, и возвращает само х, если х положительное.

Таким образом имеем: начиная с некоторой температуры мощность нагревателя прямо пропорциональна разнице заданной и текущей температур, т.е. при их равенстве мощность равна 0 и линейно меняется в некотором пределе до 100%.

Подбором N и р можно регулировать скорость набора температуры и точность ее поддержания (оба коэффициента могут влиять на обе характеристики, поэтому при наладке может быть придется повозиться)

Это примерно то самое, что One рассказал словами кратко :)

Вт мар 20, 2007 21:55:35

Вот вам и дан готовый алгоритм для реализации хоть на МК, хоть на Бо-о-льшом Компутере. :wink: Мой совет- примите этот алгоритм для реализации.

Вт мар 20, 2007 22:26:10

ARV писал(а):2. Если T-Ti <= N, то К = zs(р * (T-Ti)/100), где р - некий коэффициент пропорциональности


А в чем смысл деления на 100 :shock: если р - некий коэффициент пропорциональности ???

Вт мар 20, 2007 22:37:15

Abaktyсh писал(а):
ARV писал(а):2. Если T-Ti <= N, то К = zs(р * (T-Ti)/100), где р - некий коэффициент пропорциональности


А в чем смысл деления на 100 :shock: если р - некий коэффициент пропорциональности ???

Смысл в том, чтобы дать тебе пищу для написания поста... с пробелами.
Только в твоих постах никогда ошибок не бывает - "на моем сайте (бeз пpоблов) есть ответы на все вопросы!" - и все дела! А я вот не поглядел туда: все по глупости своей и темноте пытаюсь кой-чего и своим скудным умишком дотумкать, а не только готовенькие даташитики копировать... звиняй, не дорос еще до твоего уровня...

Вт мар 20, 2007 22:43:34

ARV писал(а):Только в твоих постах никогда ошибок не бывает


Бывают.

Вт мар 20, 2007 22:46:34

Abaktyсh писал(а):
А в чем смысл деления на 100 :shock: если р - некий коэффициент пропорциональности ???

Посмотревши и поразмышлявши, пришёл к выводу, что это для приведения к 100-процентной шкале заполнения, ибо сказано Если Т-Ti > N, то К=100% - выдаем полную мощность на нагрев,
Какой я умный, однако! :)))

Вт мар 20, 2007 22:57:26

1. Как известно из арифметики для получения процентов нужно отношение УМНОЖИТЬ на 100.

2. Тут дело не в процентах а в том что бессмысленно делить неограниченый условиями коэф на 100. Достаточно взять коэффициент в 100 раз меньший.
Ответить