Прошу помощи с регулятором температуры.

Almeder
Offline
Зарегистрирован: 26.03.2017

Здравствуйте. Не судите строго т.к. новичек на форумах.

В общем по порядку. Планирую создать регулятор температуры с подключением к ТЭНу. Необходимо чтобы он нагревал 50 литров (по возможности за определенный промежуток времени ). И поддерживал температуру. 

Сначала думал сделать ПИД регулятор т.к. только он может задать время нагрева. Но как оказалось, что управлять переменным напряжением не такая простая вещь. Видел управление лампами с помощью ШИМ диммеров, но я очень сомневаюсь, что они без последствий выдержат нагрузку 1,5 - 2 квт. ТЭНов.

Из-за обилия информации только запутался.

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

Почему Arduino? Потому как планирую в дальнейшейм добавить еще различные элементы и прописать программы.

P.S. Это не пивоварня и не самогонный аппарат)))

Прошу извинить если допускаю какие-то ошибки.

lean_74
Offline
Зарегистрирован: 22.12.2015

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

ШИМом можно, но большие помехи обратно в сеть, из-за большой мощьности нагрузки.

Нужен ли ПИД? смотря с какой точностью нужно поддерживать температуру, если градуса два три- обычного терморегулятора достаточно, если 0.1 - 0,5 градуса без ПИДа врядли обойтись.

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

nik182
Offline
Зарегистрирован: 04.05.2015

Всё решаемо в рамках озвученных вами начальных условий. Минимальное время нагрева можно посчитать исходя из теплоемкости воды и мощности ТЭНа. Вода достаточно инерционный объект. Если надо греть медленнее то лучше использовать пропуски полуперодов - помех меньше при мощных нагрузках. Как организовать - на форуме есть несколько тем. ПИД регулятор штука полезная, но очень трудная в настройке. Особенно если в условие не вводить количество воды. 

Almeder
Offline
Зарегистрирован: 26.03.2017

lean_74 пишет:

Нужен ли ПИД? смотря с какой точностью нужно поддерживать температуру, если градуса два три- обычного терморегулятора достаточно, если 0.1 - 0,5 градуса без ПИДа врядли обойтись.

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

Насчет температуры, среднее между тем, что вы сказали - 1 градус, максимум 1,5 но не желательно.

Насчет регулировки пропуском полупериодов - есть ли готовое аппаратное решение данной задачи (в продаже), или это все нужно собирать самому. 

Almeder
Offline
Зарегистрирован: 26.03.2017

nik182 пишет:

Всё решаемо в рамках озвученных вами начальных условий. Минимальное время нагрева можно посчитать исходя из теплоемкости воды и мощности ТЭНа. Вода достаточно инерционный объект. Если надо греть медленнее то лучше использовать пропуски полуперодов - помех меньше при мощных нагрузках. Как организовать - на форуме есть несколько тем. ПИД регулятор штука полезная, но очень трудная в настройке. Особенно если в условие не вводить количество воды. 

А если взять регулятор напряжения и вместо потенциометра законектить на Arduino. Где-то я слышал такое, но судя по тому, что информации мало наверное это глупо?

evgta
Offline
Зарегистрирован: 02.09.2016

пример управления ПИД   без шима

/********************************************************
 * PID RelayOutput Example
 * Same as basic example, except that this time, the output
 * is going to a digital pin which (we presume) is controlling
 * a relay.  the pid is designed to Output an analog value,
 * but the relay can only be On/Off.
 *
 *   to connect them together we use "time proportioning
 * control"  it's essentially a really slow version of PWM.
 * first we decide on a window size (5000mS say.) we then 
 * set the pid to adjust its output between 0 and that window
 * size.  lastly, we add some logic that translates the PID
 * output into "Relay On Time" with the remainder of the 
 * window being "Relay Off Time"
 ********************************************************/

#include <PID_v1.h>
#define RelayPin 6

//Define Variables we'll be connecting to
double Setpoint, Input, Output;

//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);

