Пид регуляторы температуры своими руками

Электроника и автоматика на МК

Как- то раз, одна дружественная лаборатория попросила сделать для нее ПИД регулятор до 500 градусов с точностью удержания температуры не хуже 0,5 градуса, при этом точность установления самой температуры требовалась не очень высокая – около 3х градусов и, соответственно, градуировка термопары не закладывалась. Промышленный регулятор им не подошел ни по точности, ни по удобству. Так как менять температуру надо было очень часто, а делать это кнопками очень муторно , было решено в качестве задатчика температуры применить энкодер. Но, к сожалению, до железа дело так и не дошло, так как финансирование закончилось, как это часто у нас бывает, раньше чем поступили деньги. Временные характеристики нагревателя были приблизительно как у электрической конфорки, поэтому для того чтобы симуляция в протеусе не была слишком долгой и утомительной, шаг регулирования временных параметров уменьшен в 10 раз. Еще им нужен был аналоговый выход температуры. Температура подается на вход 12-и разрядного выносного АЦП, что обеспечивает шаг дискретности 0,125 градуса, хотя возможно это излишне. Все настройки вводятся в сервисном меню и запоминаются в ЕЕПРОМ. В сервисном режиме можно настраивать такие параметры, как: коэффициенты регулирования, период ПИД, период ШИМ, режим регулирования (ПИД, П, ПД, ПИ, Релейный режим – для подбора коэффициентов). Алгоритм регулирования классический и самый простой , с ограничением интегрирования. Для того чтобы войти в сервис, перед запуском симуляции переведите кнопку SERVIСE в нажатое состояние, запустите протеус (подайте питание), нажимая кнопку выберете нужный параметр и измените его вращением энкодера, далее нажимайте кнопку до выхода из сервисного меню. Dll-ка mcp3201 для тех у кого протеус меньше чем 7.10 прилагается в архиве. Mcp4921 можно вообще исключить из моделирования. Хотя программа сыровата и подглючивает (иногда АЦП вдруг читает нулевое значение, и срабатывает защита от обрыва термопары), да и опыта в микроконтроллерах у меня не очень много, все же надеюсь, что информация будет полезна тем, кто впервые хочет покрутить, пощупать ПИД регулятор, хотя бы виртуально.

Источник

Пид регуляторы температуры своими руками

Собственно нужно держать температуру нагрева как можно точнее, ровнее. Хотелось бы сделать ПИД регулятор. Почитал про принцип действия, но как организовать на мк и настроить его- пока мыслей нет. Может кто уже делал или знает как- подскажите пожалуйста. (мк типа МЕГА8)

Есть термопара с платой усилителя сигнала. мк АЦП можно захватывать значение входа усилителя термопары, а вот что далее, как это значение в какие формулы пихать, да еще и коэффициенты применять.

поделитесь дельными предложениями, ссылками.
(готовые решения что то дороги очень 3500-6500руб.)

Читайте также:  Обертка для букета цветов своими руками
Реклама
Furius
Встал на лапы

Зарегистрирован: Пн ноя 29, 2010 10:13:46
Сообщений: 112
Рейтинг сообщения: 0

Реклама

JLCPCB, всего $2 за прототип печатной платы! Цвет — любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

ChipKiller
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0

Реклама

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Alexeus
Вымогатель припоя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 677
Рейтинг сообщения: 0

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

Интересует, конечно, если кто уже сам делал. Поделитесь практической реализацией, кода, схемотехники, алгоритм.
(понятно, что управление симистором через оптопару с детектором перехода через ноль, а как мк сигнал на оптопару формирует- шим? как связать шим с расчетом ПИ, как применить коэффициенты и расчитать их значение. )

Реклама

Приглашаем всех желающих 13 октября 2021 г. посетить вебинар, посвященный искусственному интеллекту, машинному обучению и решениям для их реализации от Microchip. Современные среды для глубинного обучения нейронных сетей позволяют без детального изучения предмета развернуть искусственную нейронную сеть (ANN) не только на производительных микропроцессорах и ПЛИС, но и на 32-битных микроконтроллерах. А благодаря широкому портфолио Microchip, включающему в себя диапазон компонентов от микроконтроллеров и датчиков до ПЛИС, средств скоростной передачи и хранения информации, возможно решить весь спектр задач, возникающий при обучении, верификации и развёртывании модели ANN.

Сэр Мурр
Модератор

Карма: 46
Рейтинг сообщений: 232
Зарегистрирован: Чт окт 27, 2005 18:50:07
Сообщений: 11174
Откуда: из мест не столь отдалённых
Рейтинг сообщения: 0
Медали: 2

Реклама
Реклама

Компания Компэл приглашает 30 сентября на вебинар посвященный экономичным решениям МЕAN WELL. На вебинаре мы рассмотрим, как решения MEAN WELL позволяют сэкономить при выборе оптимального источника питания для ваших приложений. Будут представлены основные группы источников питания по конструктивным признакам и по областям применения в контексте их стоимости или их особенностей, позволяющих снизить затраты на электропитание конечного устройства.

maglev
Потрогал лапой паяльник

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0

error = in — setpoint;

velocity = error — error_1;
error_1 = error;

Реклама

ChipKiller
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0

Реклама

Alexeus
Вымогатель припоя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 677
Рейтинг сообщения: 0

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

