Stránka 2 z 3
Re: Plynula regulacia vykonu boilera
Napsal: pát kvě 26, 2023 8:17 am
od jumajazu
Lubik píše: ↑pon dub 17, 2023 7:19 pm
Prevodnik PWM to 0-10V:
Kód: Vybrat vše
https://www.laskakit.cz/prevodnik-pwm-na-napeti-0-10v/
Rád by som sa ešte opýtal na tento prevodník, tiež som ho použil na prevod PWM z ESP32 na 0-10 V na ovládanie SSR relé. Všetko funguje, zatiaľ s manuálnym nastavovaním výkonu 0-100% z Home Assistenta, ale s týmto prevodníkom mám dva problémy:
- vysoká teplota, podľa termokamery má pri prevádzke až okolo 50 stupňov, aj na dotyk sa veľmi hreje. Je to rovnaké aj u teba a máš na ňom prípadne nejaké chladenie?
- výstupné napätie na prevodníku, tu je problém, že aj pri nastavení 100% duty cycle na PWM vstupe neviem na výstupe dostať vyššie napätie ako 8,7 V. Kalibrácia potenciometrom nepomáha, dá sa ním nastaviť stredná hodnota 5V pri 50 % PWM, ale na hornú úroveň potenciometer nemá vplyv. Prevodník má pre vstup PWM písané napätie od 4,5 V, ESP32 dáva 3,3 V a funguje to, neviem, či by nižšie napätie na PWM vstupe mohlo mať vplyv na maximálnu hodnotu na výstupe 0-10 V, predpokladám, že nie. Ty to máš tiež zapojené priamo na výstup ESP32, vieš na výstupe prevodníka dosiahnuť 10 V?
Re: Plynula regulacia vykonu boilera
Napsal: sob kvě 27, 2023 10:43 am
od Lubik
S prevodnikom nemam ziaden problem.
Funguje bez problemov v celom rozsahu 0-10V (0-100% PWM).
Po tvojom prispevku som siel skontrolovat aj teplotu - vsetko je Ok, nic nehreje.
PWM vstup prevodnika je priamo zapojeny na pin (23) ESP32.
Tiez doplnim, ze napajacie napatie prevodnika mam 24V (pozor na jumper).
Re: Plynula regulacia vykonu boilera
Napsal: sob čer 17, 2023 2:20 pm
od Lubik
Update:
Vo vytazovaci, ktory riadi vykon boilera podla aktualneho odberu zo siete som presiel z Micropythonu na ESPhome.
Vyhody:
- zakladne rutiny ako sprava pripojenia k wifi, posielanie na MQTT, posielanie na Thingspeak su tu prakticky hotove, netreba vymyslat teplu vodu
- priamociara komunikacia s HomeAssistant
- ladenie, upravy a update kodu je mozne bez nutnosti fyzickeho pristupu k ESP32 (cez zerotier a HA)
Nevyhody:
- ??

