pyvectorguidance


Namepyvectorguidance JSON
Version 1.0.3 PyPI version JSON
download
home_pagehttps://github.com/iftahnaf/pyvectorguidance
SummaryVector Guidance methods implemented in Python.
upload_time2023-09-25 12:38:30
maintainer
docs_urlNone
authorIftach Naftaly
requires_python
licenseApache Software License
keywords python vector guidance
VCS
bugtrack_url
requirements numpy rich scipy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![OS](https://img.shields.io/badge/OS-Linux-red?style=flat&logo=linux)
[![Python Version](https://img.shields.io/badge/Made%20with-Python%203.10-1f425f.svg?logo=python)](https://www.python.org/)
[![Docker](https://img.shields.io/badge/Docker-available-green.svg?style=flat&logo=docker)](https://github.com/emalderson/ThePhish/tree/master/docker)
[![Maintenance](https://img.shields.io/badge/Maintained-yes-green.svg)](https://github.com/iftahnaf/pyvectorguidance)
[![GitHub](https://img.shields.io/github/license/iftahnaf/pyvectorguidance)](https://github.com/iftahnaf/pyvectorguidance/blob/main/LICENSE)


# General Info
This repository implemented Vector Guidance methods for autonomous systems.

# Table of Contents

1. [About Vector Guidance](#about-vector-guidance)
2. [Install](#install)
3. [Usage](#usage)
4. [References](#references)

# About Vector Guidance
Vector Guidance are 3D optimal guidance methods for aerial systems.

The guidance laws based on a controller that minimized an finite LQ cost function with form of:

$$ J = \|\mathbf{y(t_f)}\| + k \int_{t_0}^{t_f} \|\mathbf{u(t)}\|^2 dt $$

Where:
- $y$ is the Zero-Effort-Miss variable
- $k$ is weight on the integration part of the cost
- $u$ is the controller
- $t_0$ is the initial time and $t_f$ is the final time.

Because the controller that minimized the LQ cost function is unbound, we define the maximum acceleration of the system as $u_m$, such that:

$\|\mathbf{u}\| \leq u_m$ while $t_0 \leq t \leq t_f$

**Note**: The value of $u_m$ is determine by the physical properties of the system (eg. thrusters saturations, aerodynamical constants)



# Install:

        pip install pyvectorguidance

# Usage

```python

from VectorGuidance import VectorGuidance

r = np.random.rand(3) * np.random.uniform(40, 60, size=1)
v = np.random.rand(3) * np.random.uniform(5, 15, size=1)

rho_w = 9.81
rho_u = 15
gz = 9.81

tgo = VectorGuidance.interception_tgo_bounded(r, v, rho_u, rho_w)
u = VectorGuidance.interception_controller_bounded(r, v, rho_u, tgo, gz)


```

# References

1. S. Gutman and S. Rubinsky, "3D-nonlinear vector guidance and exo-atmospheric interception," in IEEE Transactions on Aerospace and Electronic Systems, vol. 51, no. 4, pp. 3014-3022, Oct. 2015, doi: 10.1109/TAES.2015.140204.

2. Gutman, S. (2019). Exoatmospheric Interception via Linear Quadratic Optimization. Journal of Guidance, Control, and Dynamics.

3. S. Gutman, "Rendezvous and Soft Landing in Closed Form via LQ Optimization," 2019 27th Mediterranean Conference on Control and Automation (MED), Akko, Israel, 2019, pp. 536-540, doi: 10.1109/MED.2019.8798572.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/iftahnaf/pyvectorguidance",
    "name": "pyvectorguidance",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Python,Vector Guidance",
    "author": "Iftach Naftaly",
    "author_email": "iftahnaf@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/0e/34/6a07bdc8dea4419cc12d3ba2400ae50ba2fdb369cd80defae0e4ff9f0194/pyvectorguidance-1.0.3.tar.gz",
    "platform": null,
    "description": "![OS](https://img.shields.io/badge/OS-Linux-red?style=flat&logo=linux)\n[![Python Version](https://img.shields.io/badge/Made%20with-Python%203.10-1f425f.svg?logo=python)](https://www.python.org/)\n[![Docker](https://img.shields.io/badge/Docker-available-green.svg?style=flat&logo=docker)](https://github.com/emalderson/ThePhish/tree/master/docker)\n[![Maintenance](https://img.shields.io/badge/Maintained-yes-green.svg)](https://github.com/iftahnaf/pyvectorguidance)\n[![GitHub](https://img.shields.io/github/license/iftahnaf/pyvectorguidance)](https://github.com/iftahnaf/pyvectorguidance/blob/main/LICENSE)\n\n\n# General Info\nThis repository implemented Vector Guidance methods for autonomous systems.\n\n# Table of Contents\n\n1. [About Vector Guidance](#about-vector-guidance)\n2. [Install](#install)\n3. [Usage](#usage)\n4. [References](#references)\n\n# About Vector Guidance\nVector Guidance are 3D optimal guidance methods for aerial systems.\n\nThe guidance laws based on a controller that minimized an finite LQ cost function with form of:\n\n$$ J = \\|\\mathbf{y(t_f)}\\| + k \\int_{t_0}^{t_f} \\|\\mathbf{u(t)}\\|^2 dt $$\n\nWhere:\n- $y$ is the Zero-Effort-Miss variable\n- $k$ is weight on the integration part of the cost\n- $u$ is the controller\n- $t_0$ is the initial time and $t_f$ is the final time.\n\nBecause the controller that minimized the LQ cost function is unbound, we define the maximum acceleration of the system as $u_m$, such that:\n\n$\\|\\mathbf{u}\\| \\leq u_m$ while $t_0 \\leq t \\leq t_f$\n\n**Note**: The value of $u_m$ is determine by the physical properties of the system (eg. thrusters saturations, aerodynamical constants)\n\n\n\n# Install:\n\n        pip install pyvectorguidance\n\n# Usage\n\n```python\n\nfrom VectorGuidance import VectorGuidance\n\nr = np.random.rand(3) * np.random.uniform(40, 60, size=1)\nv = np.random.rand(3) * np.random.uniform(5, 15, size=1)\n\nrho_w = 9.81\nrho_u = 15\ngz = 9.81\n\ntgo = VectorGuidance.interception_tgo_bounded(r, v, rho_u, rho_w)\nu = VectorGuidance.interception_controller_bounded(r, v, rho_u, tgo, gz)\n\n\n```\n\n# References\n\n1. S. Gutman and S. Rubinsky, \"3D-nonlinear vector guidance and exo-atmospheric interception,\" in IEEE Transactions on Aerospace and Electronic Systems, vol. 51, no. 4, pp. 3014-3022, Oct. 2015, doi: 10.1109/TAES.2015.140204.\n\n2. Gutman, S. (2019). Exoatmospheric Interception via Linear Quadratic Optimization. Journal of Guidance, Control, and Dynamics.\n\n3. S. Gutman, \"Rendezvous and Soft Landing in Closed Form via LQ Optimization,\" 2019 27th Mediterranean Conference on Control and Automation (MED), Akko, Israel, 2019, pp. 536-540, doi: 10.1109/MED.2019.8798572.\n",
    "bugtrack_url": null,
    "license": "Apache Software License",
    "summary": "Vector Guidance methods implemented in Python.",
    "version": "1.0.3",
    "project_urls": {
        "Download": "https://github.com/user/reponame/archive/v_01.tar.gz",
        "Homepage": "https://github.com/iftahnaf/pyvectorguidance"
    },
    "split_keywords": [
        "python",
        "vector guidance"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "21038f1d0fcba16f59300c1684e1e4fd8bb97fab03265bbda2cb704213817578",
                "md5": "4fc5fac31371f83904cdef215dd90c8e",
                "sha256": "5f85a6f9e73ceaa5f0fbcee55455e870566c1352e8ba95a36d67afbbc748d516"
            },
            "downloads": -1,
            "filename": "pyvectorguidance-1.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4fc5fac31371f83904cdef215dd90c8e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 8704,
            "upload_time": "2023-09-25T12:38:27",
            "upload_time_iso_8601": "2023-09-25T12:38:27.648888Z",
            "url": "https://files.pythonhosted.org/packages/21/03/8f1d0fcba16f59300c1684e1e4fd8bb97fab03265bbda2cb704213817578/pyvectorguidance-1.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0e346a07bdc8dea4419cc12d3ba2400ae50ba2fdb369cd80defae0e4ff9f0194",
                "md5": "c0d07dde0aaca91fa91b43781b144572",
                "sha256": "53a4bae24d5a1eb09c5238895d198be83ffa07df181eb14b54cd912e4c7e7a66"
            },
            "downloads": -1,
            "filename": "pyvectorguidance-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "c0d07dde0aaca91fa91b43781b144572",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 8397,
            "upload_time": "2023-09-25T12:38:30",
            "upload_time_iso_8601": "2023-09-25T12:38:30.816596Z",
            "url": "https://files.pythonhosted.org/packages/0e/34/6a07bdc8dea4419cc12d3ba2400ae50ba2fdb369cd80defae0e4ff9f0194/pyvectorguidance-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-25 12:38:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "iftahnaf",
    "github_project": "pyvectorguidance",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.26.0"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    "==",
                    "13.3.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    "==",
                    "1.10.0"
                ]
            ]
        }
    ],
    "lcname": "pyvectorguidance"
}
        
Elapsed time: 0.32658s