Package: pypid
This package provides generalPIDcontrol software in Python with a
Melcor MTCA backend.  The idea is that experimentalists interested in
temperature controlled experiments or other processes should not need
to learn the inner workings of their PID controller before they can
perform simple control tasks.Module structureThis package provides both a high level controller that uses
per-device backend drivers.  The controller handles auto-tuning the
PID feedback parameters and changing system temperatures, while the
backends communicate setpoint changes, temperature read requests,
etc. to the temperature control device.BackendsThe only physicsal backend that is supported at the moment is a Melcor
Series MTCA Thermoelectric Cooler Controller, which we communicate
with viaModbuspackets over aserial port.  That’s all I needed
for my experiments, but I tried to write a framework that was flexible
enough to swap in other backends.  By subclassingBackendfor your
particular device, you can take advantage of the high-levelControllercode that’s already written.MelcorCompanies don’t stay in business forever, but lab equipment does ;).
Our controller is still going strong since 1999, but Melcor has moved
around.  According to their2005 announcementthe Laird Group PLC
purchased Melcor from Fedders Corporation, and by 2009 (according to
theInternet Archive Wayback Machine) they phased out the old
website atmelcor.comin favor oftheir own thermal site, and
it looks like there is no longer support for the older MTCA
controllers.  There seem to be a number of them oneBaythough ;).TestBackendTo get a feel for driving a PID system, look atcheck out theTestBackend, which simulates a standard first-order process with
dead time (FOPDT).InstallationPackagesGentooI’ve packagedpypidforGentoo.  You needlaymanand mywtk
overlay.  Install with:# emerge -av app-portage/layman
# layman --add wtk
# emerge -av dev-python/pypidDependenciesIf you’re installing by hand or packagingpypidfor another
distribution, you’ll need the following dependencies:PackagePurposeDebianGentooaubioPitch detectionpython-aubiomedia-libs/aubionosetestingpython-nosedev-python/noseNumPyController analysispython-numpydev-python/numpypySerialserial comminicationpython-serialdev-python/pyserialpymodbusModbus stackpython-modbusdev-python/twistedSciPyController analysispython-scipydev-python/scipyActually,pymodbusmay (depending on your packaging system) depend
onpySerialviaTwisted, sopymodbusalone may be enough to get
you going.The Debian package forpymodbushas not been accepted yet.Debian
bug #578120tracks the progress of the prospective package, but it
seems to have stalled out at the moment.Installing by handPypid is available as aGitrepository:$ git clone git://tremily.us/pypid.gitSee thehomepagefor details.  To install the checkout, run the
standard:$ python setup.py installUsageSee the examples in theexamplesdirectory.TestingRun the test suite with:$ nosetests --with-doctest --doctest-tests pypidNote that you should have your temperature control device connected to
your computer before running this command, as backend tests require a
connected backend.LicenceThis project is distributed under theGNU General Public License
Version 3or greater.AuthorW. Trevor Kingwking@tremily.usCopyright 2008-2012