Conditional PID tuning for maximum hot end stability - Is it worth it?

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 พ.ค. 2024
  • Check out my 2nd channel, TT Racing: / @ttracingyt
    I personally only tune my hot end PID for a single temperature wit the part cooling fan at 100%. But perhaps a lot more accuracy and stability can be found with conditional PID tuning. In this video, I take you through what PID is, how to tune it, and how to tube it for various scenarios and apply the, in the slicer. In theory this is superior, but in practise the effort may not be worth the meagre returns. What do you think?
    Thanks to Bob Sissan for the request.
    0:00 Introduction
    0:42 What is PID control?
    PID control wiki: en.wikipedia.org/wiki/Proport...
    Bang bang control wiki: en.wikipedia.org/wiki/Bang%E2...
    2:57 What happens if the PID values are incorrect?
    3:29 How to autotune PID?
    PID autotune video: • Two easy fixes for 3D ...
    PID autotune written guide: teachingtechyt.github.io/cali...
    Marlin M303 gcode: marlinfw.org/docs/gcode/M303....
    Klipper PID autotune documentation: www.klipper3d.org/Config_chec...
    5:00 Bob’s question - Scenarios for PID tuning
    7:18 Tuning for multiple scenarios
    Marlin M106 reference: marlinfw.org/docs/gcode/M106....
    Klipper M106 reference: www.klipper3d.org/G-Codes.htm...
    7:55 Setting PID values on the fly
    Marlin set PID M301 gcode: marlinfw.org/docs/gcode/M301....
    Klipper feature request: github.com/Klipper3d/klipper/...
    Closed Klipper pull request: github.com/Klipper3d/klipper/...
    8:37 Setting PID settings per material
    9:31 Setting PID for no fan vs fan
    Pastebin with conditional gcode: pastebin.com/0yE0yJHn
    12:24 Conclusion
    Buy quality and affordable filament from X3D. Buy 3, get 1 free and a free sample pack with every order: www.x3d.com.au
    Get Quality Resins from 3D Printers Online. 5% off storewide for Teaching Tech subscribers [Code: tech5]
    3dprintersonline.com.au/
    Take a look around and if you like what you see, please subscribe.
    Support me on Patreon: / teachingtech

