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

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

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

Источник

Читайте также:  Механизм раздвижных дверей своими руками как сделать
Оцените статью
Своими руками