{ "info": { "author": "W. Trevor King", "author_email": "wking@tremily.us", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "This package provides general PID_ control software in Python with a\nMelcor MTCA backend. The idea is that experimentalists interested in\ntemperature controlled experiments or other processes should not need\nto learn the inner workings of their PID controller before they can\nperform simple control tasks.\n\nModule structure\n================\n\nThis package provides both a high level controller that uses\nper-device backend drivers. The controller handles auto-tuning the\nPID feedback parameters and changing system temperatures, while the\nbackends communicate setpoint changes, temperature read requests,\netc. to the temperature control device.\n\nBackends\n--------\n\nThe only physicsal backend that is supported at the moment is a Melcor\nSeries MTCA Thermoelectric Cooler Controller, which we communicate\nwith via Modbus_ packets over a `serial port`_. That's all I needed\nfor my experiments, but I tried to write a framework that was flexible\nenough to swap in other backends. By subclassing `Backend` for your\nparticular device, you can take advantage of the high-level\n`Controller` code that's already written.\n\nMelcor\n~~~~~~\n\nCompanies don't stay in business forever, but lab equipment does ;).\nOur controller is still going strong since 1999, but Melcor has moved\naround. According to their `2005 announcement`__ the Laird Group PLC\npurchased Melcor from Fedders Corporation, and by 2009 (according to\nthe `Internet Archive Wayback Machine`__) they phased out the old\nwebsite at `melcor.com`_ in favor of `their own thermal site`__, and\nit looks like there is no longer support for the older MTCA\ncontrollers. There seem to be a number of them on eBay_ though ;).\n\n__ `Laird announcement`_\n__ wayback_\n__ `Laird thermal`_\n\nTestBackend\n~~~~~~~~~~~\n\nTo get a feel for driving a PID system, look atcheck out the\n`TestBackend`, which simulates a standard first-order process with\ndead time (FOPDT).\n\nInstallation\n============\n\nPackages\n--------\n\nGentoo\n~~~~~~\n\nI've packaged `pypid` for Gentoo_. You need layman_ and my `wtk\noverlay`_. Install with::\n\n # emerge -av app-portage/layman\n # layman --add wtk\n # emerge -av dev-python/pypid\n\nDependencies\n------------\n\nIf you're installing by hand or packaging `pypid` for another\ndistribution, you'll need the following dependencies:\n\n========= ===================== ================ ==========================\nPackage Purpose Debian_ Gentoo_\n========= ===================== ================ ==========================\naubio_ Pitch detection python-aubio media-libs/aubio\nnose_ testing python-nose dev-python/nose\nNumPy_ Controller analysis python-numpy dev-python/numpy\npySerial_ serial comminication python-serial dev-python/pyserial\npymodbus_ Modbus stack python-modbus dev-python/twisted\nSciPy_ Controller analysis python-scipy dev-python/scipy\n========= ===================== ================ ==========================\n\nActually, `pymodbus` may (depending on your packaging system) depend\non `pySerial`_ via Twisted_, so `pymodbus` alone may be enough to get\nyou going.\n\nThe Debian package for `pymodbus` has not been accepted yet. `Debian\nbug #578120`__ tracks the progress of the prospective package, but it\nseems to have stalled out at the moment.\n\n__ db578120_\n\nInstalling by hand\n------------------\n\nPypid is available as a Git_ repository::\n\n $ git clone git://tremily.us/pypid.git\n\nSee the homepage_ for details. To install the checkout, run the\nstandard::\n\n $ python setup.py install\n\nUsage\n=====\n\nSee the examples in the `examples` directory.\n\nTesting\n=======\n\nRun the test suite with::\n\n $ nosetests --with-doctest --doctest-tests pypid\n\nNote that you should have your temperature control device connected to\nyour computer before running this command, as backend tests require a\nconnected backend.\n\nLicence\n=======\n\nThis project is distributed under the `GNU General Public License\nVersion 3`_ or greater.\n\nAuthor\n======\n\nW. Trevor King\nwking@tremily.us\nCopyright 2008-2012\n\n\n.. _PID: http://en.wikipedia.org/wiki/PID_controller\n.. _Modbus: http://en.wikipedia.org/wiki/Modbus\n.. _serial port: http://en.wikipedia.org/wiki/Serial_port\n.. _Laird announcement: http://www.lairdtech.com/NewsItem.aspx?id=953\n.. _wayback: http://web.archive.org/web/20090204201524/http://melcor.com/\n.. _melcor.com: http://melcor.com\n.. _Laird thermal: http://lairdtech.thomasnet.com/category/thermal-management-solutions/\n.. _eBay: http://www.ebay.com/\n.. _layman: http://layman.sourceforge.net/\n.. _wtk overlay: http://blog.tremily.us/posts/Gentoo_overlay/\n.. _Debian: http://www.debian.org/\n.. _Gentoo: http://www.gentoo.org/\n.. _aubio: http://aubio.org/\n.. _NumPy: http://numpy.scipy.org/\n.. _pymodbus: http://code.google.com/p/pymodbus/\n.. _pySerial: http://pyserial.sourceforge.net/\n.. _Twisted: http://twistedmatrix.com/trac/\n.. _SciPy: http://www.scipy.org/\n.. _db578120: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=578120\n.. _nose: http://somethingaboutorange.com/mrl/projects/nose/\n.. _Git: http://git-scm.com/\n.. _homepage: http://blog.tremily.us/posts/pypid/\n.. _GNU General Public License Version 3: http://www.gnu.org/licenses/gpl.txt", "description_content_type": null, "docs_url": null, "download_url": "http://git.tremily.us/?p=pypid.git;a=snapshot;h=v0.4;sf=tgz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://blog.tremily.us/posts/pypid/", "keywords": null, "license": "GNU General Public License (GPL)", "maintainer": null, "maintainer_email": null, "name": "pypid", "package_url": "https://pypi.org/project/pypid/", "platform": "all", "project_url": "https://pypi.org/project/pypid/", "project_urls": { "Download": "http://git.tremily.us/?p=pypid.git;a=snapshot;h=v0.4;sf=tgz", "Homepage": "http://blog.tremily.us/posts/pypid/" }, "release_url": "https://pypi.org/project/pypid/0.4/", "requires_dist": null, "requires_python": null, "summary": "A modular PID control library.", "version": "0.4" }, "last_serial": 797535, "releases": { "0.3": [], "0.4": [ { "comment_text": "", "digests": { "md5": "895748f8d13390950b4755a12b14fa2b", "sha256": "d76694f7a74035008a88f1a20ae3a0253e8761161c95bd6e4f9207ba866cbe70" }, "downloads": -1, "filename": "pypid-0.4.tar.gz", "has_sig": true, "md5_digest": "895748f8d13390950b4755a12b14fa2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38040, "upload_time": "2012-07-22T18:31:21", "url": "https://files.pythonhosted.org/packages/63/5d/91d491875bd988541e20a231b4cc5725c1320f75fa1cf4652f518f03f145/pypid-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "895748f8d13390950b4755a12b14fa2b", "sha256": "d76694f7a74035008a88f1a20ae3a0253e8761161c95bd6e4f9207ba866cbe70" }, "downloads": -1, "filename": "pypid-0.4.tar.gz", "has_sig": true, "md5_digest": "895748f8d13390950b4755a12b14fa2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38040, "upload_time": "2012-07-22T18:31:21", "url": "https://files.pythonhosted.org/packages/63/5d/91d491875bd988541e20a231b4cc5725c1320f75fa1cf4652f518f03f145/pypid-0.4.tar.gz" } ] }