Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

online-measurement-for-parameter-discovery-in-fff

  • Clone with SSH
  • Clone with HTTPS
  • Name Last commit Last update
    analysis
    data
    .gitignore
    README.md

    Learning Polymer Flows

    In order to automatically guess at print parameters (flowrate and nozzle temperatures), we developed an extruder that features a filament sensor (to detect real flowrates) and a pressure sensor, and used it to measure a swath of that parameter space using a simple routine, fit that data to a predictive function, and used a meta-heuristic to extract real parameters from those functions. We were then able to automatically determine print parameters for a number of new filaments that we had not previously tested.

    extruder

    Above is our extruder, featuring a loadcell to measure pressure (C), a filament sensor (A) that measures filament width and linear feedrate, and a COTS hotend (D) and drive gears (B).

    individuals

    We collect data with a simple routine that sets the nozzle at its maximum temperature, then begins flowing plastic at a set rate, and turns off the heater. Pressure and temperature data are simultaneously collected as the nozzle cools (and as pressure increases).

    contour

    We can expand this fit into a full contour of the parameter space, and then select operating points using a meta heuristic.

    method

    outputs

    Using this method, we were able to produce a series of test articles using filaments that we had not previously tested.

    In this Repo

    Analysis and Data

    We have data an analysis in the analysis/ folder, with the most relevant data (from our paper) in analysis/flows/spindown/.

    Data there is organized into material-nozzleSize folders, with raw data in .json format and cleaned data sets available as python pickles, which import as pandas dataframes (IIRC). Data was cleaned using this script and analyzed using this one.

    Experimental System

    The system folder contains the javascript controller as well as firmwares for the relevant hardware. Hardware from these experiments is now out of date; I can produce CAD and circuit design files if pressed, but sorting and documenting these things is more of a challenge.

    The Paper

    Writing is in... writing/, though it happens in overleaf - I will keep drafts and source files backed up here. The most recent draft is here

    Future Work

    ~ we want to optimize printer parameters, but this inevitably leads to the whole printing process... i.e. given what we know about slumping and layer adhesion, we actually have as a kind of ~ primary input (un-surprisingly) the geometry itself: a critical factor is the inter-layer time, and that varies greatly with geometry...

    So we end up with this loop that deconstructs a print layer-by-layer, builds (for each) a model of the layer's print time, given requested rates (which is calculated using the machine's own lookahead controller, basically a full sim of the machine's dynamics), then for each layer we find an optimal temperature-and-rate pair, given machine/material models we learn about the nozzle / extruder (how fast can we push, at what temperatuers?) and about the cooling properties (for slumping, to know how much time-to-cool each layer will need, given the temperature it's printed at).

    ext-loops

    The final challenge is that each layer has a different optimal temperature... Rates are easy enough to change layer-by-layer, but the machine's hotend can't slew as quickly; so we want to basically run a lookahead through layers to analyze these and find new targets... simpler option is to pick whichever min/max and run the print there.

    Stubs

    The Slumping Model (Slump-Sweeping)

    drop-opt drop-opt

    slumping-pressure-drop

    plot threeup

    Surface Finish and Pressure Consistency ?

    pres

    The Thermal Model and Lookahead

    We also need to figure, roughly, how fast we can slew nozzle temps up & down; this lets us do a fit of thermal-profiles to layer-rates, which is some ~ tricky dynamic programming I think... and will probably be real fun.

    Also related is a new motion controller... that does network-model estimation inline with dynamics;

    lookahead nets

    Dependencies