Vai al contenuto

Messaggi raccomandati

Inviato
14 ore fa, Salvogi ha scritto:

Non so a che frequenza corrisponde Q10 ma dal grafico che hai postato sembra che il PID sia scalibrato o che il relè ssr stia lavorando on/off per via della frequenza troppo elevata.
Riporto, ad esempio, il grafico del riscaldamento della mia stampante.

Temperatura.jpg.78f56dc148f23a34932655fb0f88db54.jpg

Il nozzle che funziona con il controllo PID, si stabilizza alla temperatura corretta mentre il piatto che non ha controllo PID (perchè ho un relè elettromeccanico e quindi vado solo on/off) continua ad oscillare attorno alla temperatura impostata per tutta la durata della stampa.

Se sei riuscito ad impostare una frequenza PWM di pochi Hz, mi dici come ci sei riuscito?

considera che quel grafico che ho postato era proprio un PID autotune, in RRF l'autotune prevede di portare la temperatura al valore impostato (nel mio caso 100°) e 5° al di sotto di tale valore, è l'algoritmo della taratura che lo prevede per poi darti i valori da impostare.. quella linea ondulata infatti va da 100 a 95 gradi per tot cicli (se non specifichi i cicli fa RRF - con flag C8 per 8 cicli - fa da solo fino a quando non è soddisfatto).

in caso di funzionamento normale - quindi riscaldamento del piatto per stampa a 100° - la temp resta poi fissa come nel tuo caso del nozzle in rosso, non oscilla.

il comando di autotune del PID del bed a 100° è M303 H0 S100, ma nel config.g di RRF quando crei l'entità con il comando M950 puoi impostare Q10 che sarebbe appunto una frequenza di 10Hz, che è quella consigliata per gli SSR di un bed, con il comando M307 invece imposti tale entità con i valori PID.

qui la sezione specifica dei due heater, bed e hotend, del mio config.g già tarato.

ps: la flag B0 nel comando M307 non è necessaria ma l'ho lasciata perchè boh 😄

; Bed Heater
M308 S0 P"e0temp" Y"thermistor" T100000 B3950           ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"e0heat" T0 Q10                                ; create bed heater output on bed and map it to sensor 0
M307 H0 R0.746 C288.9 D4.68 S1.00 B0                    ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0                                                 ; map heated bed to heater 0
M143 H0 S135                                            ; set temperature limit for heater 0 to 135C

; Hotend Heater
M308 S1 P"e1temp" Y"thermistor" T100000 B3950           ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e1heat" T1                                    ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 R3.400 C28.4 D7.36 S0.50 B0                     ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280                                            ; set temperature limit for heater 1 to 280C

con la flag S in M307 di RRF imposti il PWM che nel caso dell'SSR del bed è 1.0 (100%), per l'hotend invece il PWM che ho trovato ideale è 50% (S0.5) in quanto questo ti permette di controllare più finemente la temp da raggiungere evitandone l'overshoot.

nel mio caso con il Dragon e una cartuccia da 24v 50w se lascio PWM a S1.0 se faccio l'autotune del PID a es: 240° il nozzle arriva anche a 250°, per poi oscillare non dei -5° che ho menzionato prima e quindi ci sono problemi nel trovare i valori corretti.. quindi prima di fare un autotune è bene trovare un valore PWM adatto in modo che effettivamente se tu porti a 240 lui a 240 arrivi, nel mio caso con PWM tra S0.4 e S0.5.

  • Like 1
Inviato
51 minuti fa, r88tl3ss ha scritto:

considera che quel grafico che ho postato era proprio un PID autotune, in RRF l'autotune prevede di portare la temperatura al valore impostato (nel mio caso 100°) e 5° al di sotto di tale valore, è l'algoritmo della taratura che lo prevede per poi darti i valori da impostare.. quella linea ondulata infatti va da 100 a 95 gradi per tot cicli (se non specifichi i cicli fa RRF - con flag C8 per 8 cicli - fa da solo fino a quando non è soddisfatto).

in caso di funzionamento normale - quindi riscaldamento del piatto per stampa a 100° - la temp resta poi fissa come nel tuo caso del nozzle in rosso, non oscilla.

il comando di autotune del PID del bed a 100° è M303 H0 S100, ma nel config.g di RRF quando crei l'entità con il comando M950 puoi impostare Q10 che sarebbe appunto una frequenza di 10Hz, che è quella consigliata per gli SSR di un bed, con il comando M307 invece imposti tale entità con i valori PID.

qui la sezione specifica dei due heater, bed e hotend, del mio config.g già tarato.

ps: la flag B0 nel comando M307 non è necessaria ma l'ho lasciata perchè boh 😄


; Bed Heater
M308 S0 P"e0temp" Y"thermistor" T100000 B3950           ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"e0heat" T0 Q10                                ; create bed heater output on bed and map it to sensor 0
M307 H0 R0.746 C288.9 D4.68 S1.00 B0                    ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0                                                 ; map heated bed to heater 0
M143 H0 S135                                            ; set temperature limit for heater 0 to 135C

; Hotend Heater
M308 S1 P"e1temp" Y"thermistor" T100000 B3950           ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e1heat" T1                                    ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 R3.400 C28.4 D7.36 S0.50 B0                     ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280                                            ; set temperature limit for heater 1 to 280C

con la flag S in M307 di RRF imposti il PWM che nel caso dell'SSR del bed è 1.0 (100%), per l'hotend invece il PWM che ho trovato ideale è 50% (S0.5) in quanto questo ti permette di controllare più finemente la temp da raggiungere evitandone l'overshoot.

nel mio caso con il Dragon e una cartuccia da 24v 50w se lascio PWM a S1.0 se faccio l'autotune del PID a es: 240° il nozzle arriva anche a 250°, per poi oscillare non dei -5° che ho menzionato prima e quindi ci sono problemi nel trovare i valori corretti.. quindi prima di fare un autotune è bene trovare un valore PWM adatto in modo che effettivamente se tu porti a 240 lui a 240 arrivi, nel mio caso con PWM tra S0.4 e S0.5.

Ok, ora ci siamo 10Hz per un SSR potrebbe andare, quindi se installo un SSR utilizzerò il tuo codice "Bed Heater".

  • Like 1
Inviato

Attento, l'ssr è progettato per essere usato come interruttore. Mentre, su inverter o roba del genere vengono usati triac o scr. 

Chiaro che nella abitazione di casa, dove ci sono i 50hz, non vai oltre ma ciò non vuol dire che non può funzionare a frequenze maggiori. 

Dimenticavo che l'utente monta un ibrido tra skr pro e rrf, nel caso usasse marlin il problema non si pone. 

Nel caso del bed, aumentare o diminuire la frequenze non porta a grossi cambiamenti se il controllo PID è fatto bene. 

Partecipa alla conversazione

Puoi pubblicare ora e registrarti più tardi. Se hai un account, accedi ora per pubblicarlo con il tuo account.

Ospite
Rispondi a questa discussione...

×   Hai incollato il contenuto con la formattazione.   Rimuovere la formattazione

  Sono consentiti solo 75 emoticon max.

×   Il tuo collegamento è stato incorporato automaticamente.   Mostra come un collegamento

×   Il tuo contenuto precedente è stato ripristinato.   Pulisci editor

×   Non puoi incollare le immagini direttamente. Carica o inserisci immagini dall'URL.


×
×
  • Crea Nuovo...