int WindowSize = 5000;
unsigned long windowStartTime;
void setup()
{
  windowStartTime = millis();
  
  //initialize the variables we're linked to
  Setpoint = 100;

  //tell the PID to range between 0 and the full window size
  myPID.SetOutputLimits(0, WindowSize);

  //turn the PID on
  myPID.SetMode(AUTOMATIC);
}

void loop()
{
  Input = analogRead(0);
  myPID.Compute();

  /************************************************
   * turn the output pin on/off based on pid output
   ************************************************/
  if(millis() - windowStartTime>WindowSize)
  { //time to shift the Relay Window
    windowStartTime += WindowSize;
  }
  if(Output < millis() - windowStartTime) digitalWrite(RelayPin,HIGH);
  else digitalWrite(RelayPin,LOW);

}


вместо реле можно использовать твердртельное реле , в них есть cross zero так что особых помех давать небудет.

 

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

вместо реле можно использовать твердртельное реле , в них есть cross zero так что особых помех давать небудет.

На всех твердотельных реле есть детектор нуля (cross zero)? 

evgta
Offline
Зарегистрирован: 02.09.2016

не на всех, даташит смотреть надо

вот в этих , которые на али, есть

http://www.fotek.com.ua/webfm_send/148

 

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

не на всех, даташит смотреть надо

вот в этих , которые на али, есть

http://www.fotek.com.ua/webfm_send/148

 

Спасибо большое! И с ними же можно пропускаями полупериодов работать выходит?

evgta
Offline
Зарегистрирован: 02.09.2016

можно, только надо еще детектор нуля делать чтобы знать когда его включить и выключить , но зачем? в скетче выше задается период в 5 секунд и в зависимости от параметров реле работает например 3,5 секунды из 5, потеплела вода 1 секунду из 5 и тд

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

можно, только надо еще детектор нуля делать чтобы знать когда его включить и выключить , но зачем? в скетче выше задается период в 5 секунд и в зависимости от параметров реле работает например 3,5 секунды из 5, потеплела вода 1 секунду из 5 и тд

А не трудно вам будет немного пояснить скетч. А именно где устанавливать температуру. 

evgta
Offline
Зарегистрирован: 02.09.2016

тогда проще вот такую штуку приобрести https://ru.aliexpress.com/item/Free-shipping-Digital-PID-Thermostat-Temperature-Controller-REX-C100-40A-SSR-Relay-K-Thermocouple-Probe/32569747694.html?spm=2114.03010208.3.31.unqUVb&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10068_433_434_10136_10137_10138_10060_10062_10141_202_10056_10055_10054_301_10059_10531_10099_10530_10103_10102_10096_120_10052_10144_10053_10050_10107_10142_10051_10106_10143_10526_10529_10528_10523_10084_10117_10083_10119_10080_10082_10081_10110_10111_10112_10113_10114_10037_10078_10079_10077_10073_10070_10122_10123_10120_10127_10124_10125-10120,searchweb201603_13,afswitch_1_afChannel,ppcSwitch_2,single_sort_0_price_asc&btsid=55bd4c8e-2c48-4975-bfb1-cd113363c717&algo_expid=0963151f-a887-4be3-a10b-4ace6970fb12-3&algo_pvid=0963151f-a887-4be3-a10b-4ace6970fb12

 

или такую

https://ru.aliexpress.com/item/Intelligent-Digital-LCD-PID-Temperature-Controller-Built-in-relay-Electronic-Thermostat-LCD-screen-Thermostat-free-shipping/32800234083.html?spm=2114.03010208.3.158.unqUVb&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10068_433_434_10136_10137_10138_10060_10062_10141_202_10056_10055_10054_301_10059_10531_10099_10530_10103_10102_10096_120_10052_10144_10053_10050_10107_10142_10051_10106_10143_10526_10529_10528_10523_10084_10117_10083_10119_10080_10082_10081_10110_10111_10112_10113_10114_10037_10078_10079_10077_10073_10070_10122_10123_10120_10127_10124_10125,searchweb201603_13,afswitch_1_afChannel,ppcSwitch_2,single_sort_0_price_asc&btsid=55bd4c8e-2c48-4975-bfb1-cd113363c717&algo_expid=0963151f-a887-4be3-a10b-4ace6970fb12-17&algo_pvid=0963151f-a887-4be3-a10b-4ace6970fb12

