Bug in Heater Autotune?



  • I'm running repeat autotunes at the moment to get a better idea of the repeatability of this process and it's very repeatable given limited change in external influences for calculating A & C, but there seems to be a glitch for D?

    My test sequence was running auto tune close to the heater bed, with the bed running at 75C, and the fan at 80% (conscious choice, will detail this more in the other thread). I start with heat soaking everything including the hotend, which I set to 50. I then disabled the heater and allowed the hotend to cool to 35 and triggered an auto tune. This is the results:

    ##1: A 243.7 C 132.9 D 68.1
    ##2: A 244.5 C 132.8 D 4.4
    ##3: A 245.4 C 132.8 D 4.5

    What could cause such a large D value for the first Autotune after controlling the external variabels as tightly as I could?

    Hardware: Standard E3D Lite with new thermistor. Radial part cooling blower.

    M122:
    18/01/2019, 10:01:31 M122
    === Diagnostics ===
    RepRapFirmware for Duet version 1.23 running on Duet 0.6
    Used output buffers: 7 of 16 (11 max)
    === System ===
    Static ram: 44276
    Dynamic ram: 42820 of which 3016 recycled
    Stack ram used: 136 current, 3656 maximum
    Never used ram: 4536
    === Platform ===
    Last reset 02:11:55 ago, cause: power up
    Last software reset at 2019-01-17 15:16, reason: User, spinning module GCodes, available RAM 4996 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 21.0MBytes/sec
    SD card longest block write time: 19.2ms, max retries 0
    MCU temperature: min 34.4, current 58.1, max 59.1
    Date/time: 2019-01-18 10:01:29
    Slowest loop: 236.32ms; fastest: 0.09ms
    I2C nak errors 8, send timeouts 0, receive timeouts 0, finishTimeouts 0
    === Move ===
    Hiccups: 2, StepErrors: 0, LaErrors: 0, FreeDm: 100, MinFreeDm: 97, MaxWait: 3778608ms, Underruns: 0, 0
    Scheduled moves: 78, completed moves: 78
    Bed compensation in use: mesh
    Bed probe heights: 0.000 0.000 0.000 0.000 0.000
    === Heat ===
    Bed heaters = 0, chamberHeaters = -1 -1
    Heater 0 is on, I-accum = 0.4
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Free connections: 15 of 16
    Free transactions: 23 of 24
    Locked: 0, state: 4, listening: 20071c18, 0, 0



  • Hang on, my bad, Miss read one of the console logs and recorded the derivative, rather than Dead time!

    Sorry!

    18/01/2019, 09:17:08 M307 H1
    Heater 1 model: gain 243.7, time constant 132.9, dead time 4.5, max PWM 1.00, calibration voltage 0.0, mode PID, inverted no, frequency default
    Computed PID parameters for setpoint change: P21.6, I0.885, D68.1
    Computed PID parameters for load change: P21.6
    18/01/2019, 09:14:48 Auto tune heater 1 completed in 354 sec
    Use M307 H1 to see the result, or M500 to save the result in config-override.g
    18/01/2019, 09:12:46 Auto tune phase 3, peak temperature was 231.9
    18/01/2019, 09:12:39 Auto tune phase 2, heater off
    18/01/2019, 09:08:59 Auto tune phase 1, heater on
    18/01/2019, 09:08:53 M303 H1 P1 S230
    Auto tuning heater 1 using target temperature 230.0°C and PWM 1.00 - do not leave printer unattended


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.