ความคิดเห็น • 93

  • @sendorm
    @sendorm 15 วันที่ผ่านมา +67

    You should look into "Model Predictive Temperature Control", much better than PID (faster and more stable) which also inherently adapts to any condition (fan speed, or different temperatures).

    • @BelleDoesStuff
      @BelleDoesStuff 15 วันที่ผ่านมา +14

      I came down here to say the same thing. MPC in Marlin is incredible and would be far, far easier to setup VS custom commands in the slicer.
      Sadly It's not a thing in Klipper at the moment

    • @sendorm
      @sendorm 15 วันที่ผ่านมา +4

      @@BelleDoesStuff Yep that's the only thing I miss from Marlin after moving to klipper.

    • @davewebster1627
      @davewebster1627 15 วันที่ผ่านมา

      Will this eliminate offset between setpoint and actual temperature same as PID

    • @firedeveloper
      @firedeveloper 14 วันที่ผ่านมา +1

      +1 I have implemented both adaptive PID and MPC. MPC is a killer for that kind of applications and easy enough to run it on an mcu.

    • @tomaszkarwik6357
      @tomaszkarwik6357 14 วันที่ผ่านมา

      For some reason I need to recalibrate mpc very often. But that might be my thermistor, i need to chenge it

  • @johnvodopija1743
    @johnvodopija1743 14 วันที่ผ่านมา

    Thank you for yet again explaining a complex topic in an easy-to-understand manner. Very interesting indeed. Cheers 👍😎🇦🇺

  • @RayLenses
    @RayLenses 14 วันที่ผ่านมา

    Thank you I was looking for this for a while!

  • @cxob2134
    @cxob2134 15 วันที่ผ่านมา +7

    What i been printing very broad range of temperatures with a CPAP fan setup that has almost too much cooling. What helped me was running PID auto tunes for different temperatures and fan settings, putting the results into a spreadsheet and averaging the P, I and D terms with some manual tweaking afterwards. To find a combination of values that work ok for everything.
    If you want to tweak your PID values manually, you can increase D if you have too much overshoot. Lower I if you have a temperature offset. And if your hotend stays too much at 90-100% power while printing and struggling to maintain temperature you need more wattage or less cooling.

  • @roysigurdkarlsbakk3842
    @roysigurdkarlsbakk3842 14 วันที่ผ่านมา

    This was highly interesting - thanks!

  • @Eadsn
    @Eadsn 15 วันที่ผ่านมา +1

    I can see myself using a different set of pid values per filament for the extruder and bed. I have noticed that there is some instability when I print at high temperature, so I recon this would fix that. Thanks for the tip

  • @Dark0Storm
    @Dark0Storm 14 วันที่ผ่านมา +3

    I feel like the ideal would be for the Firmware PID tuning process itself to have fan speed built in to how it functions. So instead of one test where you manually set the fan speed, it just runs multiple tests at say 0, 25%, 50%, 75% and 100% and then uses whichever is closest to the current layer fan speed. A bit more time to do the PID tuning, but much less thinking and work required from users.

  • @stephensweeney5167
    @stephensweeney5167 11 วันที่ผ่านมา

    I have a CR10v3 with a H2 Hotend/extruder running Klipper. I mostly print PLA or PLA+, yesterday I printed ABS, and my temps are rock solid no matter what material, or temp.... So for me, the one PID tune I did when I switched to Klipper will be all, and it works GREAT....

  • @Teh-Stig
    @Teh-Stig 14 วันที่ผ่านมา

    I use an extension in Cura that allows per filament settings changes. I'd probably also add these changes there. Could also override it for the first few layers by dropping a three layer high rectangle covering the whole bed and using per model settings on it.

  • @noanyobiseniss7462
    @noanyobiseniss7462 15 วันที่ผ่านมา +1

    Hey Mike, I really like to see a step by step tutorial on recovering a print failure. Something like unplugging your hotend and letting your ratrig error out and then editing the g-code and disabling the correct klipper macros to recover the print.
    I am having an issue with that and managed to recover but the code would not extrude and then after re editing the g-code managed to drive my hotend into the the print and destroy the extruder carriage. Amusingly enough it didn't harm the print which is half way done after 15 hours.
    And of course while disassembling the extruder carriage the belt broke. :D
    I've repaired it all but really don't want to try again until I get this g-code correct.

  • @Guardian_Arias
    @Guardian_Arias 13 วันที่ผ่านมา

    I've done something similar except I manually tuned the PID by refining the values until the PID control was better with a manual tune with either the fan at 100% or 0% at a given temperature compared to individual auto tunes of either state. The issue became that the temperature range usable was very narrow. But then i just manually tune for the 3 temps I use and saved the GCODE commands in a text file in case I accidentally wiped the per filament gcode. The temps being 210 to 230, 240 to 255 and 285 to 305. The manual PID tune for my bed with insulation was able to work fine from 20c to 115c.

  • @capitalinventor4823
    @capitalinventor4823 15 วันที่ผ่านมา

    I would not worry about the material of the heater, the mass or material of the block the heater is in, or similar cases mentioned. Those remain constant and if they change on a system it is recommended that one run a PID test with the new hot end configuration anyways. I wonder what differences in nozzles have, especially ones with a different size or material. A different sized nozzle ( from 0.4mm to 0.6mm might have slightly less mass due to the larger opening ) but I don’t know if it would be significant. Moving from a normal to a long high flow nozzle would have some impact though.
    Something that I would be very interested in seeing is the PID settings for a hot end when it is working (plastic filament is flowing out of the nozzle) and what changes there are for the type of filament (PLA, PLA High flow, PLA CF, Matte PLA, Marble PLA, Colour Changing, PETG, PETG CF, ASA, ASB, TPU, etc) and various flow rates. Filaments from different manufacturers might different values. For example, all manufacturers submit a sample of black PLA filament for this test. Perhaps even test different colours of two types of filament (maybe PLA and PETG or ABS) because colours contain different additives. Except for the one test mentioned, all filament would be from a single manufacturer. All testing of the filament would be on a single machine with the same hot end and extruder.
    Another test might be testing a brand new roll of filament with one that that has been left out for a long time and another that has been left out and put in a dehydrator.
    I may be able to help out if TT is interested as I know that this would be a lot of testing.

  • @davewebster1627
    @davewebster1627 15 วันที่ผ่านมา +9

    In industry we use to use Zigla Nicols calculations to set the PID

    • @tstrrtstrr745
      @tstrrtstrr745 14 วันที่ผ่านมา +1

      It's still common to use the Ziegler-Nichols formulas for PID parameters (their original work is from 1942). However, it's quite rare to use their original tuning method to find Ku and Tu as using it is difficult and potentially dangerous. Instead, it's now common to use the "Astrom-Hagglund relay method" to estimate Ku and Tu (this was published in 1984). Once Ku and Tu are estimated, they can be used with the original Ziegler-Nichols formulas.
      This is what both Klipper and Marlin use.

  • @OldCurmudgeon3DP
    @OldCurmudgeon3DP 14 วันที่ผ่านมา

    In Klipper macros I select the bed mesh based on bed temp from the slicer. I'm sure something similar could be done for PID. I only have 1 tune for PLA. I may look into adding a PETG.

  • @tlecter
    @tlecter 9 วันที่ผ่านมา

    For Klipper there is a fork called Danger Klipper which includes some, well, potentially dangerous settings. They have an ability to change PID without restarting firmware

  • @bami2
    @bami2 15 วันที่ผ่านมา +1

    Brilliant, just something I was trying to figure out.
    I wonder if ambient temperature makes a difference for PID tuning, as the hotend will dissipate heat at a different rate depending on it. Also with different materials come different bed temperatures and some machines have heated chambers, so that could change things as well.

    • @AutoAnomoly
      @AutoAnomoly 15 วันที่ผ่านมา +1

      It is very difficult to calibrate PIDs when the physics of the system is affected by non linear external stimuli. Radiation, convection, conduction, filament material, mass flow rate, forced conduction, current ripple, and impedance. It’s really hard to get right and the moment you switch the hot end and material you have to start over.

    • @KToMmi
      @KToMmi 14 วันที่ผ่านมา

      When your hotend is running at 200-300°C, it really makes no difference if ambient is 18 or 23°C. That's a 5°C difference over a 200°C jump. Nothing.

  • @HumanShield117
    @HumanShield117 14 วันที่ผ่านมา

    I haven't touched Marlin in a long while, but I remember it had settings for adjusting the PID values based on feed-rate/part-fan, as far back as version 1-point-something. Though I don't think it was ever actually as useful with the state of machines back then.

  • @gonzalo.valenzuela
    @gonzalo.valenzuela 15 วันที่ผ่านมา

    in Cura you can use the extension Post Processing Plugin and Add script to Insert a gcode

  • @digital0785
    @digital0785 15 วันที่ผ่านมา

    NICE i've been wonder about this because when i'm print at over 200mm's my temps can vary by like -+5* .. it's dead nuts on when it's not moving or moving slow though and I asked about how to compensate and basically got told i shouldn't care LOL

  • @RNMSC
    @RNMSC 14 วันที่ผ่านมา +1

    Considering there may be other factors involved in this, I'd much rather see Marlin and Klipper have the ability to recognize when the current PID settings are resulting in unexpected variations in the temperatures they are expected to manage, and auto-adjusting them on the fly in much the same way that they do the testing now to determine what the correct levels should be. No I'm not saying this would be easy, just that when you look at the wide variety of things people do with 3d printers and expect them to continue to operate w/o issues, this seems like the better solution.
    I live in a state in the USA where we have humidifiers running nearly all winter, and de-humidifiers running almost all summer. My Daughter and son-in-law live in a place where summers are dry, and winters are wet. These conditions affect how people heat and cool their work spaces, as well as how well those work spaces are insulated. (I'm looking at you garage with all the wall studs exposed on the inside that people are using as their makeshift print farm...) If I set up PID levels in the summer, w/o Air conditioning, and questionable humidity management, Then have a massive print run that kicks in 6 months later, I should expect that for the same run of filament on freshly opened spools that the printers are going to need to have different PID settings. And no, I'm not fascinated with the idea of running even 2 PID settings tests when the day's temperature may vary by 10-20 degrees C in the work space. Yes this mostly impacts open frame printers, but they are what I'm printing with.
    Having a table that includes tested environmental factors, (temperature, observed temperature changes, and rate of change, with tested pid factors all stored in eeprom, with a gcode instruction that asks for the best match for current conditions, which gives a row number, and then that is plugged into a dynamic g-code entry to insert the relevant values from the table.
    As that may be a lot of added information, it might be better to have a plugin for Klipper or octoprint that monitors the current temperature stability, then references it's own internal table that it develops on the fly, perhaps during down time for the printer, or when the printer is sitting waiting for user input, say for a filament spool replacement so that it has values for what the printer is doing at a given time. This seems like 'straightforward' python coding for Octoprint. As I've only used the Creality aberration of Klipper I don't know what it would be like for Klipper based printers.

  • @mikeydk
    @mikeydk 14 วันที่ผ่านมา

    I kinda did something like that, but in RepRapFirmware. Instead I use this in the start gcode
    M701 S"{filament_type[0]}" ; Set filament type
    M703 ; Configure filament
    PrusaSlicer will then put the name PLA/FLEX/ABS/... in the gcode, and on the printer I have created filaments with the same names. When a print is started, it will then load pressure advance parameters, depending on the filament used. This way I don't have to keep track of which printer is going to be used, and how that printer should be calibrated for that filament.

  • @capitalinventor4823
    @capitalinventor4823 15 วันที่ผ่านมา

    When setting up Prusa Slicer (or the other similar apps) to change the PID settings for the level that the fan starts, does that work if the fans starts on the very first level? Or are there no materials that one would print in which that would be the case?

  • @benni5941
    @benni5941 13 วันที่ผ่านมา

    Would have liked to see some test model prints to see if it makes a difference.

  • @everettcass7904
    @everettcass7904 10 วันที่ผ่านมา

    I've watched a couple videos on FR4/G10 Plates, can you do a video determining if it is worth investing in one of the bed surfaces, for the PETG mixed filaments?

  • @bracco23
    @bracco23 6 วันที่ผ่านมา

    Did you do some tests in terms of speed or print quality with/without this tweaks? I would expect there to be no difference, or even things being worse when the tuning changes mid-way.
    In Control theory, the discipline that studies how physical system works and how we can control them to make them do what we want, things usually start by defining the input variables, the things you can affect, in this case the power to the heater cartridge, and the outputs, the thing you want to set/change and that you can measure, in this case the temperature of the heater cartridge. After that, you can create a model of your system and discover parameters, characteristics of your system that remain constant and affect how the system behaves, and disturbances, things you consider external to your system but that are still able to affect your outputs.
    The aim is to find a controller, another physical system compatibles with your inputs, that will make sure the output will be equal to whatever you want given the parameters of the system, regardless of any (reasonable) disturbance present (mostly because parameters tend to be constant with time, while disturbances can vary so it is the job of the controller to react to them.)
    In this case, i would qualify size of the block and power of the cartridge as parameters, they don't reasonably change over a single use, while filament type and fan speed (that respectively affect how fast the block loses heat via changing the specific heat of the polymer and the rate of conduction to the air) as disturbances, so something the controller shouldn't mean changing the controller (as you do when you change the PID tuning).
    PID controllers are a type of feedback control (the input to the controller is the error, the difference between the current output and the desired output) and they usually the gold standard for simple continuous systems because they are easy to implement, simple to tune and pretty effective for the majority of cases. it's pretty well studied and it usually goes like this:
    - higher P means faster reaction times (reaches the target temperature faster) but can lead to overshoot/oscillations and a steady state error (T set to 200 but the reached is actually higher/lower due to disturbances)
    - higher I removes any possible constant errors guaranteeing to always reach the target, but further increases overshoot
    - D reduces overshoot and remove instability, but obviously slows down settling time.
    As such, a good tuned PID should be able to quickly adapt the duty cycle of the cartridge when the filament starts to get melted/when the fan goes on/off without any need to change parameters, it's the job they are supposed to do :)

  • @BarsMonster
    @BarsMonster 15 วันที่ผ่านมา +3

    This is where PID_FAN_SCALING and PID_EXTRUSION_SCALING come into play in Marlin. These should make it all work automagically, as long as it is tuned. Sadly, this is not available in Klipper.

    • @JGnLAU8OAWF6
      @JGnLAU8OAWF6 14 วันที่ผ่านมา

      At this point switching to MPC is just better.

  • @astro7996
    @astro7996 15 วันที่ผ่านมา +2

    Now, the real question how do we do this whole process with Bambu Lab printers? As far as I know is not possible which is a very sore point. Thanks for sharing this Michael!

    • @yellowajah
      @yellowajah 15 วันที่ผ่านมา

      You do this process by selling your BBL printer and buying one that doesn't lock you down.

    • @Aeroua
      @Aeroua 15 วันที่ผ่านมา +2

      Good question, maybe someone know - is it possible f.e. create g-code file with pid calibration command and "print" it? This is risky because nobody knows abot hw&sw specific on Bambu. Just pls, dont spam genius ideas like - sell bambu and get another...

    • @astro7996
      @astro7996 15 วันที่ผ่านมา

      @@Aeroua Maybe some sort of custom calibration gcode like the ones built in Orca slicer although since nothing is actually going to be printed I don't know if that would be even possible.

    • @yellowajah
      @yellowajah 14 วันที่ผ่านมา

      @@Aeroua Well, the alternative would be to replace all the electronics with non-locked down crap.

    • @jamesm3268
      @jamesm3268 14 วันที่ผ่านมา

      Forgetting there is x1 plus firmware for x1c printee with full root access and console? 😂

  • @tstrrtstrr745
    @tstrrtstrr745 14 วันที่ผ่านมา

    This was an issue with those old heaters in Ender 3 and such that take 2 minutes or so to reach 220c. With those newer ceramic heaters that heat up in 30 seconds my temperature only fluctuates 1-2c when the fan kicks in and such.

  • @papplemyapple
    @papplemyapple 15 วันที่ผ่านมา

    I do a calibrate at whatever temp I print most, in this case its 220c, I find this PID is "good enough" across all printing temps and results in fluctuations of less than 2c. Tried doing it at different temps and fans speeds but the only thing I find that really makes a difference is if you're running no silicone sock and full fans.

  • @TechGorilla1987
    @TechGorilla1987 15 วันที่ผ่านมา +1

    I have the original Ender 3. I have been watching your videos long enough that the stepper dampers I fitted after you video have finally separated and failed. I was looking to replace them when I noticed that you no longer recommend them. I was happy with their removal - my z-wobble disappeared.

  • @jonbondy
    @jonbondy 14 วันที่ผ่านมา +2

    The title of this video is "Conditional PID tuning for maximum hot end stability - Is it worth it?", but I did not hear you answer the question. Is it worth the effort? Does this actually solve a problem, or not?

    • @TheCreat
      @TheCreat 11 วันที่ผ่านมา +1

      I thought he made it quite clear at the start of the video that this was actually a question for us (collectively). Some videos actually pose questions without delivering the answer, what a novel idea!

  • @habag1112
    @habag1112 13 วันที่ผ่านมา

    There is a fork of klipper called "danger klipper", and it comes with the ability to change PID values without reloading, PID profiles, and something called "velocity PID"

  • @MrHeHim
    @MrHeHim 14 วันที่ผ่านมา

    PID imo has a major flaw in calibration, in that there is not tuning for the thermal mass when the filament flows. I used two pliers to simulate flow to manually simulate the flow, made a significant change. My extruder graph is now as flat as the heated bed graph, generally stays well within >1C+/-.. Generally ~0.5C+/- Printing at 26mm3s flow (0.2 layer height ~250mm/s 4K acceleration)
    Before that i would see fluctuations of about 1C +/- using a Volcano Nozzle
    Noticeable impact on consistent surfaces and extremely consistent "glaze" on prints
    *edit; i have a custom designed parts cooler on my printer that i designed carefully to only barely hit the tip of the nozzle. I'm certain many, if not most printers blow much more air on the nozzle. I'm running a 50x15 blower @24v/0.2A, normally they are about =/>0.1A and i usually run it at 60%

  • @gerthddyn
    @gerthddyn 14 วันที่ผ่านมา

    I don't see enormous temperature excursions, so I'm not sure it is worth it, but using state space control, you could have far more variables input into the control algorithm. Some people have mentioned Model Predictive Temperature Control and that might be state space control applied to Marlin.

  • @dev-debug
    @dev-debug 11 วันที่ผ่านมา

    I may write klipper plugin to do this. Fan speed, nozzle size and layer height all can can affect how the PID control responds. For Klipper PID valures are stored in printer.configfile.settings section which AFAIK is only loaded at start/restart, you can't just change them in a macro on the fly. Easiest way would be to allow for pid values for 0 to 100% fan speed in steps of 10% and set it by overloading fan control with a macro. This *could* be also expanded on to include nozzle size and layer height but thats a lot of pid tuning to get all those values but maybe a math formula can be applied.
    printer.configfile.settings.extruder.pid_kp : 26.062
    printer.configfile.settings.extruder.pid_ki : 1.687
    printer.configfile.settings.extruder.pid_kd : 100.666
    printer.configfile.settings.extruder1.pid_kp : 26.601
    printer.configfile.settings.extruder1.pid_ki : 1.993
    printer.configfile.settings.extruder1.pid_kd : 88.781
    Edit: just looked, PID seems to be loaded from heaters.py and temperature_fan.py which is interesting.

  • @TheRealPlato
    @TheRealPlato 14 วันที่ผ่านมา

    My Neptune 3 Pro was in an unconditioned space during winter and didn't enjoy it. It assumes a short circuit and refuses to begin heating if either the hotend or the bed thermistor reads below 6C/42F.

  • @sb53-systemssc28
    @sb53-systemssc28 14 วันที่ผ่านมา

    Hey everyone, for me a continuous extrusion is needed during calibration process because it consumes a lot of energy dipending in the flow rate (speed of extrusion) !!!

    • @sb53-systemssc28
      @sb53-systemssc28 14 วันที่ผ่านมา

      is there any solution to auto calibrate PID (or any other algoritme) during print, or changing manually the values during different printing process, or using a constant values and trying to stabilise the flow and fan speed during printing, or, or...
      3D printing is more and more complicated, i hope we can simplify this technology in the futur

  • @santiagopostorivo
    @santiagopostorivo 15 วันที่ผ่านมา

    The variations I get are between -0.3 to 0.3 degrees, which I think are pretty standard. I do not think this is actually useful for me and my single head single filament printing, but in cases where you use more than one filament or in machines like the Prusa XL this might help.

  • @Zack-dw5op
    @Zack-dw5op 15 วันที่ผ่านมา

    I think this would be a great feature to add in the background but definitely not worth doing manually 90% of the time, especially the more advanced variations accounting for fan speed etc

  • @b12oken
    @b12oken 14 วันที่ผ่านมา

    So I've had a question about PID for a while and that's about printing FAST. When printing ultra fast (like 9min benchy fast) my nozzle would often get too cold and trigger thermal runway. I'm assuming this is because the amount of filament exiting the nozzle is cooling the hotend. What I resorted to doing is pushing filament through the nozzle during PID tuning but of course that isn't accurate. What are other options?

  • @pilotm31
    @pilotm31 14 วันที่ผ่านมา +1

    Can you show the difference with this tuning? Was it profitable?

  • @alienmoonstalker
    @alienmoonstalker 13 วันที่ผ่านมา

    Sorry if i missed it, but is the heater analog or digital, whereby the PID changes the heater duty cycle?

  • @walking_disaster_
    @walking_disaster_ 15 วันที่ผ่านมา +3

    In PrusaSlicer, couldn’t you also use conditional statements in the start G code for the printer itself?
    For example:
    {if filament_preset == “FLEX”}{endif}
    This way all of your PID values for each filament type are in one place and you don’t have to remember to add them to each individual filament profile.

  • @tuxino
    @tuxino 14 วันที่ผ่านมา

    If you're going to do the tuning for different fan speeds, wouldn't it make it easier if there was a plugin that searched for fan speed changes rather than layer number? Then you could change the print settings without having to change the plugin config.

  • @akanar_1924
    @akanar_1924 14 วันที่ผ่านมา

    Only time I see PID start to struggle is when flow rate varies during print. None of the other situations.

  • @yellowajah
    @yellowajah 15 วันที่ผ่านมา

    The smart thing to do would be to accumulate telemetry data, and use that to establish PID profiles for all kinds of different situations.

  • @markbooth3066
    @markbooth3066 11 วันที่ผ่านมา

    Those oscillations are often called 'resonance' when talking about motors, due to the buzzing sound, but 'limit cycle' is a more accurate term, in both temperature and motor control.
    Sadly, a standard PID algorithm can't 'predict' anything more than one control cycle away, which makes it quite a blunt instrument. All it knows is the current target, and what happened since the last control cycle, everything is calculated from those values.
    The Proportional term depends on how far you are from the target. Far from the target, this will dominate, but close to the target it will have much less influence. This will go negative if the system goes beyond it's setpoint.
    The Derivative term depends on how quickly you are approaching the target. This will dominate closer to the target, and will go negative if the current rate of change would push the system beyond it's set point. At different phases, it can both retard and boost the contribution from the Proportional term.
    I leave Integral to last as it's the most complex. It is is intended for remove steady state error, so it should only dominate when close to the target, and the P and D contributions are very small. Unfortunately it accumulates error, even when not in it's dominant region, resulting in a phenomena known as integral wind-up, which tends to cause the system to overshoot the set point.
    Limit cycles can be caused by any of these parameters being slightly too aggressive (more than slightly too aggressive will result in loss of control.
    While there are more complex control algorithms with parameters such as velocity feed forward, these are generally more appropriate for motors where you supply target velocities as well as target positions for each control cycle. Similarly, integral wind-up can be mitigated with slight alterations to the algorithm too.

  • @proxyboyBG
    @proxyboyBG 15 วันที่ผ่านมา

    I have a massive 10-15 degree overshooting problem from 0 to 220 degrees. Hopefully having a PID for no fan mode will fix it. Other than that the temperature doesn't fluctuate more than a degree or two.

    • @dev-debug
      @dev-debug 11 วันที่ผ่านมา

      Do you have a a good sock on hotend ? No insulation will wreak havoc with pid tune when fan speed is changed. That's the only reason I can think of that swing would be that wild when PC fan is off. Guessing pid tune was done with fan on.

  • @BultiZ
    @BultiZ 14 วันที่ผ่านมา

    Why not use fan on for first layers instead? Since a proper PID tune will give "perfect" temps, we can run fan on first layers?

  • @richardjones38
    @richardjones38 14 วันที่ผ่านมา

    On my Wanhao duplicator i3 Plus' with the ADVi3++ firmware, no, this is not worth it. The temperatures are very steady regardless of fan speed under all conditions. Once tuned via the ADVi3++ menu option (not via g-code in a console), the PID typically maintains +/- 1 to 2 degrees, with either the stock hot end, Microswiss all metal hot end or my custom high temp heater block, with either standard thermistor or PT1000 temp sensing at up to 300 degrees.
    If anyone reading knows of a good explanation of why Marlin uses more complex PtLine function to define the PT1000 sensor response instead of the simpler lookup table used for thermistors, a link to it would be much appreciated. I need to get rid of a constant 12 degree offset on my hot end temp (relative a K type thermocouple), and can't find any info on how to do this. I am tempted to make my own lookup table which corrects for the 12 degrees, and works the same way as Marlin's thermistor definitions, but am unsure whether there is some reason why PtLine is used that I am not aware of. Thanks.

  • @sheeeple2069
    @sheeeple2069 14 วันที่ผ่านมา

    wait, so was it worth it? how good/bad does it affect print quality?

  • @FireN2k9
    @FireN2k9 14 วันที่ผ่านมา

    It´s a good idea, but on my printer I would not need it, heating is very consistent all the way from 200 to 260°C

  • @TheButchersbLock
    @TheButchersbLock 14 วันที่ผ่านมา

    6:10 Clockwise filament spiral… 🤔

  • @eraldylli
    @eraldylli 14 วันที่ผ่านมา +1

    I like how nerdy and complex it is, but takes too much time to prepare. It's too much hassle for results and differences that may or may not be even noticed. But, I do love how it works around problems. Cool stuff.

  • @CollinOstrowski
    @CollinOstrowski 15 วันที่ผ่านมา

    Fuel Map for 3D printer basically

  • @darrennew8211
    @darrennew8211 14 วันที่ผ่านมา

    I loved the video, but you have to practice that creepy smile at the end in front of a mirror. :-) I'm not sure PID tuning ever did anything for me, but I'll have to give it another try.

  • @noanyobiseniss7462
    @noanyobiseniss7462 15 วันที่ผ่านมา +1

    I just upgraded power supply, heatblock (180w supposedly) and added a external mosfet to increase flow rate.

  • @pusnirizda5481
    @pusnirizda5481 14 วันที่ผ่านมา +1

    I don't believe it makes any sense to do. Any potential improvements will be so small if any it don't worth to spent any time on. On the other hand, temp compensation for a flow rapid increase-decrese (eg 1mm^3 -> 25mm^3) should bring some improvements to the printed parts.

  • @TS_Mind_Swept
    @TS_Mind_Swept 13 วันที่ผ่านมา

    9:13 Cura, once again, falling flat in terms of ability to use it

  • @critter42
    @critter42 15 วันที่ผ่านมา +2

    I would have loved to see print examples, because that's what's ultimately the goal - does this make my prints (significantly) better? If not it only marginally, then no, it's not worth it...

  • @pekwalker
    @pekwalker 15 วันที่ผ่านมา

    How would this work with the Bambu Labs X1C? I still don't even know what flavor of firmware it uses or how to access it.

    • @yellowajah
      @yellowajah 15 วันที่ผ่านมา +2

      Best thing to do is to get a 3d printer that doesn't lock you down.

    • @BeefIngot
      @BeefIngot 15 วันที่ผ่านมา +2

      You dont. It uses proprietary firmware (not marlin, klipper or reprap) and you dont have access to that.

    • @BeefIngot
      @BeefIngot 15 วันที่ผ่านมา +1

      @@yellowajah I mean, personally, I feel that freedom, but ultimately no other brand matches how little I have to think about 3d printing now, so Im happy with the trade off of never having to faff with anything anymore.
      Its funny they've been out for what, 2.5 years now, and no one else has gotten the experience right.

    • @bami2
      @bami2 15 วันที่ผ่านมา

      Don't need to worry about it since if it breaks you just buy replacement parts instead of fixing it.

  • @g.s.3389
    @g.s.3389 14 วันที่ผ่านมา

    you didnn't make any test print to analyze any difference of your theory.

  • @heinwelters
    @heinwelters 15 วันที่ผ่านมา

    i would never be able to do this im not that smart so is there no other way for dum people to do this pid tuning

  • @m2ngur
    @m2ngur 15 วันที่ผ่านมา

    what the fuck is this, 2016? bro there is mpc and it has been available for quite some times. thought you were teaching tech, not teaching ancient tech.

  • @jc84com
    @jc84com 14 วันที่ผ่านมา

    I did not realize people still used cura ^_^