aptavia.tuners

aptavia.tuners.GeneticTuner module

class aptavia.tuners.GeneticTuner(population_size=100, mutation_probability=0.2, fitness_function=None)[source]

Bases: object

A PID Tuner using a genetic algorithm.

Parameters
  • population_size (int, optional) – How many random PID-Controllers are in the population, defaults to 100

  • mutation_probability (float, optional) – The probability of a gain of a PID-Controller in the population randomly changing, defaults to 0.2

  • population (list of simple_pid.PID) – A list of PID_Controllers that are tuned when aptavia.tuners.GeneticTuners.step() is called.

  • fitness_function (function, optional) – A function that evaluates the fitness of one PID-Controller, defaults to None

set_fitness_function(fitness_function)[source]

Setter for fitness_function

Parameters

fitness_function (function) – A function that evaluates the fitness of one PID-Controller

set_mutation_probability(mutation_probability)[source]

Setter for mutation_probability

Parameters

mutation_probability (float) – The probability of a gain of a PID-Controller in the population randomly changing

set_population(population)[source]

Setter for the population

Parameters

population (list of simple_pid.PID) – A list of PID_Controllers

set_population_size(population_size)[source]

Setter for population_size

Parameters

population_size (int) – How many random PID-Controllers are in the population

step(num_generations=1)[source]

Performs the genetic algorithm over a specified number of generations

Parameters

num_generations (int, optional) – The number of generations to tune, defaults to 1