вот тут по настройке пид

http://bigbarrel.ru/arduino_pid/

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

тогда проще вот такую штуку приобрести

Да, знаю я REXa, и придется наверное его покупать. Я хотел ПИД из Ардуинки сделать, потому, что хотел еще пару иполняющих устройств поставить и програмку написать.

Но все равно, спасибо огромное.

lean_74
Offline
Зарегистрирован: 22.12.2015

Almeder Вот эту темку внимательно перечитай http://arduino.ru/forum/programmirovanie/upravlenie-tenami-propuskom-periodov-shim тут есть все что тебе нужно, включая ссылки.

 

lean_74
Offline
Зарегистрирован: 22.12.2015

nik182 пишет:

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

Я используя решения с этого сайта сделал инкубатор, где ПИД есть, а настройка его не требуется. ПИД -коэффициенты рассчитываются каждый раз заново при обращении к нему. Так что количество воды мне без раздницы, при условии, что мощности тенов будет достаточно.http://arduino.ru/forum/proekty/narodnyi-inkubator#comment-259610

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

можно, только надо еще детектор нуля делать чтобы знать когда его включить и выключить , но зачем? в скетче выше задается период в 5 секунд и в зависимости от параметров реле работает например 3,5 секунды из 5, потеплела вода 1 секунду из 5 и тд

Я запутался, т. е. детектор нуля и коммутация перехода через ноль это разные вещи?

Т.е. к SSR 25DA чтобы управлять пропуском полупериодов нужно еще и детектор нуля ваять?

evgta
Offline
Зарегистрирован: 02.09.2016

SSR 25DA он просто включает нагрузку при переходе через 0(при этом управляющий сигнал подается в любое время). а если управлять пропусками полупериодов надо же знать в какой полуперид подавать питание на реле, для этого нужен детектор на вход ардуины

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

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

Тогда я все понял, и на сколько я знаю, детектора как такового нет в продаже? Надо самому собирать?

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

Тогда если можно посмотрите - насчет Скетча ПИД без шим.

С Далласом и уставкой в 29 градусов это будет выглядеть примерно так? 


#include <PID_v1.h>
#include <OneWire.h>
#include <DallasTemperature.h>


#define ONE_WIRE_BUS A1
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

#define RELAY_PIN 6
//Define Variables we'll be connecting to
double Setpoint, Input, Output;

//Specify the links and initial tuning parameters
double Kp=1, Ki=20, Kd=0;
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);

int WindowSize = 5000;
unsigned long windowStartTime;

void setup()
{
  sensors.begin();
  windowStartTime = millis();
Serial.begin(9600);
  //initialize the variables we're linked to
  Setpoint = 29;
 pinMode(RELAY_PIN, OUTPUT);
  //tell the PID to range between 0 and the full window size
  myPID.SetOutputLimits(0, WindowSize);

  //turn the PID on
  myPID.SetMode(AUTOMATIC);

    Serial.print("Sensoren: "); 
  
  Serial.println(sensors.getDeviceCount());
   
}

void loop()
{
  sensors.requestTemperatures(); // Send the command to get temperatures
  Input = sensors.getTempCByIndex(0);
  myPID.Compute();

  /************************************************
   * turn the output pin on/off based on pid output
   ************************************************/
  if (millis() - windowStartTime > WindowSize)
  { //time to shift the Relay Window
    windowStartTime += WindowSize;
  }
  if (Output < millis() - windowStartTime) digitalWrite(RELAY_PIN, HIGH);
  else digitalWrite(RELAY_PIN, LOW);

for(byte i=0;i<sensors.getDeviceCount();i++){  // Температура на выходе
    show_temperature(i+1,sensors.getTempCByIndex(i));  
  }
    delay(1000);  // сек пауза до следующего измерения
}

