реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Подскажите по ПИД регулированию
TamTam
сообщение Jun 20 2006, 00:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Имеется термопара, встроенная в нагреватель, Источник тока, МК

что уже сделал:
1. усиливаю сигнал с термопары
2. считаю его на АЦП (получил значение)
3. ШИМ с выходом на полевик.

Вопрос ?

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

если мона пример для данных, заданная Т=350, действительная Т=100, скорость нарастания при ШИМ 100% 10град\сек.

Про ПИД регулирование читал, но так и не въехал как она должна выглядеть.

Заранее всем благодарен
Go to the top of the page
 
+Quote Post
maegg
сообщение Jun 20 2006, 07:46
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 129
Регистрация: 22-06-04
Из: S. Peterburg
Пользователь №: 103



По моему, не хватает исходных данных.
например необходимая точность установки температуры и величина возмущающих воздействий. Может хватит пропорционального регулятора: берем ошибку умножаем на коэфф. усиления и получаем управляющее воздействие. Усиление пожно подобрать удобное 2,4,8 и т.д. Поиграться, посмотреть результат. При наличии хорошей модели объекта управления помогает Matlab.
Go to the top of the page
 
+Quote Post
Atashi
сообщение Jun 20 2006, 16:28
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 30-04-05
Пользователь №: 4 630



посмотри Титце и Шенк Смехотехника.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 20 2006, 20:04
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Можно опытным путем составить две таблицы:
1. таблицу соответсвия показаний АЦП значениям ШИМ.
2. таблицу соответствия показаний АЦП и температур.

Далее при задании требуемой температуры, искать соответствие показания АЦП этой температуре в таблице 2, потом брать значение ШИМ из таблицы 1, которое соответвует найденному значению АЦП, и записывать его в ШИМ.

Потом можно усложнить задачу - разогревать и остужать, например соответвенно на максимальной (FF) и минимальной (0) мощности, а при достижении требуемой температуры - записывать в ШИМ значение из таблицы 1.

Интуитивно простая задача.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 20 2006, 20:18
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Тут пришел на ум еще один алгоритм решения вашей задачи. По-децки простой, и основан на свойствах инертности нагревательного элемента. Итак.

Потребуется отказаться от ШИМ, управлять непосредственно нагревателем (одним пином МК).

1. Задать требуемую температуру.
2. Прочитать показания датчика температуры.
3. Вывести показания датчика на индикатор.
4. Если температура нагревательного элемента ниже требуемой то включить нагревательный элемент.
5. Если температура нагревательного элемента выше требуемой то выключить нагревательный элемент.
6. Goto 2.
Go to the top of the page
 
+Quote Post
Petka
сообщение Jun 20 2006, 20:30
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Ага, называется это термостат =) реализуется одной трёхногой микросхемой ds1820
Go to the top of the page
 
+Quote Post
Serj78
сообщение Jun 21 2006, 22:27
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



у меня один из первых "автоподстраивающихся" термостатов был сделан так
(я понимаю теперь- что криво, косо, и неправильно smile.gif )

- в течении минуты измеряется скорость настания температуры (t1-t0)при заданной мощности. (сначала мощность максимальна.)
на следующем шаге проверяется- через минуту при этой скорости на этой мощности температура превысит заданный порог?
если да, то убавляем мощность вдвое.
если нет, то прибавляем на 10% smile.gif
если порог превышен более чем на 0.2°, убавляем мощность на 10%.

все цифры были экспериментально подобраны, но надеюсь, принцип ясен.

Было сделано для достаточно инерционных прессформ (прогрев от 20 до 70°С за 30- 40 минут) точность поддержания температуры была +- 0,5°
Go to the top of the page
 
+Quote Post
Abatt
сообщение Jun 23 2006, 09:47
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 18
Регистрация: 22-06-06
Пользователь №: 18 277



вот интересные линки по ПИД

PID FAQ
http://www.tcnj.edu/~rgraham/PID-tuning.html

настройка ПИД и там же небольшой туториал:
http://www.ctc-control.com/customer/elearn...votut/adjus.asp
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jun 23 2006, 17:08
Сообщение #9


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Рекомендую посмотреть на какую-нибудь теорию и аппнот AVR221 discrete PID controller с исходниками. А так расссказывать и показывать что такое пид это целая статья журнальная минимум. smile.gif
Мгу обнадежить: наиболее сложное, а именно получение сигнала с термопары, Вы в своем проекте уже сделали.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
vvs157
сообщение Jun 23 2006, 20:16
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(TamTam @ Jun 20 2006, 04:58) *
Про ПИД регулирование читал, но так и не въехал как она должна выглядеть.

Заранее всем благодарен


Например так
--------------------
/*

Setpoint - уставка
Sysout - текущее значение регулируемого параметра
Acc_out_prev - предыдущее значение регулируемого параметра
Acc_Ti - накопитель для интегрального канала
Acc_Tds - накопитель для фильтра диф. канала
output - выходное значение регулятора
Maxout - максимальное значение выхода регулятора

Перед запуском
Acc_out_prev = 0;
Acc_Ti = 0;
Acc_Tds = 0;

При переходе с ручного режима управления на автоматический установить

Acc_Ti = Kp*output-Setpoint+Sysout;


Ti - Постоянная времени интегр. в единицах периода дискретизации
Tw = (0.1 - 0.5) Ti
Td - Постоянная времени диф. в единицах периода дискретизации
Tds = (0.2 - 1) Td
Кр - зона пропорциональности

*/

