Control Library by altb

Dependents:   My_Libraries IndNav_QK3_T265

Revision:
14:9184aa9fdac7
Parent:
0:d49418189c5c
Child:
15:c70cad2f4e64
--- a/IIR_filter.cpp	Mon Oct 21 17:14:57 2019 +0000
+++ b/IIR_filter.cpp	Mon Oct 28 07:53:02 2019 +0000
@@ -60,6 +60,29 @@
     this->K = (double)K;
 }
 
+void IIR_filter::setup(float T, float Ts, float K){
+    
+    // filter orders
+    nb = 1; // Filter Order
+    na = 1; // Filter Order
+    
+    // filter coefficients
+    B = (double*)malloc((nb+1)*sizeof(double));
+    A = (double*)malloc(na*sizeof(double));      
+    B[0] = (double)Ts/((double)Ts + 2.0*(double)T);
+    B[1] = B[0];
+    A[0] = ((double)Ts - 2.0*(double)T)/((double)Ts + 2.0*(double)T); 
+    
+    // signal arrays
+    uk = (double*)malloc((nb+1)*sizeof(double));
+    yk = (double*)malloc(na*sizeof(double));
+    uk[0]= uk[1] = 0.0;
+    yk[0] = 0.0;
+    
+    // dc-gain
+    this->K = (double)K;
+}
+
 // G(s) = K*w0^2/(s^2 + 2*D*w0*s + w0^2) 
 IIR_filter::IIR_filter(float w0, float D, float Ts, float K){