// Температура на выходе
void show_temperature(byte num,float temp){
      Serial.print(" INPUT:");
  Serial.println(Input);
  Serial.print("OUTPUT:");
  Serial.print(Output);
  Serial.print(" SETPOINT:");
  Serial.print(Setpoint);
  
  Serial.print("Sensor ");
  Serial.print(num);
  Serial.print(": ");
  Serial.print(temp);
  Serial.print(" "); 
  Serial.write(176);  
  Serial.println("C");
}

 

evgta
Offline
Зарегистрирован: 02.09.2016

проверите-увидите, я пробовал пид у себя прикрутить на автоуправление заслонкой отопителя, но он у меня так и не взлетел( замучался коэфф подбирать)  поэтому сделал без пид
 

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

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

проверите-увидите, я пробовал пид у себя прикрутить на автоуправление заслонкой отопителя, но он у меня так и не взлетел( замучался коэфф подбирать)  поэтому сделал без пид
 

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

Ладно, будем пробывать как придет Далас

Спасибо за помощь))

evgta
Offline
Зарегистрирован: 02.09.2016

если вживую нет копонентов, то протеус в помощь, будет подтормаживать, но впринципе работает

uragan
Offline
Зарегистрирован: 23.02.2015

Почему ТЕНы не включать-выключать просто на промежуток времени в секунды или десятки секунд. Для чего полупериоды ловить?

evgta
Offline
Зарегистрирован: 02.09.2016

я незнаю зачем за это уцепились, типа так точнее температуру поддерживать будет наверное

Almeder
Offline
Зарегистрирован: 26.03.2017

uragan пишет:

Почему ТЕНы не включать-выключать просто на промежуток времени в секунды или десятки секунд. Для чего полупериоды ловить?

Нужно поддержание температуры в районе 1 градуса, максимум 1.5 - и то не желательно.

Хотя я не пробывал работать с обычным регулятором, но думаю что ТЭН в 1.5 киловата будет иметь гистерезес по более чем 1 градус.

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

я незнаю зачем за это уцепились, типа так точнее температуру поддерживать будет наверное

Да. Мне надо поодерживать температуру с допуском в 1 градус. Можно 1.5 но не желательно.

evgta
Offline
Зарегистрирован: 02.09.2016

3-10 секунд работы тена на 50 литров вряд-ли поднимут температуру на 1 градус, тут больше вопрос в локальном нагреве жидкости, нужна либо большАя площадь нагрева, либо быстрая циркуляцмя жидкости вокруг нагревателя, а лучше и то и другое.

nik182
Offline
Зарегистрирован: 04.05.2015

Up.

nik182
Offline
Зарегистрирован: 04.05.2015

lean_74 пишет:

nik182 пишет:

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

Я используя решения с этого сайта сделал инкубатор, где ПИД есть, а настройка его не требуется. ПИД -коэффициенты рассчитываются каждый раз заново при обращении к нему. Так что количество воды мне без раздницы, при условии, что мощности тенов будет достаточно.http://arduino.ru/forum/proekty/narodnyi-inkubator#comment-259610

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

В приведённой вами ссылке коэффицициенты ПИД регулятора автоматически не получаются. Они твёрдо заданы в строке 80. Для воды будут совсем другие.

Almeder
Offline
Зарегистрирован: 26.03.2017

nik182 пишет:

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

В приведённой вами ссылке коэффицициенты ПИД регулятора автоматически не получаются. Они твёрдо заданы в строке 80. Для воды будут совсем другие.

Сей-час ситуация немного изменилась. Я разобрался с библиотекой PID. Построил "мини регулятор для эксперементов" - DHT11, Светодиод. При повышении температуры нагрузка на светодиод уменьшается. В принципе все как надо. 

На счет коэффициентов. Знаю что это не просто. Часто встречал, что в таких простых задачах как поддержание температуры воды "любители" коэффициенты подбирают эксперементально. Т.е. ставят от фонаря и смотрят поведение управляющего сигнала. Еще видел подбирают через какую-то программу, я не понял если честно, толи ArduinoLab, толи MatLab. 

Понимаю, что это не прфессионально. Но надо с чего-то начать. И есть желание рости вэтой области.

