You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The winch controller has 34 parameters (see [Winchcontroller Settings](@ref)). To determine and optimize all of them manually is time consuming and error prone, in particular if the physical system is changing. Therefore some form of automated tuning is desirable.
9
+
10
+
## Methodology
11
+
When the [Performance Indicators](@ref) are defined, an optimizer can be used to determine the controller parameters. The controller is using three PID controllers and a mixer. The following parameters are tuned automatically:
12
+
```julia
13
+
wcs.i_speed # the speed controller gain
14
+
wcs.p_speed # the speed controller proportional gain
15
+
wcs.t_blend # the blending time for switching between controllers
16
+
wcs.pf_low # the lower force controller gain
17
+
wcs.if_low # the lower force controller proportional gain
18
+
wcs.pf_high # the upper force controller gain
19
+
wcs.if_high # the upper force controller integral gain
20
+
wcs.df_high # the differential gain of the upper force controller
21
+
```
22
+
The global, blackbox optimizer package [NOMAD.jl](https://github.com/bbopt/NOMAD.jl) is used for the optimization process, together with a test case that mimics extreme wind conditions.
23
+
With a very simple system model it allows to find an optimal solution within less than one minute.
24
+
25
+
## Example
26
+
To run the auto-tuning script, launch Julia and execute:
27
+
```julia
28
+
include("scripts/autotune.jl")
29
+
```
30
+
It will use the initial conditions provided in the file "data/wc_settings.yaml" and save the result in "data/wc_settings_tuned.yaml".
31
+
32
+
All values are limited to $\hat x \le 2.5x~\land~\hat x \le x/2.5$, where $x$ is the original value and $\hat x$ the optimized value. Therefore make sure that none of the original values is zero.
The reason to use the mean square error for the velocity is that in this mode of operation the error only reduces the power output. Short peak errors are usually not a problem.
23
23
24
24
## Damage
25
-
While the performance shall be maximized, the damage shall be minimized. Here, a very simple
25
+
While the performance shall be maximized, the damage shall be minimized. Here, a simple
where $a$ is the actual acceleration, $a_{max}$ the specified, maximal acceleration and $\Delta$ the damage that occurs at $a=a_\mathrm{max}$. The default value used is $\Delta=0.2$, but in the end this value needs to be determined based on the specification of the Winch. Control-codesign can be used to determine this parameter.
30
+
where $a$ is the actual acceleration, $a_{max}$ the specified, maximal acceleration, $\mathrm{rms}(j)$ the root-mean-square of the jerk, the derivative of the acceleration, $\Delta$ the damage that occurs at $a=a_\mathrm{max}$ and $\zeta$ the jerk factor. The default values used are $\Delta=0.05$ and $\zeta = 0.9$, but in the end this value needs to be determined based on the specification of the Winch. Control-codesign can be used to determine this parameter.
31
+
32
+
Using the forth potence of the jerk has proven to be effective in suppressing any oscillations and reducing overshoot of the controller while keeping it fast and stable.
31
33
32
34
## Combined performance
33
35
The combined performance indicator $\gamma$ in the range of 0..1 is defined as
the average of the error of the speed and the force controllers minus the damage caused by the acceleration of the winch.
39
+
the average of the error of the speed and the force controllers minus the damage caused by the acceleration of the winch. The force error has a slightly higher weight, because it is more critical for the controller performance.
38
40
39
41
## TODO
40
42
- Quantify the robustness. This could be done by linearizing the system and checking gain and phase margin (for example), or by varying the model parameters (e.g. inertia of the drum) and checking if the combined performance stays above a required minimum. Possible robustness requirements:
0 commit comments