Configuration parameters

The desired configuration for the build is set on the following files:

  • config_windows.py: General configuration parameters concerning the build, such as number of parts, build parameters, …
  • config_dmbrl.py: Low-level control specific configuration. Generally one would not need to change this file, but rather config_cluster.py
  • config_cluster.py: Control configuration, divided into ‘pretrained’ (model trained using data collected previously) and unfamiliar (model learned in real-time).

config_windows.py

  • LASER_ON (bool): Laser is enabled when True.
  • JOB_NAME (str): Job name as displayed in the AconitySTUDIO web application.
  • LAYERS (array of int): Layer range to be built, as [layer_min, layer_max].
  • N_PARTS (int): Number of parts to be built (not regarding ignored parts).
  • N_STATES (int): Number of low-dimensional states used for the processing of the raw pyrometer data.
  • TEMPERATURE_TARGET (float): Temperature target in mV.
  • N_PARTS_IGNORED (int): Number of additional parts to be built on top of N_PARTS (pyrometer may not record data for the first few parts).
  • IGNORED_PARTS_SPEED (float): Scan speed used for parts being “ignored”.
  • IGNORED_PARTS_POWER (float): Laser power used for parts being “ignored”.
  • N_PARTS_FIXED_PARAMS (int): Number of parts built using fixed build parameters.
  • FIXED_PARAMS (array): Parameters to be used for those parts being built with fixed build parameters, as [speed (m/s), power (W)]
  • SLEEP_TIME_READING_FILES (float): Time between a sensor data file being first detected and attempting to read it. Prevents errors emerging from opening the file while it is still being written.
  • PART_DELTA (int): Parts of interest may increase 1 by 1, or 3 by 3 (refer to the AconitySTUDIO web application).

config_dmbrl.py and config_cluster.py

  • ctrl_cfg: Configuration parameters for the control algorithm.

    -dO: dimensionality of observations -dU: dimensionality of control inputs - per: How often the action sequence will be optimized, i.e, for per=1 it is reoptimized at every call to MPC.act(). - constrains: [[np.array([min v, min q]), np.array([max v, max q])], [min q/v, max q/v], [min q/sqrt(v), max q/sqrt(v)]] - prop_cfg: Configuration parameters for modeling and uncertainty propagation.

    • model_pretrained: True if model used for MPC has been trained on previous data, False otherwise.

    • model_init_cfg: Configuration parameters for model initialisation.

      • ensemble_size: Number of models within the ensemble.
      • load_model: True for a pretrained model to be loaded upon initialisation.
      • model_dir: Directory in which the model files (.mat, .nns) are located.
      • model_name: Name of the model files (model_dir/model_name.mat or model_dir/model_name.nns)
    • model_train_cfg: Configuration parameters for model training optimisation

      • batch_size: Batch size.
      • epochs: Number of training epochs.
      • hide_progress: If ‘True’, additional information regarding model training is printed.
    • npart: Number of particles used for uncertainty propagation.

    • model_in: Number of inputs to the model.

    • model_out: Number of outputs to the model.

    • n_layers: Number of hidden layers.

    • n_neurons: Number of neurons per hidden layer.

    • learning_rate: Learning rate.

    • wd_in: Weight decay for the input layer neurons.

    • wd_hid: Weight decay for the hidden layer neurons.

    • wd_out: Weight decay for the output layer neurons.

    • opt_cfg: Configuration parameters for optimisation.

      • mode: Uncertainty propagation method.

      • plan_hor: Planning horizon for the model predictive control algorithm.

      • cfg

        • popsize: Number of cost evaluations per iteration.
        • max_iters: Maximum number of optimisation iterations.
        • num_elites: Number of elites.
        • alpha: Alpha parametero of the CEM optimisation algorithm.
        • eps: Epsilon parameter of the CEM optimisation algorithm.
      • prop_cfg

        • mode: Uncertainty propagation method, ie “TSinf”
    • change_target: True if multiple setpoints used, i.e. 980 and 1010

    • n_parts_targets: Number of parts to be built for each target

    • targets: Different temperature setpoints to be used (must be of same length as n_parts_targets)

    • force: Configuration parameters to periodically overwrite (“force”) predefined build parameters

      • on: Force functionality enabled if True
      • start_part: First part where functionality is enabled (disregarding the first few ignored parts)
      • n_parts: Number of parts for which the functionality is enabled
      • n_repeats: Number of consecutive layers for which inputs are forced. For [1,2], n_parts will be forced only once (periodically), while a further n_parts will be forced two times consecutively (periodically)
      • init_buffer: Initial number of layers for which parameters are not forced
      • upper_init: Upper bound is initialised to this.
      • upper_delta: Upper bound increases by this. For instance, for upper_init=105 and upper_delta=5, the upper bound sequence will be 105, 110, 115…
      • lower_init: Lower bound is initialised to this.
      • lower_delta: Lower bound is increased by this. For instance, for lower_init=65 and lower_delta=-5, the lower bound sequence will be 60, 55, 50…
      • fixed_speed: For the forced parameters, power will be adjusted but mark speed will be kept fixed to this value.