File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed
Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -250,9 +250,21 @@ export class L2F{
250250 async set_parameters ( ids , parameters ) {
251251 await this . initialized
252252 ids . forEach ( ( id , i ) => {
253+ const previous_parameters = this . parameters [ id ]
253254 this . parameters [ id ] = structuredClone ( parameters [ i ] )
254255 this . perturbed_parameters [ id ] = structuredClone ( parameters [ i ] )
255256 this . states [ id ] . set_parameters ( JSON . stringify ( parameters [ i ] ) )
257+ // the new parameters define the RPM range (all other state variables are natural and have the same scaling)
258+ const previous_min_rpm = previous_parameters . dynamics . action_limit . min
259+ const previous_max_rpm = previous_parameters . dynamics . action_limit . max
260+ const min_rpm = parameters [ i ] . dynamics . action_limit . min
261+ const max_rpm = parameters [ i ] . dynamics . action_limit . max
262+ const state = JSON . parse ( this . states [ id ] . get_state ( ) )
263+ state [ "rpm" ] . forEach ( ( rpm , j ) => {
264+ const new_rpm = previous_min_rpm + ( rpm - previous_min_rpm ) * ( max_rpm - min_rpm ) / ( previous_max_rpm - previous_min_rpm )
265+ state [ "rpm" ] [ j ] = Math . max ( Math . min ( new_rpm , max_rpm ) , min_rpm )
266+ } )
267+ this . states [ id ] . set_state ( JSON . stringify ( state ) )
256268 } )
257269 await this . ui . episode_init_multi ( this . ui_state , this . parameters )
258270 this . remove_reference_markers ( )
You can’t perform that action at this time.
0 commit comments