На данный момент я остановился на том, как теперь управлять переменным напряжением с помощью этой библиотеки, на примере моего "мини регулятора". Видел, что ставят диммеры аналоговые. Но не знаю как диммер "отнесется" к ТЭНу на 1.5 Квт. Попытаюсь еще разобраться в теме "упралением SSR через пропуск полупериодов".

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

Буду очень благодарен если поможете мне хотя бы найти информацию на эту тему. 

evgta
Offline
Зарегистрирован: 02.09.2016

Пропуск полупериодов по большому счету все тоже управление по времени, т.к 50гц есть 50гц. можно не полупериоды ловить а время отсчитывать и включать(1 полупериод равен 1/100секунды), а ssr сама уже полупериод подгонит и нагрузку без помех включит. т.е просто период не 5 секунд а меньше.

я скетч давал из стандартных примеров библиотеки PID_v1.h

http://playground.arduino.cc/Code/PIDLibrary

lean_74
Offline
Зарегистрирован: 22.12.2015

nik182 пишет:

lean_74 пишет:

nik182 пишет:

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

Я используя решения с этого сайта сделал инкубатор, где ПИД есть, а настройка его не требуется. ПИД -коэффициенты рассчитываются каждый раз заново при обращении к нему. Так что количество воды мне без раздницы, при условии, что мощности тенов будет достаточно.http://arduino.ru/forum/proekty/narodnyi-inkubator#comment-259610

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

В приведённой вами ссылке коэффицициенты ПИД регулятора автоматически не получаются. Они твёрдо заданы в строке 80. Для воды будут совсем другие.

в стоке 80 заданы начальные значения коэффициентов, а в строках 229-231 они постоянно корректируются. На сегодня собрано уже три инкубатора разного объема на 300 яиц на 72 и на 35 яиц. код нигде не корректировался, основное условие чтобы в рабочем режиме использовалось от 15 до 35 процентов мощности нагревателей, тогда и на уставку выходит быстро и температуру держит в пределах 0,1 градуса.

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

Almeder
Offline
Зарегистрирован: 26.03.2017

evgta пишет:

Пропуск полупериодов по большому счету все тоже управление по времени, т.к 50гц есть 50гц. можно не полупериоды ловить а время отсчитывать и включать(1 полупериод равен 1/100секунды), а ssr сама уже полупериод подгонит и нагрузку без помех включит. т.е просто период не 5 секунд а меньше.

я скетч давал из стандартных примеров библиотеки PID_v1.h

http://playground.arduino.cc/Code/PIDLibrary

Я тоже так подумал, насчет 50гц. Вы подтвердили мои мысли. Спасибо. Будем разбираться плотнее, т.к. хочется по максимуму понимать всю эту тему.

SLKH
Offline
Зарегистрирован: 17.08.2015

Almeder пишет:

evgta пишет:

я незнаю зачем за это уцепились, типа так точнее температуру поддерживать будет наверное

Да. Мне надо поодерживать температуру с допуском в 1 градус. Можно 1.5 но не желательно.

 

if температура меньше заданной на дельта1  (1-2-4 градуса) - греем воду полной мощностью.

if температура меньше заданной на дельта2 (0,25 - 0.5 -1 -2 градуса) - включаем на пониженную мощность (пропускаем периоды).

что-то вроде пропорционального регулятора с одной ступенью.

величины дельта1, дельта2 и кратность пропуска периодов подбираются экспериментально.

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

 

 

 

 

Almeder
Offline
Зарегистрирован: 26.03.2017

SLKH пишет:

 

 

if температура меньше заданной на дельта1  (1-2-4 градуса) - греем воду полной мощностью.

if температура меньше заданной на дельта2 (0,25 - 0.5 -1 -2 градуса) - включаем на пониженную мощность (пропускаем периоды).

что-то вроде пропорционального регулятора с одной ступенью.

величины дельта1, дельта2 и кратность пропуска периодов подбираются экспериментально.

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

1. Насчет регулировки мощности, в моём пока собраном "мини-регуляторе" в качестве нагрузки у которого выступает светодиод, PID - регулятор сам подбирает силу тока, в зависимости от заданной температуры, и справляется с этим очень не плохо - например когда у меня в комнате было 25, и задавал 27, он начинал подавать ток где-то с 1/3 мощности, а когда я выставил заданную температуру 50, он начал с самого высокого (255). 