Re: Plynula regulacia vykonu boilera
Napsal: pon říj 23, 2023 3:03 pm
od JiTr
To josse ... Jak dopadl pokus s VFD a odporovou zatezi?
Odesláno z mého SM-A346B pomocí Tapatalk
Re: Plynula regulacia vykonu boilera
Napsal: pon říj 23, 2023 7:35 pm
od Mex
U toho měniče snad není důvod, proč by to nemělo fungovat.
Nakonec se dá udělat jednoduchý pokus. Na výstup měniče připojit žárovku a sledovat, jak pěkně je možné regulovat jas.
Jsou tady tipy na převod PWM na analog 0-10V, a ten pak posílat do SSR, které z toho zase udělá PWM.
Proč neřídit rovnou výkonový spínací prvek nějakým ESP32 nebo třeba i nejhloupějším Arduinem?
To "analogové" SSR to zřejmě taky nedělá jinak.
Triak (s rozumně dimenzovaných chladičem), před něho optotriak, a ten se už dá honit přímo Arduinem/ESP32/RPi/co já vím čím vším.
Jen to chce ještě zpětnou vazbu přes další optron, aby spínající procesor věděl o průchodu nulou a mohl tak lineárně posouvat čas sepnutí triaku.
Jsou to součástky dohromady ani ne za stovku (bez toho Arduina/ESP32/...).
Re: Plynula regulacia vykonu boilera
Napsal: pon říj 23, 2023 8:04 pm
od mopadzi
zajímá mne ta regulace měničem. Jak je nakonfigurovaný
na regulaci amlitudy s malým delta f?
Re: Plynula regulacia vykonu boilera
Napsal: pon říj 23, 2023 8:16 pm
od josse
JiTr píše:To josse ... Jak dopadl pokus s VFD a odporovou zatezi?
Odesláno z mého SM-A346B pomocí Tapatalk
Testy dobře, ale než jsem z nadety dostal správnou spirálu, v každé komunikaci jim píšu nebo do telefonu říkám, nechci 3x400, chci 3x230, jojo, všechno umíme, není problém, dvakrát poslali špatně, dvakrát jsem čekal 8 týdnů. Nakonec mi dali kontakt do firmy kde to vyráběli, po konzultaci jsem rozebrat a zapojil jak potřebuju... Naštěstí to šlo změnit z Y na D. Takže jsem test udělal krátký, někdy v září kdy už jsem moc přebytků neměl. Letovaný to je pájkou co teče propanem... Naštěstí. Konec odbočky.
Měl jsem zkušenost se stejným typem VFD s motory, to se chová k elektrárně korektně, nevýhoda je dimenzování proudu na účiník 0.7 to znamená cca 1.5x vodiče a jističe (VFD nemají PFC). Měnil jsem frekvenci, podle toho se mění výkon/příkon. Vybral jsem si vfd 4kW, 230/230. S kolegou v práci budeme zkoušet tlumivky před usměrňovač. Nějakou jsme našli a udělal jsem zlepšení PF z 0.66 na 0.72, bez měřitelné změny činného příkonu (sice je to další úbytek navíc, ale vyrovná se to snížení úbytku v VFD díky nižšímu proudu. Měřeno elektroměrem s rozlišením na jednotky W.
Víc jsem se tomu nevěnoval, velkou nádrž ještě nemám. Léto i podzim stejně skončili. Rozdíl v ceně VFD vs. SSR určitě je, ale ty fázové SSR taky nejsou nejlevnější a tohle má v sobě už modbus, měří to napětí DC a výstupní napětí a výstupní proud. Takže pro mě možná i výhodnější než to skládat, tepelná ochrana, ventilátor. Nevýhodu vidím v životností elektrolytických kondenzátorů, SSR žádné nemá. Uvidíme. U čerpadla už to je roky, je trvale pod napětím a zatím ok. Měnič neumí autotune do odporů když se mu nic netočí, ale není potřeba, funguje i s factory defaults.
Re: Plynula regulacia vykonu boilera
Napsal: pon říj 23, 2023 8:19 pm
od josse
Mex píše:U toho měniče snad není důvod, proč by to nemělo fungovat.
Nakonec se dá udělat jednoduchý pokus. Na výstup měniče připojit žárovku a sledovat, jak pěkně je možné regulovat jas.
Jsou tady tipy na převod PWM na analog 0-10V, a ten pak posílat do SSR, které z toho zase udělá PWM.
Proč neřídit rovnou výkonový spínací prvek nějakým ESP32 nebo třeba i nejhloupějším Arduinem?
To "analogové" SSR to zřejmě taky nedělá jinak.
Triak (s rozumně dimenzovaných chladičem), před něho optotriak, a ten se už dá honit přímo Arduinem/ESP32/RPi/co já vím čím vším.
Jen to chce ještě zpětnou vazbu přes další optron, aby spínající procesor věděl o průchodu nulou a mohl tak lineárně posouvat čas sepnutí triaku.
Jsou to součástky dohromady ani ne za stovku (bez toho Arduina/ESP32/...).
Pro mě je velká výhoda ten modbus, má ho to od přírody, soc beru z balanceru taky komunikací... K SSR bych musel něco bastlit a byl jsem líný.
Re: Plynula regulacia vykonu boilera
Napsal: pon říj 23, 2023 11:05 pm
od Mex
josse píše: ↑pon říj 23, 2023 8:16 pm
...
Měnič neumí autotune do odporů když se mu nic netočí, ale není potřeba, funguje i s factory defaults.
Autotuning má smysl při provozu měniče ve vektorovém režimu.
Ale pokud to má fungovat do odporů, tak je nutné použít skalární režim.
A tam je autotuning o ničem, tam nemá co tunit.
Používat factory defaults není (podle mě) dobrý nápad.
Chtělo by to nastavit minimálně max. napětí a proud, a taky případně ohnutí křivky U/f kolem nuly.
I když to ohnutí možná pro odpory nebude nutné a bude možné to provozovat s lineární závislostí.
Re: Plynula regulacia vykonu boilera
Napsal: úte říj 24, 2023 6:05 am
od josse
Mex píše:josse píše: ↑pon říj 23, 2023 8:16 pm
...
Měnič neumí autotune do odporů když se mu nic netočí, ale není potřeba, funguje i s factory defaults.
Autotuning má smysl při provozu měniče ve vektorovém režimu.
Ale pokud to má fungovat do odporů, tak je nutné použít skalární režim.
A tam je autotuning o ničem, tam nemá co tunit.
Používat factory defaults není (podle mě) dobrý nápad.
Chtělo by to nastavit minimálně max. napětí a proud, a taky případně ohnutí křivky U/f kolem nuly.
I když to ohnutí možná pro odpory nebude nutné a bude možné to provozovat s lineární závislostí.
Hmm, když mám 4kW měnič a 4kW odpory, co bych jako měl měnit na napětí a proudu? A proč bych to ohýbal, když chci lineární závislost?
Re: Plynula regulacia vykonu boilera
Napsal: úte říj 24, 2023 7:08 am
od mopadzi
přiznám se do hloubky jsem o tom nepřemýšlel. Ale představoval jsem si že nastavím nějaký menší rozsah frekvence a k tomuto rozsahu lineáení růběh výstupního napětí min-max. takže teoreticky by to mělo generovat sinusovku s proměnlivou amlitudou dle frekvence. Mýlím se?
Re: Plynula regulacia vykonu boilera
Napsal: úte říj 24, 2023 12:59 pm
od josse
mopadzi píše:přiznám se do hloubky jsem o tom nepřemýšlel. Ale představoval jsem si že nastavím nějaký menší rozsah frekvence a k tomuto rozsahu lineáení růběh výstupního napětí min-max. takže teoreticky by to mělo generovat sinusovku s proměnlivou amlitudou dle frekvence. Mýlím se?
To sedí. V/F je výchozí.
U motorů slouží jako ochrana vinutí, nám to na odporu udělá lineární změnu příkonu. (Asi nemám pravdu, viz níže)
Výstupní napětí je maximální, u motoru nominální, u odporu taky nominální. Pak už jen měním frekvenci. Když 50Hz==230V, pak 25Hz==115V. Teď mě napadá, že napětí je lineární, ale příkon ne, ten je na druhou. O to se ale postará pomalý PID regulátor, tomu to bude jedno jestli to je v první nebo druhé mocnině.
Re: Plynula regulacia vykonu boilera
Napsal: stř led 24, 2024 6:54 am
od Lubik
Pridavam yaml skript, ktory to teraz riadi.
Je to v stadiu "neustaleho vylepsovania"

, aj ked je pravda, ze som do toho uz dlhsie nesahal. V pripade nejasnosti funkcionality konkretnych casti kodu, pytajte sa sem, pokusim sa odpovedat.
PS: Pozor na odsadenie riadkov.
Kód: Vybrat vše
esphome:
name: esphome-web-07b4a4
friendly_name: Vytazovac_EH
#esp32_ble_tracker:
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "121SMK+ddD8QCEOrlmjI9I7nS+pMQc9bV91hf6pHRwQ="
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esphome-Web-07B4A4"
password: "56U1EfwQElyE"
mqtt:
broker: mqtt.flespi.io
port: 1883
username: !secret mqtt_user
password: !secret mqtt_password
topic_prefix: "vytazovac_esphome"
captive_portal:
dallas:
- pin: GPIO5
sensor:
- platform: dallas
address: 0x0f3c2de381621b28
#index: 0
id: teplota_boilera
name: "Teplota boiler"
- platform: template
device_class: "power"
unit_of_measurement: "W"
name: "Power_menic"
id: power_menic
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 5
- platform: template
device_class: "power"
unit_of_measurement: "W"
name: "Power_boiler"
id: power_boiler
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 5
- platform: template
device_class: "power"
unit_of_measurement: "W"
name: "Power_siet"
id: power_siet
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 5
- platform: template
device_class: "power"
unit_of_measurement: "W"
name: "Power_bez_boilera"
id: power_bez_boilera
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 5
globals:
- id: set_power_g
type: int
restore_value: yes
#initial_value: '120'
- id: temporary
type: float
restore_value: no
initial_value: '0'
- id: max_temp
#teplota, pri ktorej sa znizi vykon zo siete na min.
type: int
restore_value: yes
initial_value: '50'
output:
- platform: ledc
pin: GPIO23
id: pwm_boiler
frequency: "2000Hz"
inverted: false
min_power: 0
max_power: 1
number:
- platform: template
id: number_nastav_vykon
min_value: 100
max_value: 2500
#initial_value: 200
restore_value: True
step: 20
name: Nastav vykon zo siete
unit_of_measurement: "W"
set_action:
then:
- lambda: |-
id(set_power_g) = x;
//id(set_power_g).publish_state(x);
// pre rucne nastavenie vykonu priamo
//float level = x / 2200;
//id(pwm_boiler).turn_on();
//id(pwm_boiler).set_level(level);
http_request:
useragent: esphome/device
id: http_request_data
timeout: 1s
time:
- platform: sntp
on_time:
# zverejnenie dat na MQTT
- seconds: /3
then:
- mqtt.publish_json:
topic: json_akt
payload: |-
root["teplota_boilera"] = id(teplota_boilera).state;
root["power_menic"] = id(power_menic).state;
root["power_boiler"] = id(power_boiler).state;
root["power_siet"] = id(power_siet).state;
root["power_bez_boilera"] = id(power_bez_boilera).state;
root["set_power"] = id(set_power_g);
root["set_boiler"] = id(temporary);
- platform: sntp
on_time:
#nastav min vykon zo siete, ak je zapnuty dohrev zo siete vyssim vykonom a bola dosiahnuta max teplota (50~C)
- seconds: 0
minutes: /1
then:
- if:
condition:
and:
- lambda: return id(set_power_g) > 200;
- lambda: return id(teplota_boilera).state > 55;
then:
- lambda: id(set_power_g) = 100;
- platform: sntp
on_time:
#dohrev plnym vykonom poobede o 15-tej
- seconds: 0
minutes: 0
hours: 14
then:
- lambda: id(set_power_g) = 2500;
- platform: sntp
on_time:
# nacitanie dat zo Shelly3em a riadenie vykonu boilera
- seconds: /1
#minutes: /5
then:
- http_request.get:
url: http://192.168.88.10/status
headers:
Content-Type: application/json
verify_ssl: false
on_response:
then:
- if:
condition:
lambda: |-
return status_code == 200;
then:
lambda: |-
json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
float menic = root["emeters"][0]["power"];
float boiler = root["emeters"][1]["power"];
float siet = root["emeters"][2]["power"];
id(power_menic).publish_state(menic);
id(power_boiler).publish_state(boiler);
id(power_siet).publish_state(siet);
id(power_bez_boilera).publish_state(menic + siet - boiler);
float reg_odchylka = id(set_power_g) - siet;
float kp = 1.2;
float ki = 1;
float vykon_boilera = (kp * reg_odchylka) + (ki * id(temporary));
if (vykon_boilera > 2200) {
vykon_boilera = 2200;
}
if (vykon_boilera < 0) {
vykon_boilera = 0;
}
id(temporary) = vykon_boilera;
float pwm_level = vykon_boilera / 2200;
id(pwm_boiler).turn_on();
id(pwm_boiler).set_level(pwm_level);
});
#else:
# - lambda: "id(emeters_json).publish_state(0);"
Re: Plynula regulacia vykonu boilera
Napsal: sob kvě 18, 2024 11:43 pm
od _petronie_
Ahoj, rozhodl jsem se inspirovat a na základě poskytnutého návodu replikovat poskytnutou regulaci vykonu bojleru, akorát jsem se rozhodl to "zesložitit" a chtěl bych tam dodat omezení výkonu topné spirály. Mám 3.3 kW tak bych ho chtěl mít možnost ho takto jednoduše omezit. Bohužel mám problém se samotnou regulací - dochází k častým změnám výkonu (neustálí se ani v případě přebytku). Nemá to náhodou někdo již řešeno a vyřešeno? Děkuji.
P.S: - bohužel SSR mi přestalo fungovat, takže aktuálně jsem bez jakékoliv regulace
Kód: Vybrat vše
esphome:
name: esp32-fve-bojler
friendly_name: ESP32-FVE-BOJLER
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
# Enable logging
logger:
#level: VERBOSE
# Enable Home Assistant API
api:
encryption:
key: "K7GWQodC/OptYbhLgcgSKfS4bFqGz/gBaKb83iSE25A="
ota:
password: "dd0a388481157ffc73047665794e1af2"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Optional manual IP
manual_ip:
static_ip: 192.168.20.193
gateway: 192.168.20.1
subnet: 255.255.255.0
#musi byt funcni kvuli SNTP
dns1: 8.8.8.8
dns2: 1.1.1.1
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32-Fve-Bojler"
password: "6gYeolv76F5p"
captive_portal:
web_server:
port: 80
globals:
#nominální výkon topne spiraly bojleru
- id: max_power_g
type: float
restore_value: yes
initial_value: '3300'
- id: temporary
type: float
restore_value: no
initial_value: '0'
#aktualni vykon stridace v pripade zaporu dodava do site
- id: siet
type: float
restore_value: no
#initial_value: '0'
#minimalni zachovaný pretok pri zapnutem bojleru na který se reguluje výkon do bojleru
- id: pretok
type: float
restore_value: yes
initial_value: '-50'
- id: max_temp
#teplota, pri ktorej sa znizi vykon zo siete na min.
type: float
restore_value: yes
initial_value: '70'
- id: update_interval
type: int
initial_value: '5' # Automation execution interval (seconds)ds)
restore_value: yes
output:
- platform: ledc
pin: GPIO8
id: pwm_boiler
frequency: "2000Hz"
inverted: false
min_power: 0
max_power: 1
sensor:
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "Bojler WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
- platform: copy # Reports the WiFi signal strength in %
source_id: wifi_signal_db
name: "Bojler WiFi Signal Percent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "Signal %"
entity_category: "diagnostic"
device_class: ""
# mereny vykon bojleru ze Shelly PM
- platform: template
device_class: "power"
unit_of_measurement: "W"
name: "Power_boiler"
id: power_boiler
filters:
- sliding_window_moving_average:
window_size: 2
send_every: 2
#vykon stridace v pripade zaporu dodava do site
- platform: template
device_class: "power"
unit_of_measurement: "W"
name: "Power_siet"
id: power_siet
filters:
- sliding_window_moving_average:
window_size: 2
send_every: 2
- platform: template
device_class: "Voltage"
unit_of_measurement: "V"
accuracy_decimals: 3
name: "PWM Boiler Voltage"
id: pwm_boiler_voltage
- platform: template
device_class: "power"
unit_of_measurement: "W"
name: "Power_bez_boilera"
id: power_bez_boilera
filters:
- sliding_window_moving_average:
window_size: 2
send_every: 2
#teplota bojleru
- platform: template
device_class: "temperature"
unit_of_measurement: "C"
name: "teplota_boiler"
id: teplota_boiler
filters:
- sliding_window_moving_average:
window_size: 2
send_every: 2
number:
- platform: template
#maximalní (instalovany) výkon spiraly
id: number_nastav_vykon
min_value: 0
max_value: 3300
#initial_value: 200
restore_value: True
step: 20
name: Nastav maximalni vykon bojleru
unit_of_measurement: "W"
set_action:
then:
- lambda: |-
id(number_nastav_vykon).publish_state(x);
//float max_power_g = x;
//ESP_LOGD("logger", "max_power_g slider Value: %f", id(max_power_g));
//id(max_power_g).publish_state(x);
//float max_power_g = number_nastav_vykon;
// pre rucne nastavenie vykonu priamo
//float level = x / 3300;
//id(pwm_boiler).turn_on();
//id(pwm_boiler).set_level(level);
http_request:
useragent: esphome/device
id: http_request_data
timeout: 1s
time:
- platform: sntp
on_time:
# nacitanie dat zo Shelly3em a riadenie vykonu boilera, musi mit SNTP funkcni
- seconds: /2
#minutes: /5
then:
#celkovy vykon stridace do site (zaporna hodnota)
- http_request.get:
url: http://192.168.20.160/status
headers:
Content-Type: application/json
verify_ssl: false
on_response:
then:
- logger.log:
format: 'Response status: %d'
args: [status_code]
- if:
condition:
lambda: |-
return status_code == 200;
then:
lambda: |-
json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
float siet = root["total_power"];
id(power_siet).publish_state(siet);
});
#vykon do bojleru
- http_request.get:
url: http://192.168.20.165/rpc/Switch.GetStatus?id=0
headers:
Content-Type: application/json
verify_ssl: false
on_response:
then:
- if:
condition:
lambda: |-
return status_code == 200;
then:
lambda: |-
json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
float boiler = root["apower"];
id(power_boiler).publish_state(boiler);
});
#teplota bojleru
- http_request.get:
url: http://192.168.20.165/rpc/Temperature.GetStatus?id=100
headers:
Content-Type: application/json
verify_ssl: false
on_response:
then:
- if:
condition:
lambda: |-
return status_code == 200;
then:
lambda: |-
json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
float teplota = root["tC"];
id(teplota_boiler).publish_state(teplota);
});
- seconds: /5
#minutes: /5
then:
- if:
#vypocet vykonu
condition:
#je splnena dodavka do site a teplota bojleru je pod maximem
and:
- lambda: return id(power_siet).state < 0;
- lambda: return id(teplota_boiler).state < id(max_temp);
- lambda: return id(number_nastav_vykon).state > 40;
then:
lambda: |-
float kp = 0.125;
float ki = 0.95;
//float vykon_boilera = abs(id(power_siet).state);
//float reg_odchylka = id(pretok) - id(power_siet).state + id(power_boiler).state;
float reg_odchylka = id(pretok) - id(power_siet).state - id(power_boiler).state;
//float reg_odchylka = id(pretok) - id(power_siet).state;
float vykon_boilera = (kp * reg_odchylka) + (ki * id(temporary));
//float vykon_boilera = id(pretok) - id(power_siet).state;
ESP_LOGI("logger", "Regulacni odchylka (prebytkovy vykon) je %f", reg_odchylka);
if (vykon_boilera > id(number_nastav_vykon).state) {
vykon_boilera = id(number_nastav_vykon).state;
}
//zaporna hodnota neni mozna
if (vykon_boilera < 0) {
vykon_boilera = 0;
}
id(temporary) = vykon_boilera;
ESP_LOGI("logger", "Vykon bojleru (po aplikaci horni hranice) je spocitany na %f", vykon_boilera);
if (vykon_boilera > 0) {
float pwm_level = vykon_boilera / id(max_power_g);
id(pwm_boiler_voltage).publish_state(pwm_level);
//float pwm_level = vykon_boilera / 3300.0;
ESP_LOGD("logger", "max_power_g Value: %f", id(max_power_g));
ESP_LOGD("logger", "number_nastav_vykon Value: %f", id(number_nastav_vykon).state);
ESP_LOGI("logger", "Uroven PWM je spocitana na %f", pwm_level);
id(pwm_boiler).turn_on();
id(pwm_boiler).set_level(pwm_level);
} else {
id(pwm_boiler).turn_on();
id(pwm_boiler).set_level(0);
id(pwm_boiler_voltage).publish_state(0);
}
else:
- lambda: id(pwm_boiler).set_level(0);
- lambda: id(temporary) = 0;
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 8:20 am
od eduard22
Já mám jen takovou teoretickou myšlenku: halogonová světla na jevišti na 230V/50Hz AC i o několika kW, se regulují puzně, ale v MHz , aby
světla neblikala a pulzy nerušily audio aparaturu a regulují se ručně potenciometrem. Tedy se ten pulzní regulátor řídí změnou DC napětí.
No ale výstup z měniče mění výkon, nikoliv napětí, to je stále 230V a AC. Co s tím?
No řítit ten pulzní regulátor DC napětím z panelů, které se mění od rána čili od nuly, přes nějakou max hodnotu vpolende či dle mraků až po nulu zase večer.
Nyní najít šikulu, co umí navrhnout takový vysokovfrekvenční pulzní regulátor a to výkonový (3kW) a pro AC 230V řízený DC napětím z panelů.

Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 11:16 am
od Cmrnda
_petronie_ píše: ↑sob kvě 18, 2024 11:43 pm
P.S: - bohužel SSR mi přestalo fungovat, takže aktuálně jsem bez jakékoliv regulace
SSR se dává 5x proudově silnější než jištění před spotřebičem jističem typu B. Bez toho se neobejdeš.Jestli použiješ na konec tranzistory, máš na problém zaděláno mnohem víc, než s tím triakem, nebo 2xty.
Mám běžný SSR, nikoli spínaný nulou, nebo frekvenční řízené napětím nebo proudem, či PWM, způsobující navíc akorát rušení a nestabilitu.
ESP32 je OK, stačí k tomu to relé a napáječ.
Proč něco dělat zbytečně složitě, když lepší výsledek bude s minimen součástek.

Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 11:51 am
od skybor
Mám rok v provozu něco podobného a žádný problém. SSR spínané v nule (PWM), které řídí PLC Siemens LOGO, ale asi je v principu jedno co jej řídí. SSR je na 40A (a je na chladiči) a řídí bojler 1,5kW. Ani o tom systému vlastně nevím. Je to zapnuté nonstotp, a když stoupne napětí na baterce nad nastavenou mez, tak to začne plynule regulovat výkon do bojleru, tak aby napětí na baterce neklesalo. Uvažoval jsem původně taky o tom fázově řízeném SSR, ale leží mi rok v šuplíku a asi jej už nepoužiju.
Dneska byl start ohřevu bojleru, kvůli horšímu počasí, trochu pozdější. Ale běžně v toto období bývá v poledne voda ohřátá. na 80°C.
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 12:52 pm
od Cmrnda
Chladič to chce, čím větší plocha, tím lepší. Pulz balancování je bez umělého zdržování, záleží jen na rychlosti procesoru, takže lze řídit i spotřebu bojleru od 1W do max.výše.
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 1:15 pm
od skybor
A takhle nějak se to pak chová v praxi ...
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 2:15 pm
od Cmrnda
Já si monitoruju akorát energii kterou je možný dodat do bjleru podle předešlých výpočtů.
Bojler má svůj mechanický termostat, svůj mechanický teploměr, svojí kontrolku pro indikaci, zda se bojler nabíjí. Při omezené energii z hlediska malého výkonu na FVP je podle šířky střídy blikání poznat jak to vypadá venku.