Планирую использовать оптопару с детектором нуля и симистор. Оптопара при подаче на нее сигнала управления включит симистор только в ближайший переход через ноль.
Как на мк реализовать подачу сигнала на оптопару, ведь скорее всего продолжительность подачи этого сигнала нужно как то увязать с рассчитанным значением ПИД?

Реклама

ChipKiller
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0

В процессе расчета out имеет определенную величину. Скармливаете это значение, например, алгоритму Брезенхема, который равномерно распределяет вкл/выкл состояние на интервал управления нагрузкой.

Pooher
Мучитель микросхем

Зарегистрирован: Вс янв 07, 2007 01:45:48
Сообщений: 491
Откуда: Российская Федерация, будь она неладна.
Рейтинг сообщения: 0

А как симистор откроется при нулевом напряжении? Симистор надо открывать при напряжении отличном от нуля, а вот закрывать в тот момент, кода ток и напряжение равно нулю. На пример:
1-Отследили «ноль» (напр. внешним прерыванием)
2-Запустили таймер
3-Таймер досчитал до нужного значения — подаём импульс открытия.
4-При правильной постройке схемы контроля перехода через ноль, симистор сам закроется в «нуле»

_________________
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.

maglev
Потрогал лапой паяльник

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0

Alexeus
Вымогатель припоя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 677
Рейтинг сообщения: 0

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

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

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

maglev
Потрогал лапой паяльник

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0

Roma4ka
Первый раз сказал Мяу!

Зарегистрирован: Пт фев 05, 2010 20:47:51
Сообщений: 38
Рейтинг сообщения: 0

добрые коты, помогите разобраться с ПИД регулятором. Есть кусок кода CVAVR для регулировки нагревателям (лампа 60Вт.), управляю нагревом через оптотиристор + симистор,
режим роботы: 100% — максимальный нагрев и 30% минимальный нагрев. термометр — термопара.
нарыл кусок ПИД регулятора . ну не могу его превинтить к своим проекту
необходимо что бы функция возвращала процент нагрузки в приделах ((

#define INTERVAL 0.1
#define MAX 100
#define MIN 30
signed int Kp=2,Ki=1,Kd=0;
static signed int last_error;

signed int pid_control(signed char setpoint, signed char currentpoint)
<
signed int P;
signed int D;
static signed int I;
signed int PID;
P = (setpoint — currentpoint);
I = (I + (setpoint — currentpoint) * INTERVAL);
D = (((setpoint — currentpoint) — last_error) / INTERVAL);
last_error = setpoint — currentpoint;
PID = (Kp * P) + (Ki * I) + (Kd * D);
return (PID);
>

каждые 250 мс. я считываю показания термопары, и передаю показания

GRAF
Мудрый кот

Карма: 2
Рейтинг сообщений: 5
Зарегистрирован: Ср янв 23, 2008 22:11:54
Сообщений: 1867
Откуда: Калининград
Рейтинг сообщения: 0

vahoo
Открыл глаза

Зарегистрирован: Чт янв 10, 2008 15:30:33
Сообщений: 74
Рейтинг сообщения: 0

добрые коты, помогите разобраться с ПИД регулятором. Есть кусок кода CVAVR для регулировки нагревателям (лампа 60Вт.), управляю нагревом через оптотиристор + симистор,
режим роботы: 100% — максимальный нагрев и 30% минимальный нагрев. термометр — термопара.
нарыл кусок ПИД регулятора . ну не могу его превинтить к своим проекту
необходимо что бы функция возвращала процент нагрузки в приделах ((

#define INTERVAL 0.1
#define MAX 100
#define MIN 30
signed int Kp=2,Ki=1,Kd=0;
static signed int last_error;

signed int pid_control(signed char setpoint, signed char currentpoint)
<
signed int P;
signed int D;
static signed int I;
signed int PID;
P = (setpoint — currentpoint);
I = (I + (setpoint — currentpoint) * INTERVAL);
D = (((setpoint — currentpoint) — last_error) / INTERVAL);
last_error = setpoint — currentpoint;
PID = (Kp * P) + (Ki * I) + (Kd * D);
return (PID);
>

каждые 250 мс. я считываю показания термопары, и передаю показания

поделись пожалуйста кодом и схемой если не жалко,

da-nie
Говорящий с текстолитом

Карма: 29
Рейтинг сообщений: 136
Зарегистрирован: Вс июн 24, 2012 16:07:00
Сообщений: 1535
Откуда: Лен.Обл.
Рейтинг сообщения: 0

vahoo
Открыл глаза

Зарегистрирован: Чт янв 10, 2008 15:30:33
Сообщений: 74
Рейтинг сообщения: 0

а не подскажите откуда можно скачать готовый проект желательно на CVAVR и на C ?

siamds
Встал на лапы

Карма: -5
Рейтинг сообщений: -6
Зарегистрирован: Вт мар 20, 2012 20:50:22
Сообщений: 99
Откуда: Краснодар
Рейтинг сообщения: 0

_________________
На каждого Моцарта есть свой Сальери.

Последний раз редактировалось siamds Пн июл 09, 2012 00:34:38, всего редактировалось 1 раз.

Леонид Иванович
Друг Кота

Карма: 82
Рейтинг сообщений: 1020
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0

Страница 1 из 2 [ Сообщений: 22 ] На страницу 1 , 2 След.

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Источник

Читайте также:  Отопление для боксов своими руками
Оцените статью
Своими руками