#!/usr/bin/env python # -*- coding: utf-8 -*- # This example shows how to set up a fuzzy controller for # the temperature in a container in which we can put cold or warm water (through the mixer). # The container is modeled as a PT1-System which means the final value is # asymptotically with ongoing time. # Weitere Arbeiten: # # 1. Darstellung der Eingangs- und Ausgangsvariablen # 2. Fahren eines Fuzzy-Reglers über einen veränderbaren Sollwert # 3. Randbedingungen für die Variablen bei der Start- und Endefunktion # 4. Verarbeitung von beliebig großen Fuzzysets # 5. Verarbeitungen von mehreren Eingangs- und Ausgangsvariablen from PT1 import cPT1,cPT1_ class Process(object): # initialization def __init__(self,FuzzySystem): self.rltemp = 10. self.vltemp = 10. self.FuzzySystem = FuzzySystem # Definition der Regelglieder # Mischer self.Mischer = cPT1(1.,2.0,20.) # Wärmespeicher self.Speicher = cPT1(1.,4.0,20.) self.ftime = 0. def step(self,time_step): # definition of value to reach with difference to another value self.inMischer = self.FuzzySystem.calculate(self.rltemp) # mixer PT1 function self.vltemp = self.Mischer.getoutput(self.ftime,self.inMischer) # container PT1 function self.rltemp = self.Speicher.getoutput(self.ftime,self.vltemp) self.ftime += time_step