Welcome! Log In Create A New Profile

Advanced

Cr-10 Marlinkimbra autotune fallito.

Posted by Ohmmasters 
Re: Cr-10 Marlinkimbra autotune fallito.
June 25, 2018 05:28PM
Bravo ottimo lavoro, ma permettimi di dire una cosa...
#define BED_PID_DRIVE_MIN  255

In questo modo hai messo che il valore minimo per il bed è 255 e il massimo che è già settato è 255, questo vuol dire che piloterai il bed sempre al massimo quindi sempre acceso.
Ma visto che nella gestione del calcolo del pwm c'è questa parte;
else if (difference > PID_FUNCTIONAL_RANGE) {
        soft_pwm = pidMax;
        tempIState = tempIStateLimitMin;
      }
      else if (difference < -(PID_FUNCTIONAL_RANGE) || target_temperature == 0)
        soft_pwm = 0;

Cosa succede, che quando la temperatura è compresa tra target e PID_FUNCTIONAL_RANGE (10) la pwm è sempre al massimo, ma quando supera di PID_FUNCTIONAL_RANGE il target si spegne per poi riaccendersi subito sotto. Quindi in questo modo lavori in on off su una temperatura del target + 10.
Il fatto che ti funziona a fare i pid BED_PID_DRIVE_MIN non ha inciso per nulla, ma poi non ti funziona quando porti a temperatura... Ma visto che questo valore è salvato in EEPROM, ho come la sensazione che il firmware stia usando ancora 80 e non 255..

Il fatto del tempo invece ci può stare, ma non ho capito perché hai modificato anche l'hotend e i valori per calcolare i PID!!


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Cr-10 Marlinkimbra autotune fallito.
June 26, 2018 04:05AM
provo a rispondere con la ratio che ho usato per modificare il codice:
- BED_PID_DRIVE_MIN l'ho alzato con l'idea di dare sempre il massimo di corrente (e quindi aumentare la reattività di cui parlavi tu). Se prima gli impulsi non riuscivano a riportare in temperatura il piatto, con la massima corrente e a parità di durata impulsi applico un riscaldamento maggiore. Nella mia testa, ma correggimi, questo valore serve quando il firmware inizia a controllare la temperatura con il pwm, non durante la fase di primo riscaldamento. Tu scrivi che non ha inciso ma sinceramente non ho capito il perchè.
- BED_PID_DRIVE_MIN 255 non vuol dire piatto sempre acceso, tant'è che il led del piatto "flickera", lampeggia indicando proprio che sta dando impulsi e quindi sta controllando in pwm. Ti torna?
- la routine del pwm non l'avevo neanche vista. devo studiarmela un attimo per capire come lavora (e anche quando entra in quell'else if). comunque mi sembra che entri in gioco dopo l'autotune in fase di stampa vera e propria. devo prima di tutto trovarla smiling smiley e poi guardarla per bene alla luce di quello che hai detto tu
- ho sempre usato l'm303 con U1, ma verificherò cosa c'è in eeprom per capire che valore usa
- il tempo era quello che cercavo: dovevo forzare l'accensione per un periodo di tempo maggiore per potere tornare in temperatura. al primo colpo dopo le modifiche il bed completava correttamente l'autotune ma poi falliva quello dell'hotend che, invece, non riusciva ad andare sotto il setpoint (troppo caldo!). per questo ho aumentato i tempi di spegnimento winking smiley

Non mi hai detto la tua sulla variazione delle costanti per il calcolo dei K, cosa ne pensi?

adesso che ho colto un po' meglio l'algoritmo vorrei trovare dei valori meno spinti (magari torno a quelli iniziali). si tratta di fare un po' di prove.
ovviamente dopo l'autotune ho provato una stampa di test e ho verificato il flickering del led del piatto e la costanza della temperatura, ma sono ancora lontano dal verificare i benefici supposti (purtroppo la stampante ha bisogno di forte tuning dopo un po' di smanettamenti pesanti)
Re: Cr-10 Marlinkimbra autotune fallito.
June 26, 2018 02:51PM
E' proprio quello che ti ho detto tu hai modificato il valore BED_PID_DRIVE_MIN nella configurazione, ma essendo che è salvato in eeprom secondo me sta ancora usando il valore 80 precedente... Perché con 255 di minimo e 255 di massimo che vuoi che flickera scusa e sempre a 255...

Prova a dare M306 H-1 e vedi i valori che ti escono...

Edited 1 time(s). Last edit at 06/26/2018 02:52PM by MagoKimbra.


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Cr-10 Marlinkimbra autotune fallito.
June 26, 2018 05:18PM
Ovviamente Alberto aveva ragione:
23:13:48.588 : Config:  M306 H-1 Heater
23:13:48.590 : Config: Pin:8
23:13:48.590 : Config: Min temp:5
23:13:48.591 : Config: Max temp:150
23:13:48.592 : Config: Use PID:On
23:13:48.592 : Config: PID drive min:80
23:13:48.594 : Config: PID drive max:255
23:13:48.595 : Config: PID max:255
23:13:48.596 : Config: Hardware inverted:Off

M502
M500
e domani gioco un altro po'. Non ve ne abbiate a male, ma sperimentare sulla mia pelle (o stampante smiling smiley ) mi serve per capire di più
Re: Cr-10 Marlinkimbra autotune fallito.
June 28, 2018 10:29AM
giusto per la cronaca: con PID drive min a 255 il led flickerava ma non riusciva più a portare in temperatura il piatto. ho dovuto riportare ad 80
Sorry, only registered users may post in this forum.

Click here to login