@@ -21,6 +21,8 @@ $(TYPEDFIELDS)
2121 max_acc:: Float64 = 0.0
2222 " damage at maximum acceleration"
2323 damage_factor:: Float64 = 0.0
24+ " jerk factor for damage calculation"
25+ jerk_factor:: Float64 = 0.0
2426 " set value of the reel-out speed, input of the speed controller [m/s]"
2527 v_set_in:: Vector{Float64} = zeros (Float64, Q)
2628 " reel-out speed [m/s]"
@@ -66,13 +68,14 @@ Create and initialize a logger for the winch controller system.
6668# Returns
6769A logger object configured to record data at the specified interval for the given duration.
6870"""
69- function WCLogger (duration, dt, max_force= 0.0 , max_acc= 0.0 , damage_factor= 0.0 )
71+ function WCLogger (duration, dt, max_force= 0.0 , max_acc= 0.0 , damage_factor= 0.0 , jerk_factor = 0.0 )
7072 samples = Int (duration / dt + 1 )
7173 lg = WCLogger (samples)
7274 lg. time = range (0.0 , duration, samples)
7375 lg. max_force = max_force
7476 lg. max_acc = max_acc
7577 lg. damage_factor = damage_factor
78+ lg. jerk_factor = jerk_factor
7679 lg
7780end
7881
@@ -161,23 +164,9 @@ function v_err(logger::WCLogger)
161164 1 / v_mean * rms (filter (! isnan, logger. v_err))
162165end
163166
164- function damage (logger:: WCLogger ; rms= false , jerk= false )
165- if jerk
166- return damage3 (logger)
167- elseif rms
168- return damage2 (logger)
169- end
170- logger. damage_factor * (maximum (norm .(logger. acc)) / logger. max_acc)^ 2
171- end
172-
173- function damage2 (logger:: WCLogger )
174- rms_damage = rms (filter (! isnan, logger. acc))
175- logger. damage_factor * ((0.83 * rms_damage + 0.55 * (maximum (norm .(logger. acc)))) / logger. max_acc)^ 2
176- end
177-
178- function damage3 (logger:: WCLogger )
179- jerk_factor= 0.9
180- logger. damage_factor* 4 * ((jerk_factor* (rms (logger. jerk) / logger. max_acc^ 2 )^ 2 +
167+ function damage (logger:: WCLogger )
168+ jerk_factor= logger. jerk_factor
169+ logger. damage_factor* ((jerk_factor* (rms (logger. jerk) / logger. max_acc^ 2 )^ 2 +
181170 (1 - jerk_factor)* (maximum (norm .(logger. acc)))) / logger. max_acc)^ 2
182171end
183172
@@ -193,6 +182,6 @@ the provided logs, stored in the `logger`. See: [Combined performance](@ref).
193182# Returns
194183- The gamma value associated with the log of the used test case.
195184"""
196- function gamma (logger:: WCLogger ; rms = false , jerk = false )
197- 1 - 0.5 * (f_err (logger) + v_err (logger)) - damage (logger; rms, jerk )
185+ function gamma (logger:: WCLogger )
186+ 1 - 0.5 * (f_err (logger) + v_err (logger)) - damage (logger)
198187end
0 commit comments