Мне сей-час эту задачу необходимо установить на SSR. Либо на диммер (что значительно проще, но мне так никто и не ответил, выдержит ли диммер нагрузку в 1.5 Квт (ТЭН)).

2.На счет SSR, я пока так и не понял как в скетч прописывать алгоритм пропуска периодов. Буду очень признателен если снабдите меня информацией на эту тему.

SLKH
Offline
Зарегистрирован: 17.08.2015

Almeder пишет:

 

Сей-час ситуация немного изменилась. Я разобрался с библиотекой PID. Построил "мини регулятор для эксперементов" - DHT11, Светодиод. При повышении температуры нагрузка на светодиод уменьшается. В принципе все как надо.

на самом деле - всё, как не надо.

нет никакого смысла в экспериментах с безынерционным светодиодом. 

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

 

Цитата:
На счет коэффициентов. Знаю что это не просто. Часто встречал, что в таких простых задачах как поддержание температуры воды "любители" коэффициенты подбирают эксперементально.
и правильно делают.

Цитата:
Понимаю, что это не прфессионально.

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

Цитата:
Мне кидали ссылки "сдешних" ПИД регуляторов. Но мне как начинающему тяжело читать чужие скетчи т.к. в них есть вещи, с которыми я еще не работал. Из-за этого я не могу понять - относится та или иная строка к ПИД или нет.

Буду очень благодарен если поможете мне хотя бы найти информацию на эту тему. 

стоило бы самому дать информацию о своем проекте - в первом сообщении очень мало данных. например, о расходе воды.

и скорее всего, полноценный пид-регулятор тебе просто не нужен.

 

SLKH
Offline
Зарегистрирован: 17.08.2015

Almeder пишет:

 

 

1. Насчет регулировки мощности, в моём пока собраном "мини-регуляторе" в качестве нагрузки у которого выступает светодиод, PID - регулятор сам подбирает силу тока, в зависимости от заданной температуры, и справляется с этим очень не плохо - например когда у меня в комнате было 25, и задавал 27, он начинал подавать ток где-то с 1/3 мощности, а когда я выставил заданную температуру 50, он начал с самого высокого (255). 

Мне сей-час эту задачу необходимо установить на SSR. Либо на диммер (что значительно проще, но мне так никто и не ответил, выдержит ли диммер нагрузку в 1.5 Квт (ТЭН)).

так мы с твоим диммером не знакомы - естественно, и сказать про него ничего не можем.

Цитата:
2.На счет SSR, я пока так и не понял как в скетч прописывать алгоритм пропуска периодов. Буду очень признателен если снабдите меня информацией на эту тему.
см. 100500 материалов на супертему "блинк без делэй", в том числе в титановом исполнении.

bwn
Offline
Зарегистрирован: 25.08.2014

Almeder пишет:

Мне сей-час эту задачу необходимо установить на SSR. Либо на диммер (что значительно проще, но мне так никто и не ответил, выдержит ли диммер нагрузку в 1.5 Квт (ТЭН)).

2.На счет SSR, я пока так и не понял как в скетч прописывать алгоритм пропуска периодов. Буду очень признателен если снабдите меня информацией на эту тему.

Ви таки нэ повэрите, но если у SSR-ки срезать верхнюю крышку, там обнаружится таки тот же тиристор с моськой, что и вашем диммере. Для того, чтобы твердотелка смогла работать диммером, необходимо три условия: 1. Твердотел должен быть без zero-cross. 2. Необходим наружный узел перехода через ноль на оптроне. 3. Необходима программа управления твердотелом от данных узла отлова нуля. Любой тиристор, от 10А и выше, вполне справится с вашим ТЭНом.

Almeder
Offline
Зарегистрирован: 26.03.2017

bwn пишет:

Ви таки нэ повэрите, но если у SSR-ки срезать верхнюю крышку, там обнаружится таки тот же тиристор с моськой, что и вашем диммере. Для того, чтобы твердотелка смогла работать диммером, необходимо три условия: 1. Твердотел должен быть без zero-cross. 2. Необходим наружный узел перехода через ноль на оптроне. 3. Необходима программа управления твердотелом от данных узла отлова нуля. Любой тиристор, от 10А и выше, вполне справится с вашим ТЭНом.

