From 3fd878c8f8733dc89994d51041249b13b39f218b Mon Sep 17 00:00:00 2001 From: detlefarend Date: Sat, 9 Nov 2024 11:47:04 +0100 Subject: [PATCH] BF: Basics of closed-loop control #1046 --- ...$MLPro-BF-Control_class_diagram.drawio.bkp | 2 +- ...MLPro-BF-Control_class_diagram.drawio.dtmp | 1 - .../MLPro-BF-Control_class_diagram.drawio | 2 +- src/mlpro/bf/control/basics.py | 20 +++++------- src/mlpro/bf/control/controlsystems/basic.py | 31 ++++++++++++++----- .../bf/control/controlsystems/cascade.py | 26 ++++++++++++---- ...howto_bf_control_001_basic_control_loop.py | 1 + 7 files changed, 55 insertions(+), 28 deletions(-) delete mode 100644 doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/.$MLPro-BF-Control_class_diagram.drawio.dtmp 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 index 3fa375fe3..eb87e2919 100644 --- 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 @@ -1 +1 @@ -7V1bV+LM0v4t34XrndlrwcqBcLhE1Dmho+KMjjesmDQQDQkmQcFf/3V3zukiBEkiQma/ewaaJN3peqq6Tl19JPami2+WPJucmyrSjwROXRyJJ0eCIDY4Cf9DWpZuC9+QGm7L2NJUry1sGGhvyGvkvNa5piI7dqFjmrqjzeKNimkYSHFibbJlma/xy0amHu91Jo8R0zBQZJ1tvdVUZ+K2CqLYDH/4jrTxxO+66b/gVPav9l7Fnsiq+RppEk+PxJ5lmo77abroIZ1Mnz8xtz+Wt3r/qfnt55X9LP85/nVz8bfmPuxsk1uCd7CQ4bz70X2p1Zsf8z3t+Prt9vTi+u3X5XNN9F7NWfoThlQ8f95X03Im5tg0ZP00bD22zLmhIvJUDn8Lr+mb5gw38rjxETnO0gODPHdM3DRxprr3KzLULiEt/vqgm8qT23Sm6br3zIzv682Lbc4txRv9+M9V7bkmCXd2f3DrKJ27hul488I5sjVG3vMejefW1em9enfx69G6v3uRZzfBdWQGIuDxZvMbMqfIsZb4AgvpsqO9xBEme0AdB9d5t+JXlZeRC2amZjh2lFT4Q+T5YRMlIEzMtPd8kfW5N7aeaTiWqQ8meCrVI4JaDHuRJ3P85WFUtx0LyVO7PqD/+lfhzjnvxkvZIAKhF78V3/kiW5o5t+t9c/yVgZD9qk11fCe+dISf46NJxN9lXRsb+LOCKYss3PCCLEfD7Nr1fnAIho6ViaarfXlpzgm9bEdWnvxvxxPT0t7wY2UfTvhny/HAJnGxKwbkTg9UFrLxNZc+qPigqS/bjneNYuq6PLO1BzpgcskUg0Yzjk3HMaf+g2L4D6SCOxTLfAoEDWkZYVT3TN206NSIo9FIUJTgysgvavOhKTXJL97snTF34j/497Elqxp+h8hvZ/TPxoxD5h4tUqG+COSlUG913Nv8pUDkOnVveXgNRavIeTCcRKSqKDXXcMl0cY3Fv2yM8cxHuuXiXTY4pj++CfQnJLqTdYw2Q3bQMaHdtsz39I9/HIhvb7OrweO3zmlPvOd+1nie5b7hzY+TYffk/McFYSDSxv0nq9P/GI7BZHAi3KGjkbOSN+yZrGjGuE+vOWmELdfe+5MmE9870ikuJ5qqIoPi1pEd2YU2Qa4niPAApGP8H57GHocJKp0QhpeO+fA7/o9cbmHMGRi4skbRhTDfvCLCO5TNfTyqaCTPdQdEY6rYWo9GDwYSiwIQdUkUREEXI//GtGYl7dDAJBxqeHqGGpW0Ypc8Bb94RettaN1qlkfryf3dd34xbP8UJad3ev3oXP3VaixbDxXH0nWkDvEiOCT0QAG9zwfu14rkW5Cc54QPprkA07wieEEEF9rlERwcMsvkDEl1jSq0ETOGVfbW0HuKKUctKI/AN9ReqvEMCEQWBCJAcF1+QPqlaWuOZpLnW+61CSCso3VhVPUN6XVUbRfExewirRma84W8bAYR3osYPEc94ajLkUtWfJitkw8cayVVMmIjNDUzLgpiDnAClb4OA6cxcmJq35eKyNsRWeBK1Oz/cBdINE+H84Vxev+sLobD6/NaGySyYzvydPbFZWOuhiXD2J0G7mZAfrlZziodYEvSCyUq+rBRx2p9FrKRU3H1tqSVStTnQccuZK9Tr+GXvV+ZqXeQw3+KJHCrRP0dJrAIEdicVfTNg74il1GTL46+DYC+eGHG/6fz6ir19Fc7dL45yKIE2HcMFC/CRbFExQxEgMRQsIRA5SpGSw1guhFO/M530S//yCgwbb2vJwtvVO63pf9toTnBbfhz5C78LbyJfPHvYWmeNVh6jG5lJE6urni1IaGz1tNU7df8cMraaKkncnOOlk4Xlyb1mgcxoJbk9RS4B9tc/CHuUL37QpytDryu6KnZSfTU8RrOst7RafEJpLuDeG+kSe4+v6q21rpc2JNaG131+28ngaL6cbwQCpy1nJAzOgWJRSd4YaOZNzyziq/UcQOx+aXtoGl6YF5BBom371SkXWwd7U6knbxwItKuyqg9AiPtTaWNHkgkfRcj7Xy7JdZ9GPpyqJ3VLxKs03sRZ4c5qcly0vDm3+XpURBi9zgLf3SZ63Dj7emyKLv61ypP+4OHzDpfe8OL7nmE6EfiWfDffhP8iEw+x1ExFBV6hkkXgsJQ0BQ/GAUtwMpXXF4fvprWE6WHb/15QuA2aN9jRJQgAtqdjxYBrGueoekBxWhzIivPZ8zgyyGqBvM063UnXp35zHXpTE0VMfmna8OxKR9mwxfNnmMQvMmUIr64eDBNNtF1u450c4wV2vERGzU6JNkUXa2Kg7GQcW2SWgXh2NeOE5FDf3makURqKIAYT7TeYxyUsEbx7YxmUh6LlH53fHHT/WcN9Kvffx+Pn0/1ngglC1pzY6gsFR19SZI+FDmrP1WA2AYQAldiUBnMJ4BXN7qsRRe4Aw5Q5EVqscQgM0hqiPdp/gCls43oBpyKztvSWSox1gzKeDitcDjTTY/UI208t8IUwLPwK3FUXBArfbPswmzqJhkAES4OxkMYBL3ErYNoYziGCoxbg7GdMTDeELYHY6M7PR+dPHaunPvrX3dn9z9HznmQ+LBjGziD+Gck5PnvKBIOXRH/ZCm1VbRI9HccR6JF4DR6lC9t5yccTmz6VnYQTUzs6E1c326kXr919DF1TiPy74fhoLElO5jtImGs3zNE23YqatXYpf2hQNTqk+4PbfiWVxCjz5ww4ufm7W/ESmTd1sngRchB+x262HhNFrND0UMCAITC9EOx9vPNGAzQvTXgev3X5sux1qv5fumoISArMWdj1/taUXobSjdLNO7hIbNZiQxNDz0ksTlZOxkN+RwiEqAdD+SKD6mFN3TNOwsvRWg4lReB+L6R7af6NWm+mVhIVgsx7/ywRWhYPpDKM/4YzmTdLsauDMMYbk99c1zvDfu/vw27/b57UWVIbol5PmuCT1odja1WLb7Fwt6aGy7kyf42F3M/8KcTTXEq70EORJdKXMBgVQXyZbmaKPoS7mnFpPfCVH9lSyNz/zWIYyR+qDCxJSbaJbqxYY8Sq8PsgkeJnfHtPENAHvEOe4Z4Lt3VsyOuISjJeYppVrmGjg42obndkZh85szeIb6RIub2xDvEKl5J71DIRJV3CBY4O+kdgodcpTEWQNasrqAcfAaw9cRuSqisp2I5uVXinmTYeGIDYdGMP4TVWcvP/XB3KQeem0GwWzFjwmmsYFHwGM/2ws2h+bUqwfCUDKfC3HaYy+ymKawIUfMjjLN3bYMuwGhrAOF8uJRL3kbbVkt+gxUUAedacf7/4v1APMqVcbT/xhEvCvEN5K2sKcyN/Y+b+0lT63d6Yj6qLCNY5nwey6ixPk2i2uO52R7PzVFQZkwdjL4ChpRmzOZOVXe3AGpnDbUXRm0g6IiVkYrcxZCb50vMnYfHXGXMFEHXRnmVlkE2ZuM+8ZSZNAleQMZKqggpoD/vwAeiohS2u8OQp+G7YHgV3+OKPKfe8Lp78e10ePH74rRKdKqWoA1FVdZasDxXVMUBfwQRaUW2ZJIIG+4AUZ/t//43cxuO9t1T/47t+ZtTXfA9CmUoHrPHgXOvP7VuGxP1rtte8C3TgPbhVvGZQjldaJdoSoI0Z5PbFHOKFQPkKQhfYmc3IDdAEg+tnPqN4WKzIr5SJcDlAxuRz7hA5LGlEqEaUi81JJ/rFwPx9laan9zXBKDWMAicVA0kA6rSVZhI+mXi9niwb4/hVsraJGY9pkaStgccnDzwIXt4t69tzNVbH7m5108NW18KNvdw4LtyOAUuEevh/YMMVyVx8lIiizN5x9ZpnJqOLq4ulvfD7jlyhObZo8X/C05LOMT6whCo4EnKG1NbVUdvfzTFNpIgJdAsrex94RXLhWTF8ka7VU+sHitqlucWOwWq5CaLzqVUnA4voqWoRnVzZtfJ6fBVUsImm/nbCoI38z+0pQY9qnonkxKgEtSbHPbc7Kxlmc+emgAlba8qQt0j1d/2O1y9uWHYzIzKXclPkIA0rkR+QkXkLYlc6pZ+/bFmTp4aSOw/O/NpT2oNasD5f1gVQIayPBDKRpdwvjAyl5l3AA+ZrSfPEPjg49AbkzVzfkEOoR3YKGPZNx6IDspJV+HZ9/ar6LJtD7EibNGClm7X/lk2XuvhRIXz75GEHp9esSFCyjXut3+3BIWCz3qsLJ+WT51VKIHHdbFhqKoweMkowCZpeQoHWDSWjT9XZaALoXTWY+ILozSbxS6r6tDBa7NLafIpWMNu6Jce/WGGl076a1i8V9fs/c9FSD/BNi9ctEtMfTUawuTkdqk71tMZ//RmCkM8ZnYZCDNQqC4XUN3fKRpTH9OjzavVl1dZC/edumcKMCrTe59NE2f8Z0dyZ6JD33PwliDSRL7EADWYSMOKNAwY+tIPMco2n+cmbTUtFVk1xZ2jLr3V+lKrRdu/0inz7/D1nhs0nRGHC75lRPMmzFdSNVOJbpfU8CWoNsXTTE/wsev1uj8c/HYPoQqVgF3oySf29+tEc5CbEiyevFryLG7qJ8AZh6GwEq6bV/NNOvi9DT6xQAMLrZwc/U0usfuw0SQxfcbrznfqrQ4AOLEg94wIuWdcEmNKGFuCjiMMXLNpDIlcxzdmCxCN6SjP+pSbiUZWdJseRYkhq+BvTXlK4GI82LNIP3H4en1bW3We92O2eor8la4TE2RpJFGCG1nmNOcBRqewdkRDl4mzdD0XRS69JnogS6BskE0GRTzdHb+rMRb3/Eh4OMc+SPjYP8X4WLZjM7SDQH0gQL1GcxvZBfKmP/9UMJD5pwtfEY/2600XMmz//OoEQcll5/1Ly6z9wM/9tpwasq3NC+B3d0VYu+hzn2zRp5EYN8+BbxSoBEiJ0v1AnDVoixlKUg4OM/hISDZ35YNXf6/U6QQpT65Jvkp6JZcfeovbjyLbiqxSn7nipwZAPCPbS0OZWKZhzskaiW1EahISppOVpzEFNHxn4mBL6BJHm7q+bCzqdcI7GsC5KS1+w4Ao4doI84Lb19nvGXl0vOtVItNtiajteywLMmQAfQTTN+I8LwJ1jUCm5/NgerBkT4sh165mMAaJzaWeb5SWhFp+PaR8EqBbwpr850Yr9YaC0p+Z1SessxYoO1XBJob/DuKgIyg3MnPNJlFMkZ6fLjESZB42zrWyZBPRhFx+Oty0uVQBtJOpkeCI11duOhQSZ6rVlA/Vy8yVhEfMlv2wvfXRjzexboJDRcGaxMp8IFFmXiU4YhYRDMUPKK0yH6J+fFYlsCE6llW5nuurjMv9S3088II4OTF31vxE/6Tpbbj75Gl2/4e7fXkafz95XOq89fPsd2peSlUZpQCSByfelrFKX1xroxdj9P1GMUfXv3qidNd5fPcJ9u9OFUqVMuvPra8QtyXisqa/5lG2HkQc61Obz1TZQRHMrUgmI5irUuLzBEPmgzNaBYGB9RFZaIrnPAIGC40sZE+iCk+YuHhjzQ87sTAfIIgcXx4QwCFDRyEVk1d4a8kzIjxo9Nh8eERUkzFH+C9nOUOQ0VJfHQat0gyzAc33X/MS6zOXWCWIJ9mHQJohbs4hsxVEYIch325Wutkm5ogWmhO5DX/7F/klvIl82T5OCVa48mj9WSo1MXFH3i9gmTlSmbwjHqoE7k+ERjudRKgov3oxaRQCj6g5c5P62aAn/q2KeR5APZjkITUbFYPhUmT3p4t5wvX7WN5ZeUwNsaYV51CiYSwiU4XPTgY8wRGz+xMONeBZFIk/PrrJBrWHIyWyl25Un8rOpH42N7zs6oreW9C7zNAlOGJok9vhhi7zIWqZoUt4aWYFdTx0mc7RVdhyi37V+UwnCeJoqGLIhrMM70Gugqb7slak7+fPSbBkDZt2ipIsQO7TQR8iUjjJBSFr3CIHDeGNe3bsp0WrZ/Pa3bfJn5H+NKrxwGl11cEAe4s3wENd7rkALNxKCY+ghWY77go2CjQhL2hS1Vp4txMtueeKF4BtAzzPBZGSWAgkh0oLYOH4lX5fr+5YrEY4esGTUj8lf5/Lhjyu3L+HsOVFEEUhiMttvuUlJW/t07l/QRYC0uBX1wKnbHW4vsFUGbST7l+Y5MDpCtVR5QVSvExvcPdWPe21rnrdu648FFqP939+PUHr5PD07+nFzfDHyXBwenP5+wf+3Pv+LUTAADkzL8qrTIgPRq1wsC0OyvQSw5wP6OSH6yXOh6hleonBEbOGFlUrv+y9HV38Up3ZUVcYxwIRgAOhbhkCOfN5zoXRl43b2Zg8+0/dEni3VWLNXHi1ZZfb4WFQtwzeFbgSPep/uAskmqfD+cI4vX9WF8Ph9TnEu4dXFT3dmZ0TqcUSTWaQ1OweYgthYnsbiFHkLJGDqBtdCtGlj9a9/LO8Ewxue5axS3z6Y7jxT3OQdRBBrOIXcKH90coZS/9hBYAy13iR+2gdbnUxz7yjmKcGoRkBkmao8yBwSTZ5+YALq05z5tyxNRXV8cdrWaOVfmn8M7npiwa93H2oWvJRMt0k7Xn3qg1juUWcmlwi3MTDdekFyEmUQ6gUPNilyVCu2iu23V6xRnd6Pjp57Fw599e/7s7uf46ccz+x6pPUtGw32nGkfnRJy7Q5jcjg3zO8yDok2agqZblRXJ9npakqo/YIlKZNpY0eSNx+F+P6zU4Cullj+vxelbEEGQaK78ZD+j4D7XdML81GSZU0OxnLB0dcnQScP1GzhutzCOjBmbrrtn1UpdwObVdC8ZIsa10dKQdJ9ktQh6fG/OrlSf23VBxlvrzkfG96uQbKWlMEVNPfZy+Ax+sCNfBvGtJietr66TzfS937791zZXLlxZK2tQ/WF7UXpEZCPcqvdEPaBERk3bFsa4p/JPeqivXuD5Wiv/8JvKRmfRyiTcCZAmtd3D6p+rBcYH3USV2f8tNRsM3mqKpbnyqIdlL3B0fMBiUPWffPh6gl6v4wP7NV5eK6f+ww2dj+OdpUTJHToFM1WS2bPVymAPXfTaQoczs7KYDSy7Ad8n2zuVR0NNS1qRbaTlwh7+dvtcQIchBevL2gUrWV/eCNxnykZVajkc9jDUyLo7A7AL2TZqMbANmjaCv7Yf8DBUz9t0bmSIF/4V6YDyD7rLceQquBMMzh2gyp0mcnbQZwxJXNkD9RS7QZwAGz8fHhGDm0JD05zz0o65Fepj5vBWxDbY0WsqbDckta78CQ3LruqfryAWuQ+fBO5rBDDgfIwCNms/jTU7urIx1yhgAvlJjkCQdcAQlagSBzrm9OMJBK3M8DpkhCBzokiEoOsJ9taakInGIaBrEbHvzHcqkWTKL0DqBDNjrQPPn5pdtM1Ej5+fdB/H59OmldDJSX7nSBnsFt5G6qMAENfUEfN2GWM0UQoWfYxNmu5Ru28WxedHq+Nemw5j6GrNF8Y7ZgH9FHY2So9IpsOc5Bm/s+iYEwN2dpWTcz2D6Ozcy6N21CL5r6ftC7YDFjgL1FEtit8cMXqhZRqRf59HX1ALy3XfsWILnwv/KUiEXjwZ6508E2rXqt2GU/yMvNLHOMpbmd6bG5NtHuMZdoqud5LXUA10hWiRRxTPzXnGirwZy5ZN8MoHHWXUWpDfG3GVfkwYexltjgZcextIe5QzV+LB8FDkvLial++ZonlS7QK8Hk/EGnQdlIp2dudz7FHsg4tOlMR1PicFQ3lkp5EvSd5IO6SJ3miFDye+JW4zYfolCKnGnGBFkaned11JnI5KU1O0kfvPpaaDU98mWB2CsMmUnNlYzQEIabMYcHe6yvYsWHTpY/n2fRse8O8tkp5d7zynFcRV5/F6C1Yh7ykq5ZBwsbTqu3jcE2FLT1LB7uYCyaZpPuYGbiGd7cJAIkbDqVG9RgzYFU62K9QRRV7Nudeif6p1Gmns9GB07QDNFQBAccGQEkU0aIuMqH61Ozn/g98CFn9TWHiZv+1jMvsMYLG1Np7b4sj4I1vskL9Q7fCAjUitlqtTCIFKGqxNe5Bt8M/wBUlVKIuiqXs97AvQlip03+15LiQ+Hx7xwncrzUbuG/m/75iX4Hbqoqk+fJdNNs1rHu35bI5i/8P7GzUS8rskmZXpKVz83RyEaxWzbd69bg6m1R4oI//qmy4cAT/LLdTjaQoVhf4w93eQh39u4qT3EVTwE8JQp1sd1ociLfIn8nnNQ5sVR6J5ty1DJCgzT+ygvzGSKOH5h0ITSPdjrpIsOhe0BSRaCbrEvIyF13ifGN6P/hmnG+gVyYRDxH/7Dsu1fFmEFeYeMQDK8cUHQ+VZxkLyPDRuczYC2HWD04fKieSCUNM0vDzSt/7II05AWhLnGhcuKfuVFJw1RegU4QqaQhKE4+qTTMEHGtpOE2Cbm7KA0x4upSO2KJNyppmIFXqkoPa6Vhdih+tDREqIbUSw3J5/rFQLy9leYn99BeTt9nrmovR1A4PcV/D17/gEXYmMqcaIk6sr9MIyIw5XlZI/o8SUyAHuRvQ1WChHLvYE2S72mviWSsSM+g07K2MB3B4a4UpgskfNKf1sDfTdKtQ7BJDXsW9TntiGi11iqgHQnwnzWTtQHepQioy0veuT0+GV2OhrPnb1c1tVdrAyWLYocKRnOB/RoAJxg/1Q6e/d/Bw/guG0SDYCALJgu2pHrKAYefTjMA1w0//pdynlO4i4fy06Fs44ni3ysBCqgSqQJpJ7f2wEOuNMQCyFri5h6QuQHeDrbchyfmVmvjga6NfLsVXxultph5bWwcwNoIbBCH10ad5ln5LFWtkBGopgqmnVwgYSxU62PuRP3o5XGl3VitjQe/NjJ240Zr496vjKw4XG01VstiVgm603YjOOIMQbhDXxY/ndXIQ1l3xZxb83vuzOYkNECPqpFDD79Xoo5undCMVdcQpduvKVcdN/OeVU5KePMlCVh0hE691WHxJ+Vw3AwMwPIOTkoBYAWurUNFnQS4mgC4eECyNQpDFpQWVAyyfqyUWlaFp3yEldjpMHhqFQSnY3QrI3FydcWrDQmdtZ6mar8msXAaBOn0VdTx6GCtR8azWkUd43KYDTcl7ceBd9hgZTVG0JkuhXbSbISHXNmNBZD1ww1HaAtKoF15J5UuqHAhz7LQ81yz6DZ1u1KJ3rnO8FLdD1OlaEVt2ILLIyULLIq2MvB8QtP2wMrKP7ySk5V+tP/6kcC14/oRYBnCK1J7n3zrcEFBdqN3vLhNpopbXrktr9YWrSlCk21H8lTTl+6l35H+ggi3RH6PJOMKXjKu94PbKfnFMK2pl/Hr/vZCPPz4X8xzsjPHXLDmOgXzxIpLXr3JpwW+ODeTldORg6e95slw9k7Tmk1kw3uku7mcI1pizRMPXfqMkRP5RcMsZ3j9cP6L0l/wkm3YI/x0vx9PFyNYMV/jnbyalhofVvAs/CYPTxp+HHmmy501D22x6+CsakJFQeJdAkY/fI2MVEWK6Z7LUHMmmvJkkEJlTFI2c22EkqnXrUjy5rCqLDvJyVE1e6bLS/9yqrwJ3P9pU6IJyYYD+khW1wsn68R/K4s3wQbBGoWAlWWpS1f+ynQOVWhhgcEq0/Tj0KZz4ZcgPnen5kCsqYieABy7lw/l/TIRH1Z7lo3C0o92ReT8iNwp0VYGRwypA4drKudDVJ4vz1QGR8w6juMndeGbfblNnclFnK2UskYU1Z0d9PQDK3RuipW3+Ae1sfPu2MH23HQWdHwzIF9v6DkBxXZ9QDW+0wq958SxQsbFti0UxLIrTspwcf2lou929BW4jBK5sHWWTToY2iF9qVQOZFhF7S2pLQofrTqzLkrFnC0rPt6WstJHH8jRZii4O2fBv+fo99S9aNGz39MIuLZ+Yuaz4LdzVXB7Rpy0jRDl04beumltU4ETEpnujU6U0OwNgph6w9blT2Ho8IcAnQ9j6/dBp9H4DNDp7BlyUtMFdndFONYfa+bkqYHE/rMzn/ak1qDmO0L2hzbQSwILQqM7PR+dPHaunPvrX3dn9z9HzrlvYn40V/urtO8B9XIqVzF1OyEEEtdvzdNpUxrPMKBqqhXNL/g9Q5bskBzdJMyqpAJXPycv/I5SRDuYVNCMw5bn/KD/+rOaUxKEP11SAcgumXayu+xzKAmXLAxTBc1uJldCI64CRvkTtcTUSnDA7Ja8eLzIthT3FGQ/zBEchJx3OEW1nZJ6srC8RcOpvAiEFDlFvn5Nmm8mFpLVYgJVmj3H2H+LHd7sBGPwDm8uoGPdHI9JHpHfU98c13vD/u9vw26/7150uN7JfNg464nRaQrBVnwMHRY8N7yYLzlfPXG4ekXxLSnO+3ZxGcvxL0Ednhrzq5cn9d9ScZT58pLzh7xDFi69YKE5d+T5dUHyvv7zuiOfTxbRL8ujqFmcME/fZyffNKTF9LT103m+l7r337vnyuQq8PFFDWXQ2SF+iGHMdxKWLm5JN42bCRMhecPWtjGIuN3zlO4B4qTPgTiea0gfADnWxKggtwnkVq51u4+4pLuwHMA1dg5wOyWuhG3FVVaVJ3WYUXeTbCuyirwM/4FfVyO5Qd79ofLW7r+3lm+3xLjcoNtcMqnqnX3aBCZ3n19VW2tdLuxJrY2u+v23EyCzn9kr4zIU/hjumnG553AduOnCaCc9uCD12eoIw7B6jB1gICg+a/U126movh3Vs7p4C6O6r0eBZFeHbi0qgPqqy/YVBrbHQEcoDwPwkKtz6wogK89nTErNIXwDsjbg9o2Fb5LSvQtId7IBOP+gAyBg4r3HpEsBUY+pqRYTTjHkaRjCwXgLVaf/CulPWSo6GuraVAuDRUT0+RdWcapqIdpgu1NGbYTnCzPiAS3URs585oqsgG/zgnaIaFp+IIpqPeeOQgRjoHK1sLCAL/ZuTeuJgquC8VYwFsSM0Tc/Spf7ygsVGium4Kd/RqG9NJSJZRrmnKzl4YmFfi1Z0mTj1dQFICkP2iT7U8Vj48GeuShkCiHLhppsVoNH1oM3stKPPkxguSqnxVas9bEZnPEpslUbBU4Aq2n5rqNtMLy0/x6/afbPmxfJcv5cKlaL58CErmIwPJghRaNKhQpj15nI9CRPbTrTtZFGN0M6E6KC0KXBAzRHKnmpskUfEvipPP2ygmtuVbT4Zrz0myD4+F3n0mzlgFUwLlNe6e4bhDEoOwRZI3rKpzK3iUedxS2BHHdDURr+9Bos8ZyBkEqBbBJ1g1xG4E0LE1I+0IgygqdnYpJvnhL0tV4/VCQzCM0K7uxI5luQc14CpG57cyTjrxYxlSIeezztk3Os0ZIr/h8= \ No newline at end of file +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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.dtmp b/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/.$MLPro-BF-Control_class_diagram.drawio.dtmp deleted file mode 100644 index 425b97d3f..000000000 --- a/doc/rtd/content/99_appendices/appendix2/sub/core/mlpro_bf/layer3_application_support/images/.$MLPro-BF-Control_class_diagram.drawio.dtmp +++ /dev/null @@ -1 +0,0 @@ -7V1bV+LM0v4t34XrndlrwcqBcLhE1Dmho+KMjjesmDQQDQkmQcFf/3V3zukiBEkiQma/ewaaJN3peqq6Tl19JPami2+WPJucmyrSjwROXRyJJ0eCIDY4Cf9DWpZuC9+QGm7L2NJUry1sGGhvyGvkvNa5piI7dqFjmrqjzeKNimkYSHFibbJlma/xy0amHu91Jo8R0zBQZJ1tvdVUZ+K2CqLYDH/4jrTxxO+66b/gVPav9l7Fnsiq+RppEk+PxJ5lmo77abroIZ1Mnz8xtz+Wt3r/qfnt55X9LP85/nVz8bfmPuxsk1uCd7CQ4bz70X2p1Zsf8z3t+Prt9vTi+u3X5XNN9F7NWfoThlQ8f95X03Im5tg0ZP00bD22zLmhIvJUDn8Lr+mb5gw38rjxETnO0gODPHdM3DRxprr3KzLULiEt/vqgm8qT23Sm6br3zIzv682Lbc4txRv9+M9V7bkmCXd2f3DrKJ27hul488I5sjVG3vMejefW1em9enfx69G6v3uRZzfBdWQGIuDxZvMbMqfIsZb4AgvpsqO9xBEme0AdB9d5t+JXlZeRC2amZjh2lFT4Q+T5YRMlIEzMtPd8kfW5N7aeaTiWqQ8meCrVI4JaDHuRJ3P85WFUtx0LyVO7PqD/+lfhzjnvxkvZIAKhF78V3/kiW5o5t+t9c/yVgZD9qk11fCe+dISf46NJxN9lXRsb+LOCKYss3PCCLEfD7Nr1fnAIho6ViaarfXlpzgm9bEdWnvxvxxPT0t7wY2UfTvhny/HAJnGxKwbkTg9UFrLxNZc+qPigqS/bjneNYuq6PLO1BzpgcskUg0Yzjk3HMaf+g2L4D6SCOxTLfAoEDWkZYVT3TN206NSIo9FIUJTgysgvavOhKTXJL97snTF34j/497Elqxp+h8hvZ/TPxoxD5h4tUqG+COSlUG913Nv8pUDkOnVveXgNRavIeTCcRKSqKDXXcMl0cY3Fv2yM8cxHuuXiXTY4pj++CfQnJLqTdYw2Q3bQMaHdtsz39I9/HIhvb7OrweO3zmlPvOd+1nie5b7hzY+TYffk/McFYSDSxv0nq9P/GI7BZHAi3KGjkbOSN+yZrGjGuE+vOWmELdfe+5MmE9870ikuJ5qqIoPi1pEd2YU2Qa4niPAApGP8H57GHocJKp0QhpeO+fA7/o9cbmHMGRi4skbRhTDfvCLCO5TNfTyqaCTPdQdEY6rYWo9GDwYSiwIQdUkUREEXI//GtGYl7dDAJBxqeHqGGpW0Ypc8Bb94RettaN1qlkfryf3dd34xbP8UJad3ev3oXP3VaixbDxXH0nWkDvEiOCT0QAG9zwfu14rkW5Cc54QPprkA07wieEEEF9rlERwcMsvkDEl1jSq0ETOGVfbW0HuKKUctKI/AN9ReqvEMCEQWBCJAcF1+QPqlaWuOZpLnW+61CSCso3VhVPUN6XVUbRfExewirRma84W8bAYR3osYPEc94ajLkUtWfJitkw8cayVVMmIjNDUzLgpiDnAClb4OA6cxcmJq35eKyNsRWeBK1Oz/cBdINE+H84Vxev+sLobD6/NaGySyYzvydPbFZWOuhiXD2J0G7mZAfrlZziodYEvSCyUq+rBRx2p9FrKRU3H1tqSVStTnQccuZK9Tr+GXvV+ZqXeQw3+KJHCrRP0dJrAIEdicVfTNg74il1GTL46+DYC+eGHG/6fz6ir19Fc7dL45yKIE2HcMFC/CRbFExQxEgMRQsIRA5SpGSw1guhFO/M530S//yCgwbb2vJwtvVO63pf9toTnBbfhz5C78LbyJfPHvYWmeNVh6jG5lJE6urni1IaGz1tNU7df8cMraaKkncnOOlk4Xlyb1mgcxoJbk9RS4B9tc/CHuUL37QpytDryu6KnZSfTU8RrOst7RafEJpLuDeG+kSe4+v6q21rpc2JNaG131+28ngaL6cbwQCpy1nJAzOgWJRSd4YaOZNzyziq/UcQOx+aXtoGl6YF5BBom3u4H4SPT9123XGts7FYAXW0e7E4AnL5wIwKsyao/AAHxTaaMHEmDfxQA8326JdR+dvnhqZ3WXBMv3XoTfYQZrsgw2vPl3eXoURN49hsMfXZ473DB8uojKrhW2ylMK4SGzPtne8KJ7HiH6kXgW/LffBD8ik89xVAxFhZ5h0oWgMBQ0xQ9GQQsw/hWX14evpvVE6eEbhZ4QuA3a9xgRJYiAduejRQDrsWdoekCh25zIyvMZE/tyCLbBPM0644mzZz5zPT1TU0VMWuraKG3Kh9nwRbPnGARvMqWILy4eTJPNf92uI90cY4V2fMQGkw5JNkVXq+JgLGRcm6RWQTj2teNEQNFfnmYkvxqKK8bzr/cYByWsUXw7o5mUxyKl3x1f3HT/WQP96vffx+PnU70nQjmE1twYKktFR1+SpA9FzupPFSC2AYTAlRhrBtMM4NWNLmvRBe6A4xZ5kVosMfYMkhrifZpWQOlsI7ovp6LztnSWSgxBgzIezjYcznTTI/VIG8+tMDPwLPxKHBUXxErfLOkwm7pJBkCEi4PxEMZGL3HrINoYjqEC49ZgbGeMlzeE7cHY6E7PRyePnSvn/vrX3dn9z5FzHuRD7Ni+ziAsGomE/juKRElXhEVZSm0VRBL9jciRIBI4jR7lS9sQCkcZm76VHQQZExt9E9e3G6nXbx2UTJ3TiPz7YThobMkOZrtIdOv3DNG2nYpaNXZp2ygQtfqk20YbvuUVhO4z55H4KXv7G7ESWbd1MngRctB+hy42XpPF7FD0kAAAoTD9UKz9fDMGA3RvDbhe/7X5cqz1ar5fOmoIyErM2dj1vlaU3obSzRKNe3jIbLIiQ9NDD0lsTtZORkM+h4gEaMcDKeRDauENXfPOwksRGk7lRSC+b2T7qX5Nmm8mFpLVQsw7P2wRGpYPpCCNP4YzWbeLsSvDMIbbU98c13vD/u9vw26/715UGZJbYp7PmuCTVl5jq1WLb7Gwt+aGC3my7c3F3A/86URTnMp7kAPRpRIXMFhVgXxZriaKvoRbXTHpvTDVX9nSyNx/DeIYiR8qTGyJiXaJbmzYo8TqMLvgUWJnfDvPEJBevMOeIZ5Ld/XsiGsIyn2eYppVrqGjg01obnckJp85s3eIb6SIuT3xDrGKV9I7FDJR5R2CBc5OeofgIVdpjAWQNasrKAefAWw9sZsSKuupWE5ulbhVGTae2EBYNOMPYXXW8nM/3M3LgedmEGxizJhwGqtjFDzGs71wc2h+rUowPCXDqTC3HeYyu2kKq03U/Ajj7F27owsw2hpAOB+u8JK30bbVkt9gBUXAuVac/794PxCPcmUc7b9xxItCfF95K2sKc2P/4+Z+0tT6nZ6YjyrLCJY5n8cyaqxPk6j2eG62x3NzFJQZUwejr4AhpRmzuVOV4y2A2llD7YVRGwg6YmWkIncx5Ob5EnPn4TFXGTNF0LVRXgFmkI3ZuE88ZSZNgheQsZIqQgrozzsHgqgohe3uMORp+C4YXsX3uCLPqTe87l58Ox1e/L44rRKdqiVoQ1GVtUQszxVVccAfQURakS2ZJMKGO0DUZ/u//83chqN999S/Y3v+5lQXfI9CGYrH7HHg3OtPrdvGRL3rthd8yzSgfbhVfKZQThfaJZqSIM3Z5DbFnGLFAHkKwpfYkQ7IDZDEQyunfmO42KyIr1QJcPnARuQzLhB5bKlEqIbUSw3J5/rFQLy9leYn9zUBKEEMAidVA8mAqnQVJpJ+mbg9HuzbY7iVsjaJWU+vkaTtAQcnD3zIHt7tSx5z9dZHbu71U8PWV4jNPRz4rhxOgUvEenj/fMNVSZy8lMjiTN6xdRqnpqOLq4vl/bB7jhyhefZo8f+CQxQOsewwBCp4kvLG1FZF09sfTbGNJEgJNEurhl94IXMhWci80W7VE6vHilLmucVOgSq5yaJzKYWow4u8QtTmzK6TQ+OrpIRNNvO3FQRv5n9oSw16gvVOJiVAJag3OQO62VnLMp89NQFK2l5VhLpHqr/td7h6c8OwmRmVu5KfIAFpXIn8hIrIWxK51C39+mPNnDw1kNh/dubTntQa1IBjAbEqgAxleSCUjS7hfGFkLjPvAB4yW0+eIfDBx6E3Jmvm/IIcQjuwUcaybzwQHZSTrsKz7+1X0WXbHmJF2KIFLd2u/SNuvNbDiQrn3yMJPT69YkOElGvcb/9uCQoFn/W0WT4tnzqrUAJP8WLDUFVh8JJRgE3S8hQOsGgsG3+uykAXQumsp8cXRmk2i11W1aGD12aX0uRTsIbd0C89+sMML53017B4r67Z+5+LkH6wbV64aJeY+mo0hMnJ7VJ3rKcz/unNFIZ4zOwyEGagUF0uoLq/UzSmPqZHm1erL6+yFu47dc8UYFSm9z6bJs74z47kzkSHvufgLUGkiXyJAWowkYYVaRgw9KUfYpRtPs9N2mpaKrJqijtHXXqr9aVWi7Z/pVPm3+HrPTdoOiMOF3zLiOZNmK+kaqYS3S6p4UtQbYqnmZ7gY9frdX84+O0eQhUqAbvQk0/s79eJ5iA3JVg8ebXkWdzUT4AzDkNhJVw3r+abdPB7G3xigQYWWjk5+ptcYvdho0li+ozXne/UWx0AcGJB7hkRcs+4JMaUMLYEHUcYuGbTGBK5jm/MFiAa01Ge9Sk3E42s6DY9ihJDVsHfmvKUwMV4sGeRfuLw9fq2tuo878ds9RT5K10nJsjSSKIEN7LMac4DjE5h7YiGLhNH7Houilx6TfRAlkDZIJsMini6O35XYyzu+ZHwcI59kPCxf7jxsWzHZmgHgfpAgHqN5jayC+RNf/6pYCDzTxe+Ih7t15suZNj+sdYJgpLLzvuXlln7gZ/7bTk1ZFubF8Dv7oqwdtHnPtmiTyMxbp4D3yhQCZASpfuBOGvQFjOUpBwcZvCRkGzuygev/l6p0wlSnlyTfJX0Si4/9Ba3H0W2FVmlPnPFTw2AeEa2l4YysUzDnJM1EtuI1CQkTCcrT2MKaPjOxMGW0CWONnV92VjU64R3NIBzU1r8hgFRwrUR5gW3r7PfM/LoeNerRKbbElHb91gWZMgA+gimb8R5XgTqGoFMz+fB9GDJnhZDrl3NYAwSm0s93ygtCbX8ekj5JEC3hDX5z41W6g0FpT8zq09YZy1QdqqCTQz/HcRBR1BuZOaaTaKYIj0/XWIkyDxsnGtlySaiCbn8dLhpc6kCaCdTI8ERr6/cdCgkzlSrKR+ql5krCY+YLfthe+ujH29i3QSHioI1iZX5QKLMvEpwxCwiGIofUFplPkT9+KxKYEN0LKtyPddXGZf7l/p44AVxcmLurPmJ/knT23D3ydPs/g93+/I0/n7yuNR56+fZ79S8lKoySgEkD068LWOVvrjWRi/G6PuNYo6uf/VE6a7z+O4T7N+dKpQqZdafW18hbkvEZU1/zaNsPYg41qc2n6mygyKYW5FMRjBXpcTnCYbMB2e0CgID6yOy0BTPeQQMFhpZyJ5EFZ4wcfHGmh92YmE+QBA5vjwggEOGjkIqJq/w1pJnRHjQ6LH58IioJmOO8F/OcoYgo6W+OgxapRlmA5rvv+Yl1mcusUoQT7IPgTRD3JxDZiuIwA5Dvt2sdLNNzBEtNCdyG/72L/JLeBP5sn2cEqxw5dH6s1RqYuKOvF/AMnOkMnlHPFQJ3J8IjXY6iVBRfvVi0igEHlFz5ib1s0FP/FsV8zyAejDJQ2o2KgbDpcjuTxfzhOv3sbyz8pgaYk0rzqFEw1hEpgqfnQx4giNm9yccasCzKBJ/fHSTDWoPR0pkL92oPpWdSf1sbnjZ1RW9t6B3maFLcMTQJrfDDV3mQ9QyQ5fw0swK6njoMp2jq7DlFv2q85lOEsTRUMWQDWcZ3oNcBU33Za1I38+fk2DJGjbtFCVZgNyngz5EpHCSC0LWuEUOGsIb9+zYT4tWz+a1u2+TPyP9aVTjgdPqqoMB9hZvgIe63HMBWLiVEh5BC8123BVsFGhCXtCkqrXwbidacs8VLwDbBnieCyIlsRBIDpUWwMLxK/2+Xt2xWI1w9IInpX5K/j6XDXlcuX8PYcuLIIpCEJfbfMtLSt7ap3P/giwEpMGvrgVO2epwfYOpMmgn3b8wyYHTFaqjygukeJne4O6tetprXfW6d115KLQe7//8eoLWyeHp39OLm+GPk+Hg9Oby9w/8uff9W4iAAXJmXpRXmRAfjFrhYFsclOklhjkf0MkP10ucD1HL9BKDI2YNLapWftl7O7r4pTqzo64wjgUiAAdC3TIEcubznAujLxu3szF59p+6JfBuq8SaufBqyy63w8Ogbhm8K3AletT/cBdINE+H84Vxev+sLobD63OIdw+vKnq6MzsnUoslmswgqdk9xBbCxPY2EKPIWSIHUTe6FKJLH617+Wd5Jxjc9ixjl/j0x3Djn+Yg6yCCWMUv4EL7o5Uzlv7DCgBlrvEi99E63OpinnlHMU8NQjMCJM1Q50Hgkmzy8gEXVp3mzLljayqq44/XskYr/dL4Z3LTFw16uftQteSjZLpJ2vPuVRvGcos4NblEuImH69ILkJMoh1ApeLBLk6FctVdsu71ije70fHTy2Lly7q9/3Z3d/xw5535i1SepadlutONI/eiSlmlzGpHBv2d4kXVIslFVynKjuD7PSlNVRu0RKE2bShs9kLj9Lsb1m50EdLPG9Pm9KmMJMgwU342H9H0G2u+YXpqNkippdjKWD464Ogk4f6JmDdfnENCDM3XXbfuoSrkd2q6E4iVZ1ro6Ug6S7JegDk+N+dXLk/pvqTjKfHnJ+d70cg2UtaYIqKa/z14Aj9cFauDfNKTF9LT103m+l7r337vnyuTKiyVtax+sL2ovSI2EepRf6Ya0CYjIumPZ1hT/SO5VFevdHypFf/8TeEnN+jhEm4AzBda6uH1S9WG5wPqok7o+5aejYJvNUVW3PlUQ7aTuD46YDUoesu6fD1FL1P1hfmarysV1fzepoAAdO3ZKbWxjHm0qpnpq0KmaLMPNnlpT5nZ2UgCll2E75PteeqnoaKhrUy20nbhiaOpttcQIchBevL2gUrWV/eCNxnykZVajkc9jDUyLo7A7AL2TZqMbANmjaCv7Yf8DBUz9t0bmSIF/4V6YDyD7rLceQquBMMzh2gyp0mcnbQZwxJXNkD9RS7QZwAGz8fHhGDm0JD05zz0o65Fepj5vBWxDbY0WsqbDckta78CQ3LruqfryAWuQ+fBO5rBDDgfIwCNms/jTU7urIx1yhgAvlJjkCQdcAQlagSBzrm9OMJBK3M8DpkhCBzokiEoOsJ9taakInGIaBrEbHvzHcqkWTKL0DqBDNjrQPPn5pdtM1Ej5+fdB/H59OmldDJSX7nSBnsFt5G6qMAENfUEfN2GWM0UQoWfYxNmu5Ru28WxedHq+Nemw5j6GrNF8Y7ZgH9FHY2So9IpsOc5Bm/s+iYEwN2dpWTcz2D6Ozcy6N21CL5r6ftC7YDFjgL1FEtit8cMXqhZRqRf59HX1ALy3XfsWILnwv/KUiEXjwZ6508E2rXqt2GU/yMvNLHOMpbmd6bG5NtHuMZdoqud5LXUA10hWiRRxTPzXnGirwZy5ZN8MoHHWXUWpDfG3GVfkwYexltjgZcextIe5QzV+LB8FDkvLial++ZonlS7QK8Hk/EGnQdlIp2dudz7FHsg4tOlMR1PicFQ3lkp5EvSd5IO6SJ3miFDye+JW4zYfolCKnGnGBFkaned11JnI5KU1O0kfvPpaaDU98mWB2CsMmUnNlYzQEIabMYcHe6yvYsWHTpY/n2fRse8O8tkp5d7zynFcRV5/F6C1Yh7ykq5ZBwsbTqu3jcE2FLT1LB7uYCyaZpPuYGbiGd7cJAIkbDqVG9RgzYFU62K9QRRV7Nudeif6p1Gmns9GB07QDNFQBAccGQEkU0aIuMqH61Ozn/g98CFn9TWHiZv+1jMvsMYLG1Np7b4sj4I1vskL9Q7fCAjUitlqtTCIFKGqxNe5Bt8M/wBUlVKIuiqXs97AvQlip03+15LiQ+Hx7xwncrzUbuG/m/75iX4Hbqoqk+fJdNNs1rHu35bI5i/8P7GzUS8rskmZXpKVz83RyEaxWzbd69bg6m1R4oI//qmy4cAT/LLdTjaQoVhf4w93eQh39u4qT3EVTwE8JQp1sd1ociLfIn8nnNQ5sVR6J5ty1DJCgzT+ygvzGSKOH5h0ITSPdjrpIsOhe0BSRaCbrEvIyF13ifGN6P/hmnG+gVyYRDxH/7Dsu1fFmEFeYeMQDK8cUHQ+VZxkLyPDRuczYC2HWD04fKieSCUNM0vDzSt/7II05AWhLnGhcuKfuVFJw1RegU4QqaQhKE4+qTTMEHGtpOE2Cbm7KA0x4upSO2KJNyppmIFXqkoPa6Vhdih+tDREqIbUSw3J5/rFQLy9leYn99BeTt9nrmovR1A4PcV/D17/gEXYmMqcaIk6sr9MIyIw5XlZI/o8SUyAHuRvQ1WChHLvYE2S72mviWSsSM+g07K2MB3B4a4UpgskfNKf1sDfTdKtQ7BJDXsW9TntiGi11iqgHQnwnzWTtQHepQioy0veuT0+GV2OhrPnb1c1tVdrAyWLYocKRnOB/RoAJxg/1Q6e/d/Bw/guG0SDYCALJgu2pHrKAYefTjMA1w0//pdynlO4i4fy06Fs44ni3ysBCqgSqQJpJ7f2wEOuNMQCyFri5h6QuQHeDnbGhyfmVmvjga6NfLsVXxultph5bWwcwNoIbBCH10ad5ln5LFWtkBGopgqmnVwgYSxU62PuRP3o5XGl3VitjQe/NjJ240Zr496vjKw4XG01VstiVgm603YjOOIMQbhDXxY/ndXIQ1l3xZxb83vuzOYkNECPqpFDD79XSY5undCMVdcQpdsv/VYdN/OeVU5KePMlCVh0hE691WHxJ+Vw3AwMwPIOTkoBYAWurUNFnQS4mgC4eECyNQpDFpQWVAyyfqyUWlaFp3yEldjpMHhqFQSnY3QrI3FydcWrDQmdtZ6mar8msXAaBOn0VdTx6GCtR8azWkUd43KYDTcl7ceBd9hgZTVG0JkuhXbSbISHXNmNBZD1ww1HaAtKoF15J5UuqHAhz7LQ81yz6DZ1u1KJ3rnO8FLdD1OlaEVt2ILLIyULLIq2MvB8QtP2wMrKP7ySk5V+tP/6kcC14/oRYBnCK1J7n3zrcEFBdqN3vLhNpopbXrktr9YWrSlCk21H8lTTl+6l35H+ggi3RH6PJOMKXjKu94PbKfnFMK2pl/Hr/vZCPPz4X8xzsjPHXLDmOgXzxIpLXr3JpwW+ODeTldORg6e95slw9k7Tmk1kw3uku7mcI1pizRMPXfqMkRP5RcMsZ3j9cP6L0l/wkm3YI/x0vx9PFyNYMV/jnbyalhofVvAs/CYPTxp+HHmmy501D22x6+CsakJFQeJdAkY/fI2MVEWK6Z7LUHMmmvJkkEJlTFI2c22EkqnXrUjy5rCqLDvJyVE1e6bLS/9yqrwJ3P9pU6IJyYYD+khW1wsn68R/K4s3wQbBGoWAlWWpS1f+ynQOVWhhgcEq0/Tj0KZz4ZcgPnen5kCsqYieABy7lw/l/TIRH1Z7lo3C0o92ReT8iNwp0VYGRwypA4drKudDVJ4vz1QGR8w6juMndeGbfblNnclFnK2UskYU1Z0d9PQDK3RuipW3+Ae1sfPu2MH23HQWdHwzIF9v6DkBxXZ9QDW+0wq958SxQsbFti0UxLIrTspwcf2lou929BW4jBK5sHWWTToY2iF9qVQOZFhF7S2pLQofrTqzLkrFnC0rPt6WstJHH8jRZii4O2fBv+fo99S9aNGz39MIuLZ+Yuaz4LdzVXB7Rpy0jRDl04beumltU4ETEpnujU6U0OwNgph6w9blT2Ho8IcAnQ9j6/dBp9H4DNDp7BlyUtMFdndFONYfa+bkqYHE/rMzn/ak1qDmO0L2hzbQSwILQqM7PR+dPHaunPvrX3dn9z9HzrlvYn40V/urtO8B9XIqVzF1OyEEEtdvzdNpUxrPMKBqqhXNL/g9Q5bskBzdJMyqpAJXPycv/I5SRDuYVNCMw5bn/KD/+rOaUxKEP11SAcgumXayu+xzKAmXLAxTBc1uJldCI64CRvkTtcTUSnDA7Ja8eLzIthT3FGQ/zBEchJx3OEW1nZJ6srC8RcOpvAiEFDlFvn5Nmm8mFpLVYgJVmj3H2H+LHd7sBGPwDm8uoGPdHI9JHpHfU98c13vD/u9vw26/7150uN7JfNg464nRaQrBVnwMHRY8N7yYLzlfPXG4ekXxLSnO+3ZxGcvxL0Ednhrzq5cn9d9ScZT58pLzh7xDFi69YKE5d+T5dUHyvv7zuiOfTxbRL8ujqFmcME/fZyffNKTF9LT103m+l7r337vnyuQq8PFFDWXQ2SF+iGHMdxKWLm5JN42bCRMhecPWtjGIuN3zlO4B4qTPgTiea0gfADnWxKggtwnkVq51u4+4pLuwHMA1dg5wOyWuhG3FVVaVJ3WYUXeTbCuyirwM/4FfVyO5Qd79ofLW7r+3lm+3xLjcoNtcMqnqnX3aBCZ3n19VW2tdLuxJrY2u+v23EyCzn9kr4zIU/hjumnG553AduOnCaCc9uCD12eoIw7B6jB1gICg+a/U126movh3Vs7p4C6O6r0eBZFeHbi0qgPqqy/YVBrbHQEcoDwPwkKtz6wogK89nTErNIXwDsjbg9o2Fb6amWkxMIblsdIFlg+wsLrDnUHLFe4+JrQJe3ZCnYQgH4y1Unf4rZqqXio6GujbVwmAREX3+hVWcqlqINtjulFEb4fnCjHhAC7WRM58lRFZe0A4RTcsPRFGt59xRiGAMVK4WFhbwpdOtaT1RcFUw3grGgpgx+uZH6XJfeaFCY8UU/PTPKLSXhjKxTMOckyU3PLHQryVLmmy86LkAJOVBm2R/qnhsPNgzF4VMIWTZUJPNavDIevBGVvrRhwksV+W02Iq1PjaDMz5FtmqjwAlgNS3fdbQNhpf23+M3zf558yJZzp9LxWrxHJjQVQyGBzOkaFSpUGHsOhOZnuSpTWe6NtLoZkhnQlQQujR4gOZIJS9VtuhDAj+VpwZWcM2tihbfjJd+EwQfv+tcmq0csArGZcor3X2DMAZlhyBrRE/5VOY28aizuCWQ424oSsOfXoMlnjMQUimQTaJukMsIvGlhQsoHGlFG8PRMTPLNU4K+1uuHimQGoVnBnR3JfAtyzkuA1G1vjmT81SKmUsRjj6d9co41WnLF/wM= \ 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 b6794ef1b..cefff4952 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 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/src/mlpro/bf/control/basics.py b/src/mlpro/bf/control/basics.py index 8c667d94d..335c7a08e 100644 --- a/src/mlpro/bf/control/basics.py +++ b/src/mlpro/bf/control/basics.py @@ -826,21 +826,15 @@ class ControlSystem (StreamScenario): C_TYPE = 'Control System' ## ------------------------------------------------------------------------------------------------- - def __init__(self, p_mode, p_cycle_limit=0, p_visualize = False, p_logging=Log.C_LOG_ALL): - super().__init__(p_mode, p_cycle_limit, p_visualize, p_logging) - - -## ------------------------------------------------------------------------------------------------- - def setup(self): - - # 1 Setup control workflow - self._control_workflow = self._setup( p_mode=self.get_mode(), - p_visualize=self.get_visualization(), - p_logging=self.get_log_level() ) + def setup(self, **p_kwargs): + self._control_workflow = self._setup( p_mode = self.get_mode(), + p_visualize = self.get_visualization(), + p_logging = self.get_log_level(), + **p_kwargs ) ## ------------------------------------------------------------------------------------------------- - def _setup(self, p_mode, p_visualize: bool, p_logging) -> ControlWorkflow: + def _setup(self, p_mode, p_visualize: bool, p_logging, **p_kwargs) -> ControlWorkflow: """ Custom method to set up a control workflow. Create a new object of type ControlWorkflow and add all control tasks of your scenario. @@ -853,6 +847,8 @@ def _setup(self, p_mode, p_visualize: bool, p_logging) -> ControlWorkflow: Boolean switch for visualisation. p_logging Log level (see constants of class Log). Default: Log.C_LOG_ALL. + p_kwargs : dict + Custom keyword parameters. Returns ------- diff --git a/src/mlpro/bf/control/controlsystems/basic.py b/src/mlpro/bf/control/controlsystems/basic.py index 7eff5bd55..a94e41f71 100644 --- a/src/mlpro/bf/control/controlsystems/basic.py +++ b/src/mlpro/bf/control/controlsystems/basic.py @@ -21,9 +21,10 @@ """ +from typing import Union from mlpro.bf.various import Log - +from mlpro.bf.systems import System from mlpro.bf.control import Controller, ControlledSystem from mlpro.bf.control.controlsystems import CascadeControlSystem from mlpro.bf.control.operators import Integrator @@ -43,25 +44,39 @@ class BasicControlSystem (CascadeControlSystem): Parameters ---------- + p_mode + Operation mode. See Mode.C_VALID_MODES for valid values. Default = Mode.C_MODE_SIM. p_controller : Controller Controller to be used in the control workflow p_controlled_system : ControlledSystem Controlled system to be used in the control workflow + p_name : str = '' + Name of the control system + p_cycle_limit : int + Maximum number of cycles. Default = 0 (no limit). p_ctrl_var_integration : bool = False If True, an optional intrator is added to control workflow + p_visualize : bool + Boolean switch for visualisation. Default = False. + p_logging + Log level (see constants of class Log). Default: Log.C_LOG_ALL. + p_kwargs : dict + Custom keyword parameters handed over to custom method setup(). """ C_TYPE = 'Basic Control System' ## ------------------------------------------------------------------------------------------------- def __init__( self, - p_controller : Controller, - p_controlled_system : ControlledSystem, p_mode, + p_controller : Controller, + p_controlled_system : Union[System, ControlledSystem], p_ctrl_var_integration : bool = False, + p_name : str = '', p_cycle_limit = 0, p_visualize : bool = False, - p_logging = Log.C_LOG_ALL ): + p_logging = Log.C_LOG_ALL, + **p_kwargs ): controllers = [ p_controller ] @@ -70,9 +85,11 @@ def __init__( self, p_visualize = p_visualize, p_logging = p_logging ) ) - super().__init__( p_controllers = controllers, + super().__init__( p_mode = p_mode, + p_controllers = controllers, p_controlled_systems = [ p_controlled_system ], - p_mode = p_mode, + p_name = p_name, p_cycle_limit = p_cycle_limit, p_visualize = p_visualize, - p_logging = p_logging ) \ No newline at end of file + p_logging = p_logging, + **p_kwargs ) \ No newline at end of file diff --git a/src/mlpro/bf/control/controlsystems/cascade.py b/src/mlpro/bf/control/controlsystems/cascade.py index 20e74f080..daa62fcc5 100644 --- a/src/mlpro/bf/control/controlsystems/cascade.py +++ b/src/mlpro/bf/control/controlsystems/cascade.py @@ -40,35 +40,49 @@ class CascadeControlSystem (ControlSystem): Parameters ---------- + p_mode + Operation mode. See Mode.C_VALID_MODES for valid values. Default = Mode.C_MODE_SIM. p_controllers : ControllerList List of controllers to be cascaded in order to outer to inner controller. p_controlled_systems : ControlledSystemLists List of controlled systems to be cascaded in order to outer to inner controlled system. - p_ctrl_var_integration : bool = False - If True, an optional intrator is added to control workflow + p_name : str = '' + Name of the control system + p_cycle_limit : int + Maximum number of cycles. Default = 0 (no limit). + p_visualize : bool + Boolean switch for visualisation. Default = False. + p_logging + Log level (see constants of class Log). Default: Log.C_LOG_ALL. + p_kwargs : dict + Custom keyword parameters handed over to custom method setup(). """ C_TYPE = 'Cascade Control System' ## ------------------------------------------------------------------------------------------------- def __init__( self, + p_mode, p_controllers : ControllerList, p_controlled_systems : ControlledSystemList, - p_mode, + p_name : str = '', p_cycle_limit = 0, p_visualize : bool = False, - p_logging = Log.C_LOG_ALL ): + p_logging = Log.C_LOG_ALL, + **p_kwargs ): if ( len(p_controllers) == 0) or ( len(p_controllers) != len(p_controlled_systems) ): raise ParamError( 'Please provide an equal number of controllers and related controlled systems') self._controllers = p_controllers.copy() self._controlled_systems = p_controlled_systems.copy() + self.set_name( p_name = p_name ) super().__init__( p_mode = p_mode, p_cycle_limit = p_cycle_limit, p_visualize = p_visualize, - p_logging = p_logging ) + p_logging = p_logging, + **p_kwargs ) ## ------------------------------------------------------------------------------------------------- @@ -97,7 +111,7 @@ def _add_tasks_to_workflow(self, p_workflow : ControlWorkflow, p_tasks, p_pred_t ## ------------------------------------------------------------------------------------------------- - def _setup(self, p_mode, p_visualize: bool, p_logging) -> ControlWorkflow: + def _setup(self, p_mode, p_visualize: bool, p_logging, **p_kwargs) -> ControlWorkflow: # 0 Intro workflow_prev : ControlWorkflow = None diff --git a/test/howtos/bf/control/howto_bf_control_001_basic_control_loop.py b/test/howtos/bf/control/howto_bf_control_001_basic_control_loop.py index 6d86c7303..51d3ba95b 100644 --- a/test/howtos/bf/control/howto_bf_control_001_basic_control_loop.py +++ b/test/howtos/bf/control/howto_bf_control_001_basic_control_loop.py @@ -78,6 +78,7 @@ mycontrolsystem = BasicControlSystem( p_mode = Mode.C_MODE_SIM, p_controller = mycontroller, p_controlled_system = mycontrolledsystem, + p_name = 'Hunter and Fox', p_ctrl_var_integration = False, p_cycle_limit = cycle_limit, p_visualize = visualize,