Acc_Ti=Acc_Ti+1/Ti*(Setpoint-Sysout)-1/Tw*Sat_out;
Acc_Tds=Acc_Tds+1/Tds*(Td*(Acc_out_prev-Sysout)-Acc_Tds);
Kp_val=Setpoint-Sysout;
output=1/Kp*(Kp_val+Acc_Ti+Acc_Tds);
Sat_out=0;
if (output>Maxout) {
Sat_out=output-Maxout;
output=Maxout;
};
if (output<0) {
Sat_out=output;
output=0;
};



----------------------
Go to the top of the page
 
+Quote Post
TamTam
сообщение Jun 24 2006, 00:33
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Цитата(vvs157 @ Jun 24 2006, 00:16) *
Цитата(TamTam @ Jun 20 2006, 04:58) *



Про ПИД регулирование читал, но так и не въехал как она должна выглядеть.

Заранее всем благодарен


Например так
--------------------
/*

Setpoint - уставка
Sysout - текущее значение регулируемого параметра
Acc_out_prev - предыдущее значение регулируемого параметра
Acc_Ti - накопитель для интегрального канала
Acc_Tds - накопитель для фильтра диф. канала
output - выходное значение регулятора
Maxout - максимальное значение выхода регулятора

Перед запуском
Acc_out_prev = 0;
Acc_Ti = 0;
Acc_Tds = 0;

При переходе с ручного режима управления на автоматический установить

Acc_Ti = Kp*output-Setpoint+Sysout;


Ti - Постоянная времени интегр. в единицах периода дискретизации
Tw = (0.1 - 0.5) Ti
Td - Постоянная времени диф. в единицах периода дискретизации
Tds = (0.2 - 1) Td
Кр - зона пропорциональности

*/

Acc_Ti=Acc_Ti+1/Ti*(Setpoint-Sysout)-1/Tw*Sat_out;
Acc_Tds=Acc_Tds+1/Tds*(Td*(Acc_out_prev-Sysout)-Acc_Tds);
Kp_val=Setpoint-Sysout;
output=1/Kp*(Kp_val+Acc_Ti+Acc_Tds);
Sat_out=0;
if (output>Maxout) {
Sat_out=output-Maxout;
output=Maxout;
};
if (output<0) {
Sat_out=output;
output=0;
};



----------------------


Если не в напряг помогите разобраться.

Те параметры которые я понял для чего,

Setpoint - к примеру 300 градусов
Sysout - 200 градусов
Acc_out_prev - 196 градусов
Acc_Ti - сюда надо плюсовать значения после измерения (значения за последние 10 измерений складываем и / на 10)
Acc_Tds - накопитель для фильтра диф. канала
output - ?
Maxout - (надеюсь что понял) у меня шим поэтому 100%

Ti - Постоянная времени интегр. в единицах периода дискретизации (в чем она должна быть выражена)
Tw = (0.1 - 0.5) Ti
Td - Постоянная времени диф. в единицах периода дискретизации (в чем она должна быть выражена)
Tds = (0.2 - 1) Td
Кр - зона пропорциональности (это я так понял если мне надо нагреть до 300 то сюда пишем 300)

Acc_Ti=Acc_Ti+1/Ti*(Setpoint-Sysout)-1/Tw*Sat_out; что такое Sat_out

Kp_val=Setpoint-Sysout; (Kp_val - это разница между заданным и достигнутым ?)
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jun 24 2006, 04:32
Сообщение #12


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Неудачный термин, Кр - это коэффициэнт усиления пропорционального звена. Интуитивно это скорость нагрева или (при пропорциональном регулировании) коэффициэнт наклона прямой закона регулирования. От этого коэффициэнта зависит как быстро будет разогреватся объект управления.
Посмотрите все-таки на аппнот там доходчиво достаточно. С бухты-барахты не разберетесь.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
Abatt
сообщение Jun 24 2006, 04:41
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 18
Регистрация: 22-06-06
Пользователь №: 18 277



в апноуте AVR492 теория и код для IAR
Go to the top of the page
 
+Quote Post
LordN
сообщение Jun 24 2006, 05:43
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



Цитата
Кр - это коэффициэнт усиления пропорционального звена. Интуитивно это скорость нагрева или (при пропорциональном регулировании) коэффициэнт наклона прямой закона регулирования.
для ПИД регуляторов удобней пользоваться обратной величиной Zp = 1/Кр (Kp = 1 / Zp).
Zp - "зона пропорциональности".
её физический смысл - величина ошибки, при которой пропорциональная часть = 1.
имеет ту же размерность, что и ошибка.


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post
Abatt
сообщение Jun 24 2006, 06:51
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 18
Регистрация: 22-06-06
Пользователь №: 18 277



вот готовые проект что вам нужен

http://www.circuitcellar.com/library/print...e_168/index.htm

печь для пайки сделана из тостера.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01501 секунд с 7
ELECTRONIX ©2004-2016