diff --git a/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/.$MLPro-BF-Control_class_diagram.drawio.bkp b/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/.$MLPro-BF-Control_class_diagram.drawio.bkp deleted file mode 100644 index 3a1949fe6..000000000 --- a/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/.$MLPro-BF-Control_class_diagram.drawio.bkp +++ /dev/null @@ -1 +0,0 @@ -7R1rc9q49tdkNrszMH4DHxPSdLuXZtOQ3bT7hRG2ADfGprZpQn/9lWT5KRnbwQYCph2CZVuP85LOQ0cX8nD5+tEFq8Vnx4DWhSQYrxfyzYUkSf2Bgv7gkk1QIkqyFpTMXdOgZXHB2PwFaaFAS9emAb3Ug77jWL65Shfqjm1D3U+VAdd1XtKPzRwr3eoKzCFTMNaBxZY+mYa/oAOTw2HgG39Cc74Im9ZUOuQlCJ+mQ/EWwHBeEkXyhwt56DqOH/xavg6hhcEXAubp0+bJGj1rH//64v0A/1z/7/Hu305Q2W2VV6IxuND231z1zNjci/7T9c3sfjZZ/fj4pWMMO30Khp/AWlOIDR8fRh8Q5F1UfDmddT3fhWDpdT/Zng9sHf5OoeFvQhh7L+bSAja6up45tj+md2R0DSxzbqPfOuo5dFHBT+j6JkLPFb3hOytUqi9MyxiBjbPG40Pt6M/h1fXCcc1fqFpgoVsiKkC3XZ9SmqSlnhjjN1GxgEpd6KFn7kOgiVHRCHg+fUZ3LAusPHNKOowfWQJ3btrXju87y7AiZ20b0KBXERUEXXGd54iwcMnMtKyhYyHoYdDIs9lM0vXoycQdQ5tqKu59CL1b5k30QffnLjBMNIbEvVvyQfdKEgYlIAx7+JrgC0ooH6GzhL67QY/QuwNJ6NKXKOPLvX5w/RJzkSxQzlgkGEiRKPNSxp1HlUftPSBGB/YcwTxqENWVak5UBKY5UeM0J2np5oCF6MwGPrzGWPOSHIF+JMYaFxE+qcIzA4ZnGJawTMIOC39p5ZJKyBsWnPkczliahoGru/ZWQDft+SPmlJuOGJeMyIuEz2jJAwWMTMjWBz4IKBsTrgWm0Lp3PNM3HVy/Gzx7vXJM2yfQU68v1BtS4iJqQ+zuApPQFUQc8wIx13AobrtcKSa5TRqRRfTVzyevFKK3YHX+z5fOj44qffVG4ydfH3xVHJ8Kz5QgRCLFdazxAg3WyAjDMfkb3GoFYhWB2NchXyBO+6qiCkcqEMWeOuiGjE8ptt/rlSPZUG6dhEjkMo/IMM85S8St8uUYBeI1fAJQXnz5IhqKCm97z0tj1FHZpaG+QDQKJx70CYgu8bijK3RxIV+h7zH072kBKxrR4P1iTAdCMI1UhUUqLnLQuzOLCKAFog9ocxCdRug1AuJQ6KoYtdIQXYvxdSG2sTxPCR4BfRqkAlkpRwVZpn8LGcidv37Z4zH8zx0Lw9GL9vPaHHZCRS6BQ2ggFYteIlAtnLljA+tDXJqZIeJnRg5hWcyx36Hvb+ikBda+k5YNeWCGtnGFtUJUPLUcPLXhIjxT0Lbgq+l/xb8RPoOrb4k7N6/Jiw29qDZpeM7a1eEWxqGzApqU59Df8pxCK8Tg3EoKLrSAb/5Ma7S5kwmCD9gkHqDEH9ccMmdIf4LGTm1iRpes/g76EfTkrRPNNtgmZNLnteWbdKlmoRUVZgRZxGi9TJai5gRm/fbkuM9YdhzVCk6Rj2gFJ5/MCo5VaUuv38TBKem0XL4SOXagyeO3+w9kVkeXwm+E0ToxT/120nO7AWcADZhLkFslU+mZHfH53mZ2bo8ljso7ubv6nMB5i+PdcKwNDozj1lRVP1IH6mEVM4XlW2AYEz2SzIFeFl8Hall2NZRYKV0MpYsrAZft68dqArGLYWLi6YzqjSMToU29xnjEnH3WymM9lCoKJecYubc7ra6+j/3/rOfek7Iwvl71X8WeY3MMQ7qzXK19OAE6Zu6AVCF1N1FCTTigEA0IHUSp84ChhSvyVksYuxIGZym634lJVRnKmID53IVzEBGHd9lKgTqQrZW0JDZnQxIZJB6rDUms3x6kULAmDULbjIP12YPKIs204N2Xu81/k6vP0Je02++u+C3szX5xVhI3GRDViCxJZZG1Bat7QM7WbnLclTq0gWs6F1yHJb15VAavo3JZno7BS5QVoSsK8Sdt/RLFfsk1gKgp+VR8GuYvqdj8RdkL/QyZqDWO8EVS7R7O5ixgrHkkawG7kG+j/6eN8AsMfEEgMikpAW2HzAqNUYEqHZgKejKrilDjyUTf6ESmpUwow6DwhGlhD8xfNp6wOebvM2hncHruttHqaBWFkgELTVlHexLLzR7016vLrC3pbLg5KdmbQ7x4aDkeriUTmEcqXCTKpw5wjUuOTTET53nahFDV2vQGQpAPLdll1uo8XC/XSC9nNjUEavEj8J5blfj0VeIeE7SkljWEn4ESLLMzZ74SjFnmtPWhymtguTw9HosCLLOqT1YBjiRni+0dsb1PRZfrhpFYBp9YCBzU3RapuWfgZN0Dug+u4Iah462CWyda96ng8p2pbAz0xF3TSArTxqPHTIy3696Y+rnvwqgL6/vUbvnCm9Vu9WBqhgHqc4R4G0LTFEkcXs9lncAkbuoj9LFW2mq6F2er6apCdrdDBU33lLar8hmniru31XTzBc870nTZVVOr6TaF7YO7dOXWt9cAWstqtI1pPqzYbjWfisvcykjvHzp4WGK9OcSt57tWsHGgMA3BAXe7oH4hUogjSMb0ivFBxnseWoLdjWBLq+pyY3JKYbB4TuHuYZq/RAT11hxR+49339pvNqTaapXps1am2dQB5ZXp3skr02HCv2Jluk0akCtz3o8irRS7jNuY6Wox09Wp4OAKttL6FhtA6x4VbO5ubVaSt/p1NXWlOs73qV/zd2KzWEe69AQNFaAGgmwSf/yxCgrOAedVY6Wr43yv3mQup3OcyW1ehmOgjH06lfnGC5nB4jEbLxAC3E2Q8LGnhtffkjfjnI/kqqGkj7xN/ked9VHpV8/6KCpK01kfuakIDp+DNNbsDp6hgEdpfKjtSFe7KQgcF3tqvxXHnnaU6Thbm1ojNrWC7ATlc3P2T35fhsILXciLViHcddpGl+pWtsYOo2hOKeM4I9rcnPUi+fBGtDY7ZwNo3aMRjb/sYmOPJhPTNv3JJNCqbbCMAwIQbCKWvsNWYxytUG+owmrikmMbluA1agq7LrsPuPhxgZZeRiPN6hbwvIkXnp8TtJzZbd1Asz9Nb41Y4lcM5Ck+oy3swC2wvGbAbDlztLKbRy2NnHl3OBn9/XFyNRo10CK2yj2/oOUkzqF62ma57HTAiIPSomRnQ+ygsQNX2HVe4iiV9ii+KorS6RzFh1STt588dVKH8fGZpo30LRR8auWUsXs8e4rrnmBjDNDcScT/NIVa7cfaIaWOa0C3owd8eUVedS87nWT57wRg4Ruh7+IRLldWEJM5I54N5wVvmtOTkV8megQuEYwByUrc7XbD3qDBTWMvSIbsYmGFyeRlYfpwjCgD331xwSpNkRn6SxOVlCutq8u4rAyjoQopWdqULBPFwTajjypw5IzEITtV3p3uZvpf/07lPx8+LHp3Y/3n1fIV/uCeYxdgGs+mhC5CiMaEJAdjSRYJXngQclgmsqS3naRxg52gGkzPorJ6ZasYwTm0DfIErcvN1p4m0agsGE+mI8zLZUqKIINmzhRkikaq8Qa6dXy8sSAGsrmtJWSEO59ektU0iRBP/Po9vwN0tIWj4KIL/QVLzLb21FsF4GCL8oaVeuwTHtzKdeZoHeWVqrbWItI84hLTAIHfd68deEAKK5YqPk5yvMbKXASzAO3VCDTNunmYqkh/1biiDj5MlaQ6D3zfNafrYBsCko+SgKTlwjFwRrz6sHQHXzBNrqeWqWPZHDd6GzQXYmwKk3MqNgJUlEp1IvSN6OM1sRXMCaEUBU3k0209SCEYuTXtBXRNAuci7CwAHrTpZfGDJl8X5uOjXhZIDWHCALVWNPK6MKnGHJTs0QIfKVIEWCE8b5N9Px7KZ0EqvGXIabpKDP8YSCsHDnVJ17Kd5Rvk8lf9/DU+T3NIG0KYMCVNI9EzjBZAYZNZ7rNKRGDuaEoNUISukPyE+6XCg/FYLQAHqwySH4VjfAg1hdq1AonRCm7gChKDhsAJeuNEiCRQnqf5h7gfZe5HloeyFop0NAqxAgbKiChVxmlhkBLFaEdUe1J3ICoRgnoplHa4NiRV7AqKqMUfDlbV4v0zmSglTegqYl+Q5EEf/UsbzkQNk54siGq/h74z5qog9IZWF9MM7/TbLtIS+qok9fC/0ONTqpEgbKe4kayZ2ZnNPJh6pWrIV1/o9mU1Zjs12+sMo+wWyMXlJNau8ymYRTArzVxnebzMJLTMlGUm1Eu5r2iCLPbwdyYQpy5u2t5KVXbaJDCwjbnqovgS+2Ran02+z6Y4uI3jk4kWMEX+nKYWOAHXyNEnE9vGWd9g0Zz8sLybJfx37crhsgqbzYxhlTPy5GyVJrs4ckrQWg1uHW732ZjgVhjW6sA+RmEoalJXFRIrk/RqppWGfF5hg0FaaZgjTt6pNCwRudBKw1xpaADYn3Gloab34TQnXOfg0lDSlK7aT2jhadtXKw35vNJGShdKw35pUjy0NOQn+uKhuMCXXz7sR+CFU/DigSLrPrfBsrU8Loinw9t4PlwCRGMcH31+eAb2LOzQeN3V7FQLwDvFGSNfrR1MgrCDXmBPPaax5rW0mmkhDMVtpvY4z1iT9Yf7Luttw1mh+ulRudfA2+LkOwpCnWJCfYBrD3oN8mYIfyIYMPxJ6GETVYcZGRrpNvnLIhQ/9nl07zqdT6jej5ulDTxz3QC/p8MlMguB9KryPcVdJv0LSoOLUE0UulLaKMlZ+0VlqbXfNh/Cbgd38qxDB10ABAXDBdSfLdPztzr+UzPQHVjifUBR1hTcL697EW1+4nMOaSh4SQeeDgwSH6Fve+WB7OVH68Y4HiM7GcUPA29j6wvXsZ01non1Bd7+hX44Mwxbmj43nqMFpCR6plGuMneNEWTirylSFOeEB/lvhtuzQFY+vSEEIywY45gSc4b4NKj09u+Vby4zbeSJ86AkEdV9unKqhNJ8EIE0kMsIJFluSiDxM+H0GZQdcyacargpTDOilk1oE+4u2X8a3/ysJ7y8I8Gipc3iuw+n7O4b6Qo2eOaT9lszjpRO6SuJxVEU78faxuUhieWh3IQjAVudVzKKAuKsko3pAAlHuN0rzup7LijOzeNbP9b3mYGE3z025mLiUeVeoLkTWLW/JYN6yWCfJ8Vyu9dG3tSP1H2eE8vvHht6mM5DU8zoDeRIOZvkN8Z6ZWF7BJwYiGpjKDtk1RR0pLlUNEeaA4c81Gaq2VGylM0eXUemGm7/eJErzaRneHKRKouHgC2LzvQ7JGnnicXS36wgT2x1WdveJ5uoTHhcZLuw4NjWhvMc31KYa7Z7n2kdGtCsNWmbZq0MOJquPOj2BizJajVkduCS7IDB43FmEBYiPNWSQZhr2KToKJmqegdD3pu2KWmcfEdFiakFreidnfczbYMk98iwWyKqLuOC1sh4+mmNlcHbk3VJPamAld6TYZHvUmH5JfeoMLxM1f1zsTqxBLlV4BxlJmNuj9mwvnM1LDaF4sNbEVnj8WSmxyfxoiX6EviL7u3aPv1jYirqf/kkcBTmQm73eNn5zstcWD8T79NcyJ+aWUGdNhdu5+jWVNiaCis23JoKG18a7NVUyO0y61o678MFtxwoWdOCPwxPOdjygI3jbc8WPAbCkA+tCvK2NO/BbQBfTc8PJppZtF6hzoQ2l/NbLV0ysXQljP6Zjawya/WqK5czunTxEiVhmkI4WHx2DIif+D8= \ No newline at end of file diff --git a/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio b/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio index c10b73510..68274d0ab 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio +++ b/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio @@ -1,313 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +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 \ No newline at end of file diff --git a/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio.png b/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio.png index 3d08bb4cc..83b092cd4 100644 Binary files a/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio.png and b/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/MLPro-BF-Control_class_diagram.drawio.png differ diff --git a/src/mlpro/bf/control/basics.py b/src/mlpro/bf/control/basics.py index a1f8f1ebd..53f362bb8 100644 --- a/src/mlpro/bf/control/basics.py +++ b/src/mlpro/bf/control/basics.py @@ -7,10 +7,11 @@ ## -- yyyy-mm-dd Ver. Auth. Description ## -- 2024-08-31 0.0.0 DA Creation ## -- 2024-09-04 0.1.0 DA Updates on class design +## -- 2024-09-07 0.2.0 DA Classes CTRLError, Controller: design updates ## ------------------------------------------------------------------------------------------------- """ -Ver. 0.1.0 (2024-09-04) +Ver. 0.2.0 (2024-09-07) This module provides basic classes around the topic closed-loop control. @@ -20,7 +21,7 @@ from mlpro.bf.mt import Task, Workflow from mlpro.bf.math import Function from mlpro.bf.streams import InstDict, Instance, StreamTask, StreamWorkflow, StreamShared, StreamScenario -from mlpro.bf.systems import Action, System +from mlpro.bf.systems import ActionElement, Action, System from mlpro.bf.various import Log @@ -32,7 +33,18 @@ class SetPoint (Instance): """ """ - pass +## ------------------------------------------------------------------------------------------------- + def _get_values(self): + return self.get_feature_data().get_values() + + +## ------------------------------------------------------------------------------------------------- + def _set_values(self, p_values): + self.get_feature_data().set_values( p_values = p_values) + + +## ------------------------------------------------------------------------------------------------- + values = property( fget=_get_values, fset=_set_values ) @@ -44,7 +56,18 @@ class CTRLError (Instance): """ """ - pass +## ------------------------------------------------------------------------------------------------- + def _get_values(self): + return self.get_feature_data().get_values() + + +## ------------------------------------------------------------------------------------------------- + def _set_values(self, p_values): + self.get_feature_data().set_values( p_values = p_values) + + +## ------------------------------------------------------------------------------------------------- + values = property( fget=_get_values, fset=_set_values ) @@ -89,6 +112,43 @@ def compute_action(self, p_ctrl_error: CTRLError) -> Action: """ raise NotImplementedError + + +## ------------------------------------------------------------------------------------------------- + def _compute_action( self, + p_ctrl_error : CTRLError, + p_action_element : ActionElement, + p_ctrl_id : int = 0, + p_ae_id : int = 0 ): + """ + Custom method to compute and an action based on an incoming control error. The result needs + to be stored in the action element handed over. I/O values can be accessed as follows: + + SISO + ---- + Get single error value: error_siso = p_ctrl_error.values[p_ctrl_id] + Set single action value: p_action_element.values[p_ae_id] = action_siso + + MIMO + ---- + Get multiple error values: error_mimo = p_ctrl_error.values + Set multiplie action values: p_action_element.values = action_mimo + + + Parameters + ---------- + p_ctrl_error : CTRLError + Control error. + p_action_element : ActionElement + Action element to be filled with resulting action value(s). + p_ctrl_id : int = 0 + SISO controllers only. Id of the related source value in p_ctrl_error. + p_ae_id : int = 0 + SISO controller olny. Id of the related destination value in p_action_element. + + """ + + raise NotImplementedError