From 05feb29136584bcb51f7bafd95f808802aa8f4e2 Mon Sep 17 00:00:00 2001
From: David Robert Verelst <dave@dtu.dk>
Date: Thu, 4 Oct 2018 10:29:09 +0200
Subject: [PATCH] prepost.hawcstab2: also read the aero gains from the
 controller tuning

---
 wetb/prepost/hawcstab2.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/wetb/prepost/hawcstab2.py b/wetb/prepost/hawcstab2.py
index 5d630e9..825f4e9 100644
--- a/wetb/prepost/hawcstab2.py
+++ b/wetb/prepost/hawcstab2.py
@@ -410,10 +410,14 @@ class ReadControlTuning(object):
     def __init__(self):
         """
         """
-        pass
+        self._aerogains = False
 
     def parse_line(self, line, controller):
 
+        if line.startswith('Aerodynamic gains'):
+            self._aerogains = True
+            return
+
         split1 = line.split('=')
         var1 = split1[0].strip()
         try:
@@ -449,8 +453,17 @@ class ReadControlTuning(object):
                 elif i == 10:
                     controller = 'aero_damp'
                     setattr(self, controller, dummy())
-                else:
+                elif not self._aerogains:
                     self.parse_line(line, controller)
+                elif self._aerogains:
+                    break
+
+        arr = np.loadtxt(fpath, skiprows=17)
+        columns = ['theta', 'dq/dtheta', 'dq/dtheta_fit', 'dq/domega',
+                   'dq/domega_fit']
+        self.aero_gains_units = ['[deg]', '[kNm/deg]', '[kNm/deg]',
+                                 '[kNm/(rad/s)]', '[kNm/(rad/s)]']
+        self.aero_gains = pd.DataFrame(arr, columns=columns)
 
         # set some parameters to zero for the linear case, or when aerodynamic
         # gain scheduling is not used
-- 
GitLab