# System and Controls Library
Collection of various tools in the field of systems and controls.
> Systems can mean just about anything.
> Here, we are talking about **dynamic systems**
> and how to find the **right input**
> to achieve a desired **state of equilibrium**.
As a first step, the library implements the **base controller class**
that defines the basic requirements for any **discrete-time** controller.
The **next step** is to derive **model-based** controllers
and then also **data-driven** controllers.
_At some point, the fundamentals of control systems such as PID could be integrated,
presumably as wrappers for existing libraries and tools._
## Usage
```python
from sysco import Controller # Controller subclasses not already implemented
# custom controller example
class MyController(Controller):
def get_input(self):
return 1
# instantiate custom class and get input
my_controller = MyController()
print(my_controller.get_input()) # --> 1
# try to instantiate base class
base_controller = Controller()
next_input = base_controller.get_input() # --> NotImplementedError
```
## Future development
To avoid bottlenecks later on, Rust is already built into the structure
## Controller (in planning)
### LQR
- First one that will be implemented
- Infinite horizon without constraints
Returns optimal input $u^\star$ that drives the System to the origin.
### MPC
#### Nominal Case
#### Economic MPC
#### Tracking MPC
#### Robust MPC
### Data-driven approaches
#### DeePC
#### RL-based
Raw data
{
"_id": null,
"home_page": null,
"name": "sysco",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.13",
"maintainer_email": null,
"keywords": "science, engineering, systems, controls, controller, discrete-time, model-based, data-driven",
"author": null,
"author_email": "Silvan Stadelmann <silvasta3@gmail.com>",
"download_url": null,
"platform": null,
"description": "# System and Controls Library\n\nCollection of various tools in the field of systems and controls.\n\n> Systems can mean just about anything.\n> Here, we are talking about **dynamic systems**\n> and how to find the **right input**\n> to achieve a desired **state of equilibrium**.\n\nAs a first step, the library implements the **base controller class**\nthat defines the basic requirements for any **discrete-time** controller.\n\nThe **next step** is to derive **model-based** controllers\nand then also **data-driven** controllers.\n\n_At some point, the fundamentals of control systems such as PID could be integrated,\npresumably as wrappers for existing libraries and tools._\n\n## Usage\n\n```python\nfrom sysco import Controller # Controller subclasses not already implemented\n\n# custom controller example\nclass MyController(Controller):\n def get_input(self):\n return 1\n\n# instantiate custom class and get input\nmy_controller = MyController()\nprint(my_controller.get_input()) # --> 1\n\n# try to instantiate base class\nbase_controller = Controller()\nnext_input = base_controller.get_input() # --> NotImplementedError\n```\n\n## Future development\n\nTo avoid bottlenecks later on, Rust is already built into the structure \ue7a8\n\n## Controller (in planning)\n\n### LQR\n\n- First one that will be implemented\n- Infinite horizon without constraints\n\nReturns optimal input $u^\\star$ that drives the System to the origin.\n\n### MPC\n\n#### Nominal Case\n\n#### Economic MPC\n\n#### Tracking MPC\n\n#### Robust MPC\n\n### Data-driven approaches\n\n#### DeePC\n\n#### RL-based\n\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Library for system and control tools",
"version": "0.1.1b1",
"project_urls": {
"Repository": "https://github.com/silvasta/sysco"
},
"split_keywords": [
"science",
" engineering",
" systems",
" controls",
" controller",
" discrete-time",
" model-based",
" data-driven"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dfb4f20ce5b97520065a2619783b7ed4aa518c4afe6eddae1122ca8729715c36",
"md5": "43b26dd0176cceb9b915bf52b95dbb99",
"sha256": "84d703679a07c7a3699a19d85724e5c8e967622d123678a201ab0453c4826ba3"
},
"downloads": -1,
"filename": "sysco-0.1.1b1-cp39-abi3-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "43b26dd0176cceb9b915bf52b95dbb99",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.13",
"size": 1683845,
"upload_time": "2025-08-15T15:42:11",
"upload_time_iso_8601": "2025-08-15T15:42:11.079751Z",
"url": "https://files.pythonhosted.org/packages/df/b4/f20ce5b97520065a2619783b7ed4aa518c4afe6eddae1122ca8729715c36/sysco-0.1.1b1-cp39-abi3-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 15:42:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "silvasta",
"github_project": "sysco",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "sysco"
}