Если честно я еще больше запутался. С вашего позволения для того, чтобы расставить в мозге все по полочкам, задам вопрос в виде задачки.

На данный момент у меня есть:

1 - Скетч (PID), который управляет током на пине, в зависимости от приближения к заданной температуре.

2 - представим, что вот такое SSR - https://ru.aliexpress.com/item/1pcs-solid-state-relay-SSR-25DA-25A-3-32V-DC-TO-24-380V-AC-SSR/32663806352.html?spm=2114.03020208.3.2.N2Z4p1&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10068_10136_10137_10060_10138_10062_10141_10056_10055_10054_301_10059_10099_10103_10102_10096_120_10144_10052_10053_10142_10107_10050_10143_10051_10526_10529_10528_10523_10117_10084_10083_10080_10082_10081_10110_10111_10112_10113_10114_10033_10517_10078_10079_10073_10070_10122_10123_10127_10124_10125-10033,searchweb201603_1,afswitch_1,ppcSwitch_5_ppcChannel,single_sort_0_total_tranpro_desc&btsid=ca9c442a-cac0-4133-a078-fb9bb36aa767&algo_expid=0020a5a0-4a96-4ce6-a6cb-c6397d4ed522-0&algo_pvid=0020a5a0-4a96-4ce6-a6cb-c6397d4ed522   (Извиняюсь за ссылку)

3. ТЭН - 1.5 квт.

Что мне необходимо, для того, чтобы из всего имеющегося управлять мощностью тена?

Просто можете тезисно.

bwn
Offline
Зарегистрирован: 25.08.2014

Не буду лазать по даташитам, сами посмотрите (если есть zero-cross, а скорее всего есть), то только пропуск периодов. Понадобится датчик 0 сети на оптроне и скорее всего радиатор для SSR. Далее вашу прогу надо состыковать с отсчетом периодов.
Как вариант без оптрона - временное управление (типа секунду включен, две выключен)

Almeder
Offline
Зарегистрирован: 26.03.2017

bwn пишет:

Не буду лазать по даташитам, сами посмотрите (если есть zero-cross, а скорее всего есть), то только пропуск периодов. Понадобится датчик 0 сети на оптроне и скорее всего радиатор для SSR. Далее вашу прогу надо состыковать с отсчетом периодов.
Как вариант без оптрона - временное управление (типа секунду включен, две выключен)

Теперь хотя бы отделил одно от другого. Да, есть у него zero-cross. Радиатор это уже вторично. Хотелось бы конечно полноценный PID сделать. Значит мне теперь надо изучить, то как работать с периодами посредством значений полученых с PID. 

Насчет "временного управления", я думаю если поставить порог включения и отключения реле в районе 0.3 градусов, будет аналогичный эффект.

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

SLKH
Offline
Зарегистрирован: 17.08.2015

bwn пишет:

Не буду лазать по даташитам, сами посмотрите (если есть zero-cross, а скорее всего есть),

есть.

Цитата:
то только пропуск периодов. Понадобится датчик 0 сети
на кой? совершенно он не нужен.

 

Цитата:
и скорее всего радиатор для SSR.
это обязательно.

Almeder
Offline
Зарегистрирован: 26.03.2017

SLKH пишет:

bwn пишет:

Не буду лазать по даташитам, сами посмотрите (если есть zero-cross, а скорее всего есть),

есть.

Цитата:
то только пропуск периодов. Понадобится датчик 0 сети
на кой? совершенно он не нужен.

 

Цитата:
и скорее всего радиатор для SSR.
это обязательно.

Ах да, я опять забыл, можно "оталкиваться" от 50 Гц - тогда детектор нуля не нужен, нужно просто (конечно это не просто) состыковть данны PID c полупириодами от 50 Гц, а SSR законектить сразу на Arduino. Я правильно понял?

SLKH
Offline
Зарегистрирован: 17.08.2015

