{ "info": { "author": "Jason K. Moore", "author_email": "moorepants@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Physics" ], "description": "Introduction\n============\n\n.. image:: https://img.shields.io/pypi/v/opty.svg\n :target: https://pypi.org/project/opty\n\n.. image:: https://anaconda.org/conda-forge/opty/badges/version.svg\n :target: https://anaconda.org/conda-forge/opty\n\n.. image:: https://readthedocs.org/projects/opty/badge/?version=stable\n :target: http://opty.readthedocs.io\n\n.. image:: https://travis-ci.org/csu-hmc/opty.svg?branch=master\n :target: https://travis-ci.org/csu-hmc/opty\n\n``opty`` utilizes symbolic descriptions of ordinary differential equations\nexpressed with SymPy_ to form the constraints needed to solve optimal control\nand parameter identification problems using the direct collocation method and\nnon-linear programming. In general, if one can express the continuous first\norder ordinary differential equations of the system as symbolic expressions\n``opty`` will automatically generate a function to efficiently evaluate the\ndynamical constraints and a function that evaluates the sparse Jacobian of the\nconstraints, which have been optimized for speed and memory consumption. The\ntranslation of the dynamical system description to the NLP form, primarily the\nformation of the constraints and the Jacobian of the constraints, manually is\na time consuming and error prone process. ``opty`` eliminates both of those\nissues.\n\n.. _SymPy: http://www.sympy.org\n\nFeatures\n--------\n\n- Both implicit and explicit forms of the first order ordinary differential\n equations and differential algebraic equations are supported, i.e. there is\n no need to solve for the derivatives of the dependent variables.\n- Backward Euler or Midpoint integration methods.\n- Supports both trajectory optimization and parameter identification.\n- Easy specification of bounds on free variables.\n- Easily specify additional \"instance\" constraints.\n- Automatic parallel execution using openmp if installed.\n- Built with support of sympy.physics.mechanics and PyDy in mind.\n\nInstallation\n============\n\nThe required dependencies are as follows:\n\n- python 2.7 or 3.5+\n- sympy >= 1.0.0\n- ipopt >= 3.11\n- numpy >= 1.8.1\n- scipy >= 0.14.1\n- cython >= 0.20.1\n- cyipopt >= 0.1.7\n\nTo run all of the examples the following additional dependencies are required:\n\n- matplotlib >= 1.3.1\n- pydy >= 0.3.0\n- pytables\n- pandas\n- yeadon\n- openmp\n\n**Currently only Linux and Mac are officially supported.** Although, it should\nbe possible to install this on Windows with an appropriate Cython compilation\ntoolchain and IPOPT installed from binaries or custom compliation.\n\nIf you are installing on Linux or Mac, the easiest way to get started is to\ninstall Anaconda_ (or Miniconda_) and use conda to install opty and any desired\noptional dependencies from the Conda Forge channel, e.g.::\n\n $ conda config --add channels conda-forge\n $ conda install opty matplotlib pytables pandas yeadon pydy\n\n.. _Anaconda: https://www.continuum.io/downloads\n.. _Miniconda: https://conda.io/miniconda.html\n\nIf you are using Windows or want a custom installation of any of the\ndependencies, e.g. Ipopt, you must first install Ipopt along with it's headers.\nFor example, on Debian based systems you can use the package manager::\n\n $ sudo apt-get install coinor-libipopt1v5 coinor-libipopt-dev\n\nor prebuilt binaries can be downloaded from\nhttps://www.coin-or.org/download/binary/Ipopt/.\n\nFor customized installation (usually desired for performance) follow the\ninstructions on the IPOPT documentation to compile the library. If you install\nto a location other than `/usr/local` on Unix systems you will likely have to\nset the ``LD_LIBRARY_PATH`` so that you can link to IPOPT when installing\n``cyipopt``.\n\nOnce Ipopt is installed and accessible, install conda then create an environment::\n\n $ conda create -n opty-custom pip numpy scipy cython sympy\n $ source activate opty-custom\n (opty-custom)$ pip install https://github.com/matthias-k/cyipopt/archive/v0.1.7.tar.gz\n (opty-custom)$ pip install opty\n\nIf you want to develop opty, create a conda environment with all of the\ndependencies installed::\n\n $ conda config --add channels conda-forge\n $ conda create -n opty-dev python sympy numpy scipy cython ipopt cyipopt matplotlib pytables pydy pandas\n $ source activate opty-dev\n\nNext download the opty source files and install with::\n\n (opty-dev)$ conda develop /path/to/opty\n\nor::\n\n (opty-dev)$ cd /path/to/opty\n (opty-dev)$ python setup.py develop\n\nUsage\n=====\n\nThere are several examples available in the ``examples`` directory. For\nexample, the optimal torque to swing up a pendulum with minimal energy can be\nrun with::\n\n $ python examples/pendulum_swing_up.py\n\nFunding\n=======\n\nThe work was partially funded by the State of Ohio Third Frontier Commission\nthrough the Wright Center for Sensor Systems Engineering (WCSSE), by the\nNational Science Foundation under Grant No. 1344954, and by National Center of\nSimulation in Rehabilitation Research 2014 Visiting Scholarship at Stanford\nUniversity.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/csu-hmc/opty", "keywords": "", "license": "BSD-2-clause", "maintainer": "", "maintainer_email": "", "name": "opty", "package_url": "https://pypi.org/project/opty/", "platform": "", "project_url": "https://pypi.org/project/opty/", "project_urls": { "Homepage": "http://github.com/csu-hmc/opty" }, "release_url": "https://pypi.org/project/opty/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "Tools for optimizing dynamic systems using direct collocation.", "version": "1.0.0" }, "last_serial": 3535980, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0fd3a05ca978d7062ea59b9c079d0e2d", "sha256": "e36e6257c3d94700fdbc2fbf06105ef6fd0505621ecb8618e4794f4b7af1e0a6" }, "downloads": -1, "filename": "opty-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0fd3a05ca978d7062ea59b9c079d0e2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24668, "upload_time": "2017-01-29T07:53:25", "url": "https://files.pythonhosted.org/packages/e2/3b/0f14fdf471703491c240a5b7b7d7928699297882f1c462e9a52f76fbf9e7/opty-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7b1d1d1208b91a7252af94181aa1a2ac", "sha256": "362a65e7b313d3a8fb403ae8148035c40c6078d1ca490b900b78a439110ff16e" }, "downloads": -1, "filename": "opty-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7b1d1d1208b91a7252af94181aa1a2ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25750, "upload_time": "2017-01-29T08:53:41", "url": "https://files.pythonhosted.org/packages/52/5f/827d35d71e2ceece44b8870bde6bfc4702d6abf24c32d35d188c0331a582/opty-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c6c9f9779251344873a25c4b71977290", "sha256": "aaf53d76054b0c3603575450d1f9dd9c7fc1f29f91a3338b86642ee5af5334c2" }, "downloads": -1, "filename": "opty-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c6c9f9779251344873a25c4b71977290", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27486, "upload_time": "2017-06-04T01:43:09", "url": "https://files.pythonhosted.org/packages/01/d4/0d28cc306db5d9149825aa3594e394df7cdb3e87f9a965c1989a403d027e/opty-0.2.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "24418c96f78cfc4234a204a90a933211", "sha256": "9eb5a53e1ca173bbe08f3f4553f0b5b568f1da0cc7f784657be0021f1c73816e" }, "downloads": -1, "filename": "opty-1.0.0.tar.gz", "has_sig": false, "md5_digest": "24418c96f78cfc4234a204a90a933211", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29093, "upload_time": "2018-01-30T19:27:03", "url": "https://files.pythonhosted.org/packages/17/5e/6fb1be6458cb19ce2738842779206a08161c67ed0183cec4e8ca128fabaa/opty-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "24418c96f78cfc4234a204a90a933211", "sha256": "9eb5a53e1ca173bbe08f3f4553f0b5b568f1da0cc7f784657be0021f1c73816e" }, "downloads": -1, "filename": "opty-1.0.0.tar.gz", "has_sig": false, "md5_digest": "24418c96f78cfc4234a204a90a933211", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29093, "upload_time": "2018-01-30T19:27:03", "url": "https://files.pythonhosted.org/packages/17/5e/6fb1be6458cb19ce2738842779206a08161c67ed0183cec4e8ca128fabaa/opty-1.0.0.tar.gz" } ] }