From 254a35486fa8d8b9195b885bb8e07f4cd6da2777 Mon Sep 17 00:00:00 2001
From: Orhan-Timo Altan <timo.altan@th-koeln.de>
Date: Wed, 3 Aug 2022 20:46:15 +0200
Subject: [PATCH] Angepasst an die Konvention der thk_libs

---
 README.md                                 | 48 ++++++++++++++++++++++-
 examples/{example.ino => pid_example.ino} | 10 ++---
 pid_controller.cpp                        | 25 ------------
 thk_pid_controller.cpp                    | 25 ++++++++++++
 pid_controller.h => thk_pid_controller.h  |  4 +-
 5 files changed, 77 insertions(+), 35 deletions(-)
 rename examples/{example.ino => pid_example.ino} (78%)
 delete mode 100644 pid_controller.cpp
 create mode 100644 thk_pid_controller.cpp
 rename pid_controller.h => thk_pid_controller.h (75%)

diff --git a/README.md b/README.md
index ea61e82..b9a7a5e 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,49 @@
-# BITs PID Controller
+# PID Controller
+
+Mit dieser Bibliothek kann ein PID Regler erzeugt werden, der mit Hilfe einer Führungsgröße und dem Ist-Wert die Regelgröße berechnet.
+
+## **Installation:**
+
+Um diese Klassen verwenden zu können, muss dieses Repository geklont und in das Library-Verzeichnis der Arduino-IDE kopiert werden.<br />
+<br />
+
+## **Anwendung:**
+
+Zur Verwendung siehe zunächst das Beispiel `pid_example.ino`<br />
+<br />
+
+**Einbinden der Bibliothek:**
+```Arduino
+#include <thk_pid_controller.h>
+```
+
+**Instanziieren:**
+```Arduino
+thk_PIDController pid_controller(proportional_gain, integrational_gain, differential_gain, setpoint);
+```
+
+- `proportional_gain`: Proportional Faktor
+- `integrational_gain`: Integral Faktor
+- `differential_gain`: Differential Faktor
+- `setpoint`: Führungsgröße<br />
+<br />
+
+### **Funktionen:**
+
+**Übergeben einer neuen Führungsgröße an den Regler:**
+```Arduino
+pid_controller.set_setpoint(setpoint);
+``` 
+
+**Berechnen der Regelgröße:**
+```Arduino
+controlled_variable = pid_controller.compute(input_value);
+``` 
+
+**Zurücksetzen von I- und D-Anteil:**
+```Arduino
+pid_controller.reset();
+``` 
+
 
 
diff --git a/examples/example.ino b/examples/pid_example.ino
similarity index 78%
rename from examples/example.ino
rename to examples/pid_example.ino
index 575199f..c998ce5 100644
--- a/examples/example.ino
+++ b/examples/pid_example.ino
@@ -1,4 +1,4 @@
-#include <pid_controller.h>
+#include <thk_pid_controller.h>
 
 double prop_gain = 0.1;
 double int_gain = 0.1;
@@ -8,7 +8,7 @@ double input_value = 0;
 uint8_t step = 0;
 uint8_t setpoint = 50;
 
-PIDController pid(prop_gain, int_gain, diff_gain, 0);
+thk_PIDController pid(prop_gain, int_gain, diff_gain, 0);
 
 void setup(){
     Serial.begin(115200);
@@ -17,11 +17,7 @@ void setup(){
 
 void loop(){
     step++;
-    // if (input_value < 70)
-    // {   
-        
-    //     pid.set_setpoint(100);
-    // }
+
     input_value = pid.compute(input_value);
 
     if(setpoint - input_value < 0.01)
diff --git a/pid_controller.cpp b/pid_controller.cpp
deleted file mode 100644
index 5334491..0000000
--- a/pid_controller.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <pid_controller.h>
-
-PIDController::PIDController(double Kp, double Ki, double Kd, double setpoint) : Kp(Kp), Ki(Ki), Kd(Kd), setpoint(setpoint) {}
-
-void PIDController::set_setpoint(double setpoint)
-{
-    this->setpoint = setpoint;
-}
-
-double PIDController::compute(double input_value)
-{
-    double error_value = setpoint - input_value;
-
-    out_p = Kp * error_value;  // P-Anteil
-    out_i += Ki * error_value; // I-Anteil
-    out_d -= Kd * error_value; // D-Anteil
-
-    return out_p + out_i + out_d;
-}
-
-void PIDController::reset()
-{
-    out_i = 0;
-    out_d = 0;
-}
\ No newline at end of file
diff --git a/thk_pid_controller.cpp b/thk_pid_controller.cpp
new file mode 100644
index 0000000..2e094ed
--- /dev/null
+++ b/thk_pid_controller.cpp
@@ -0,0 +1,25 @@
+#include <thk_pid_controller.h>
+
+thk_PIDController::thk_PIDController(double Kp, double Ki, double Kd, double setpoint) : Kp(Kp), Ki(Ki), Kd(Kd), setpoint(setpoint) {}
+
+void thk_PIDController::set_setpoint(double setpoint)
+{
+    this->setpoint = setpoint;
+}
+
+double thk_PIDController::compute(double input_value)
+{
+    double error_value = setpoint - input_value;
+
+    out_p = Kp * error_value;  // P-Anteil
+    out_i += Ki * error_value; // I-Anteil
+    out_d -= Kd * error_value; // D-Anteil
+
+    return out_p + out_i + out_d;
+}
+
+void thk_PIDController::reset()
+{
+    out_i = 0;
+    out_d = 0;
+}
\ No newline at end of file
diff --git a/pid_controller.h b/thk_pid_controller.h
similarity index 75%
rename from pid_controller.h
rename to thk_pid_controller.h
index 1faf019..3392488 100644
--- a/pid_controller.h
+++ b/thk_pid_controller.h
@@ -3,10 +3,10 @@
 
 #include "Arduino.h"
 
-class PIDController
+class thk_PIDController
 {
     public:
-        PIDController(double Kp, double Ki, double Kd, double setpoint);
+        thk_PIDController(double Kp, double Ki, double Kd, double setpoint);
         double compute(double input_value);
         void set_setpoint(double setpoint);
         void reset();
-- 
GitLab