Almeder пишет:

 

Ах да, я опять забыл, можно "оталкиваться" от 50 Гц - тогда детектор нуля не нужен, нужно просто (конечно это не просто) состыковть данны PID c полупириодами от 50 Гц, а SSR законектить сразу на Arduino. Я правильно понял?

не надо тебе ни от чего отталкиваться. и ничего с полупериодами состыковывать не надо - т.е. SSR законектить сразу на Arduino

из разницы уставки и измеренной температуры выбираешь мощность, например, 0 - 25 - 50 - 75 - 100% номинала (хотя на самом деле это вряд ли нужно, в реале 0 - 50 -100%, скорее всего, достаточно).   

а дальше blink: http://arduino.ru/tutorials/BlinkWithoutDelay (нуждается в небольшой доработке напильником). 

например, режим "200 миллисекунд HIGH и 600  миллисекунд LOW" даст 25% мощности тэна - примерно, но точность тут никакая и не нужна.

 

 

bwn
Offline
Зарегистрирован: 25.08.2014

Almeder пишет:

Насчет "временного управления", я думаю если поставить порог включения и отключения реле в районе 0.3 градусов, будет аналогичный эффект.

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

Балластные резисторы от 220 вольт, а далее либо оптопара с встречно-параллельными светиками, если светик один, то либо диодный мост, либо шунтирование встречно-параллельным диодом. Но это лирика, тоже склоняюсь к временному управлению ТЭНом. По исполнению гораздо проще.

Almeder
Offline
Зарегистрирован: 26.03.2017

bwn пишет:

Балластные резисторы от 220 вольт, а далее либо оптопара с встречно-параллельными светиками, если светик один, то либо диодный мост, либо шунтирование встречно-параллельным диодом. Но это лирика, тоже склоняюсь к временному управлению ТЭНом. По исполнению гораздо проще.

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

SLKH
Offline
Зарегистрирован: 17.08.2015

Almeder пишет:

bwn пишет:

Балластные резисторы от 220 вольт, а далее либо оптопара с встречно-параллельными светиками, если светик один, то либо диодный мост, либо шунтирование встречно-параллельным диодом. Но это лирика, тоже склоняюсь к временному управлению ТЭНом. По исполнению гораздо проще.

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

твоя задачка (50 литров и 1,5 киловатта), скорее всего, решается вообще без заморочек: термостат 1/0 без гистерезиса + твердотельное реле с cross zero (на радиаторе).

Во всяком случае, начать следует именно с такой конфигурации. и только если точность не устроит - усложнять.

да, вопрос: какие, по твоему, будут температуры в разных точках твоего бака при 50 гдадусах на одиноком датчике?

 

bwn
Offline
Зарегистрирован: 25.08.2014

Almeder пишет:

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

Регулирование именно напряжения (диммер) имеет смысл только на световой аппаратуре. Нагревательные процессы вполне решаются дискретными методами управления.

Almeder
Offline
Зарегистрирован: 26.03.2017

bwn пишет:

 

Регулирование именно напряжения (диммер) имеет смысл только на световой аппаратуре. Нагревательные процессы вполне решаются дискретными методами управления.

Да, я это сразу понял. Я хочу научится управлять полупериодами. Так, чисто цель для себя.

SLKH
Offline
Зарегистрирован: 17.08.2015

Almeder пишет:

bwn пишет:

 

Регулирование именно напряжения (диммер) имеет смысл только на световой аппаратуре. Нагревательные процессы вполне решаются дискретными методами управления.

Да, я это сразу понял. Я хочу научится управлять полупериодами. Так, чисто цель для себя.

 #42.

 

bwn
Offline
Зарегистрирован: 25.08.2014

SLKH, у каждого свои тараканы.))))

Almeder, если так хочется, почитайте, там и библиотека есть.

SLKH
Offline
Зарегистрирован: 17.08.2015

bwn пишет:

SLKH, у каждого свои тараканы.))))

Almeder, если так хочется, почитайте, там и библиотека есть.

фазоимпульсное управление  в своей квартире нагрузкой 1.5 квт без крайней на то необходимости - извращение.