diff --git a/doc/rtd/content/99_appendices/appendix2/sub/pool/mlpro_oa/control/controllers/images/.$MLPro-OA-Control-RL-PID-Controller_class_diagram.drawio.bkp b/doc/rtd/content/99_appendices/appendix2/sub/pool/mlpro_oa/control/controllers/images/.$MLPro-OA-Control-RL-PID-Controller_class_diagram.drawio.bkp new file mode 100644 index 000000000..58ef26a26 --- /dev/null +++ b/doc/rtd/content/99_appendices/appendix2/sub/pool/mlpro_oa/control/controllers/images/.$MLPro-OA-Control-RL-PID-Controller_class_diagram.drawio.bkp @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/doc/rtd/content/99_appendices/appendix2/sub/pool/mlpro_oa/control/controllers/images/MLPro-OA-Control-RL-PID-Controller_class_diagram.drawio b/doc/rtd/content/99_appendices/appendix2/sub/pool/mlpro_oa/control/controllers/images/MLPro-OA-Control-RL-PID-Controller_class_diagram.drawio index 58ef26a26..4fd6b082d 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/pool/mlpro_oa/control/controllers/images/MLPro-OA-Control-RL-PID-Controller_class_diagram.drawio +++ b/doc/rtd/content/99_appendices/appendix2/sub/pool/mlpro_oa/control/controllers/images/MLPro-OA-Control-RL-PID-Controller_class_diagram.drawio @@ -1 +1,179 @@ -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 \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mlpro/oa/control/controllers/oa_pid_controller.py b/src/mlpro/oa/control/controllers/oa_pid_controller.py index a0fd62af2..5dea671a8 100644 --- a/src/mlpro/oa/control/controllers/oa_pid_controller.py +++ b/src/mlpro/oa/control/controllers/oa_pid_controller.py @@ -5,8 +5,8 @@ from mlpro.bf.math.basics import Log,Set,MSpace from mlpro.bf.mt import Log, Task from mlpro.bf.systems import Action -from mlpro.bf.control.basics import CTRLError, ControlError, Controller -from mlpro.bf.systems.basics import ActionElement +from mlpro.bf.control.basics import CTRLError, ControlError, Controller, SetPoint +from mlpro.bf.systems.basics import ActionElement, State from mlpro.bf.various import Log from mlpro.bf.streams import InstDict, Instance @@ -39,21 +39,42 @@ def _setup_policy_action_space(self) -> MSpace: pass - def _setup_policy(self,**kwags)-> Policy: - return Policy() + def _setup_policy(self,p_param_policy:dict)-> Policy: + pass def _run(self, p_inst:InstDict): - self._adapt() - action = self.compute_action(p_inst.values()[0]) - return action + pass + def compute_action(self, p_ctrl_error: ControlError) -> Action: return self._pid_controller.compute_action(p_ctrl_error) - def _adapt(self): + def _adapt(self, p_setpoint: SetPoint, p_ctrl_error: ControlError, p_state: State, p_action: Action,p_reward:float) -> bool: + + """ + Specialized custom method for online adaptation in closed-loop control scenarios. + + Parameters + ---------- + p_ctrl_error : ControlError + Control error. + p_state : State + State of control system. + p_setpoint : SetPoint + Setpoint. + p_Action : Action + control variable + p_reward : float + Output valaue of the reward function + """ + pass + + + +