Tento stav je monitorován a nahráván, tedy pokuďje zapnuté nahrávání programu.
Nejdůležitější je stejně práce s časem, např. aby se bojler nenabíjel po 20hod do 6:30 ráno, ale aby byl v 8:00 nahřátý za každou cenu, a další indivuduální nastavení....
Jinak od začátku března se mi bojler nikdy nenabíjel ze sítě.
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 2:37 pm
od eduard22
Já ohřev limituju Tapo zásuvkama a krom omezení na den od 10.h a vždy po 1h s 1h mezerou dalšího pokusu , kdyby nesvítilo moc aby se doplnila aku a pak zase 1h a pak už vypne termostat, mám ještě odpoledne časy sepnutí dovoleny jen v čase NT a přes zimu , neníli navíc jasno nepovoluji ohřev dopoledne ale jen odpo s NT, kdyby musela vypomoci síť, tak alespoň za levněji.
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 2:46 pm
od Mex
skybor píše: ↑ned kvě 19, 2024 11:51 am
Mám rok v provozu něco podobného a žádný problém. SSR spínané v nule (PWM), které řídí PLC Siemens LOGO, ale asi je v principu jedno co jej řídí. SSR je na 40A (a je na chladiči) a řídí bojler 1,5kW. Ani o tom systému vlastně nevím. Je to zapnuté nonstotp, a když stoupne napětí na baterce nad nastavenou mez, tak to začne plynule regulovat výkon do bojleru, tak aby napětí na baterce neklesalo. Uvažoval jsem původně taky o tom fázově řízeném SSR, ale leží mi rok v šuplíku a asi jej už nepoužiju.
Dneska byl start ohřevu bojleru, kvůli horšímu počasí, trochu pozdější. Ale běžně v toto období bývá v poledne voda ohřátá. na 80°C.
To "plynule regulovat" máš realizováno po jednotlivých sinusovkách (třeba jednu periodu 50Hz zapnuto, další 2 periody vypnuto) nebo to máš po delších úsecích?
Pokud po periodách - jak se to měniči líbí?
A máš to synchronizované na celé vlny, aby nevznikala zbytečně DC složka při spínání jen půlvln?
Díky.
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 2:55 pm
od Mex
eduard22 píše: ↑ned kvě 19, 2024 8:20 am
Já mám jen takovou teoretickou myšlenku: halogonová světla na jevišti na 230V/50Hz AC i o několika kW, se regulují puzně, ale v MHz , aby
světla neblikala a pulzy nerušily audio aparaturu a regulují se ručně potenciometrem. Tedy se ten pulzní regulátor řídí změnou DC napětí.
No ale výstup z měniče mění výkon, nikoliv napětí, to je stále 230V a AC. Co s tím?
No řítit ten pulzní regulátor DC napětím z panelů, které se mění od rána čili od nuly, přes nějakou max hodnotu vpolende či dle mraků až po nulu zase večer.
Nyní najít šikulu, co umí navrhnout takový vysokovfrekvenční pulzní regulátor a to výkonový (3kW) a pro AC 230V řízený DC napětím z panelů.
Pokud to používá nějaké spínání na vysoké frekvenci, tak bych si tipnul, že to pojede z DC.
Tedy usměrní AC ze sítě a PWM regulací s filtrací (tedy DC-DC měničem) pak honí ta světla.
Jen bych si myslel, že to asi nebude v řádu MHz, ale spíš nějaké desítky kHz (nad slyšitelným pásmem). Když se mají spínat takové výkony.
To ale na věci nic nemění.
Píšeš, že výstup je zase AC. To víš nebo si to myslíš?
Jakou výhodu by mělo, kdyby to bylo AC (navíc na 50 Hz), které interferuje s kamerama?
Tady by podle mě naopak DC výstup (a tedy kontinuální svit bez blikání) byl určitě lepší.
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 3:19 pm
od skybor
To "plynule regulovat" máš realizováno po jednotlivých sinusovkách (třeba jednu periodu 50Hz zapnuto, další 2 periody vypnuto) nebo to máš po delších úsecích?
Možná, že výraz "plynulá regulace" nebude úplně přesný, ale pro tyto ůčely je ta "plynulost" asi víc než dostatečná. Jde o 50 výkonových (poměrových) stupňů. Usek jedné sekundy rozdělený na 50 úseků v délce celé periody. Zatím s tím žádný měnič, se kterým jsem to zkoušel, problém neměl.
Re: Plynula regulacia vykonu boilera
Napsal: ned kvě 19, 2024 3:33 pm
od eduard22
Mex píše: ↑ned kvě 19, 2024 2:55 pm
Pokud to používá nějaké spínání na vysoké frekvenci, tak bych si tipnul, že to pojede z DC.
Tedy usměrní AC ze sítě a PWM regulací s filtrací (tedy DC-DC měničem) pak honí ta světla.
Jen bych si myslel, že to asi nebude v řádu MHz, ale spíš nějaké desítky kHz (nad slyšitelným pásmem). Když se mají spínat takové výkony.
To ale na věci nic nemění.
Píšeš, že výstup je zase AC. To víš nebo si to myslíš?
Jakou výhodu by mělo, kdyby to bylo AC (navíc na 50 Hz), které interferuje s kamerama?
Tady by podle mě naopak DC výstup (a tedy kontinuální svit bez blikání) byl určitě lepší.
Už si to nepamatuju jestli do bylo na výstupu pro světla usměrněný to fakt už nevím :-/, ale tuším, že triaky byly tehdá dva proti sobě (asi pro každou půlvunu jeden) pulzovaly (řízené pulzy z IO NE555), asi tedy v kHz nad slyšitelným pásmem, už nevím kolik kHz a to bez ohledu na sinusoudu a její průchod nulou. A měnily poměr mezery a sepnutí v těchto rychlých pulzech právě i uprostřed sinusoudy. Asi jako když za socíku u staré vrtačky Narex na 230V/50Hz nebyl regulátor otáček a tak jsi jej simuloval rychlým opakováním mačkáním vypínače tzv. jsi jen brnkal. A proto ty kHz nad slyšitelným pásmem, jinak by to prskalo rušilo audioaparatůru
