@@ -186,17 +186,31 @@ def apply_static_rate_limits(
186
186
offsets_limited_rl [:, i , :, :] = offsets_limited_rl [:, i + 1 , :, :] + delta_yaw
187
187
offsets_array = (offsets_limited_lr + offsets_limited_rl ) / 2
188
188
189
- # Apply ws rate limits (increasing ws)
189
+ # Apply ws rate limits
190
+ offsets_limited_lr = offsets_array .copy ()
190
191
for j in range (1 , len (ws_array )):
191
- delta_yaw = offsets_array [:, :, j , :] - offsets_array [:, :, j - 1 , :]
192
+ delta_yaw = offsets_limited_lr [:, :, j , :] - offsets_limited_lr [:, :, j - 1 , :]
193
+ delta_yaw = np .clip (delta_yaw , - ws_rate_limit * ws_step , ws_rate_limit * ws_step )
194
+ offsets_limited_lr [:, :, j , :] = offsets_limited_lr [:, :, j - 1 , :] + delta_yaw
195
+ offsets_limited_rl = offsets_array .copy ()
196
+ for j in range (len (ws_array )- 2 , - 1 , - 1 ):
197
+ delta_yaw = offsets_limited_rl [:, :, j , :] - offsets_limited_rl [:, :, j + 1 , :]
192
198
delta_yaw = np .clip (delta_yaw , - ws_rate_limit * ws_step , ws_rate_limit * ws_step )
193
- offsets_array [:, :, j , :] = offsets_array [:, :, j - 1 , :] + delta_yaw
199
+ offsets_limited_rl [:, :, j , :] = offsets_limited_rl [:, :, j + 1 , :] + delta_yaw
200
+ offsets_array = (offsets_limited_lr + offsets_limited_rl ) / 2
194
201
195
- # Apply ti rate limits (increasing ti)
202
+ # Apply ti rate limits
203
+ offsets_limited_lr = offsets_array .copy ()
196
204
for k in range (1 , len (ti_array )):
197
- delta_yaw = offsets_array [:, :, :, k ] - offsets_array [:, :, :, k - 1 ]
205
+ delta_yaw = offsets_limited_lr [:, :, :, k ] - offsets_limited_lr [:, :, :, k - 1 ]
206
+ delta_yaw = np .clip (delta_yaw , - ti_rate_limit , ti_rate_limit )
207
+ offsets_limited_lr [:, :, :, k ] = offsets_limited_lr [:, :, :, k - 1 ] + delta_yaw
208
+ offsets_limited_rl = offsets_array .copy ()
209
+ for k in range (len (ti_array )- 2 , - 1 , - 1 ):
210
+ delta_yaw = offsets_limited_rl [:, :, :, k ] - offsets_limited_rl [:, :, :, k + 1 ]
198
211
delta_yaw = np .clip (delta_yaw , - ti_rate_limit , ti_rate_limit )
199
- offsets_array [:, :, :, k ] = offsets_array [:, :, :, k - 1 ] + delta_yaw
212
+ offsets_limited_rl [:, :, :, k ] = offsets_limited_rl [:, :, :, k + 1 ] + delta_yaw
213
+ offsets_array = (offsets_limited_lr + offsets_limited_rl ) / 2
200
214
201
215
# Flatten array back into 2D array for dataframe
202
216
offsets_shape = offsets_array .shape
0 commit comments