模块化PID控制库。

pypid的Python项目详细描述


这个包用python提供了一般的PID控制软件 Melcor MTCA后端。这个想法是实验者对 不需要温度控制实验或其他过程 在他们可以学习PID控制器的内部工作之前 执行简单的控制任务。

模块结构

这个包提供了一个高级控制器 每个设备的后端驱动程序。控制器处理自动调谐 PID反馈参数和改变系统温度,而 后端通信设定点更改、温度读取请求, 温度控制装置等。

后端

目前唯一支持的物理后端是melcor MTCA系列热电制冷器控制器 通过Modbus包在serial port上。这就是我所需要的 我的实验,但我试图写一个框架,是灵活的 足够交换其他后端。通过为您的 特定设备,您可以利用 控制器已编写的代码。

melcor

公司不会永远做生意,但实验室设备会做。 自1999年以来,我们的管制员一直很强,但梅尔科已经搬家了 在附近。根据他们的说法,莱尔德集团有限公司 在2009年之前从Fedders公司购买了Melcor(根据 他们逐渐淘汰了旧的 支持their own thermal sitemelcor.com网站,以及 看起来不再支持旧的mtca 控制器。不过,eBay上似乎有很多。

测试后端

要了解驾驶PID系统的感觉,请查看 testbackend,它模拟一个标准的一阶过程 死区时间(FOPDT)。

安装

套餐

gentoo

我已经为Gentoo打包了pypid。你需要layman和我的wtk overlay。安装时使用:

# emerge -av app-portage/layman
# layman --add wtk
# emerge -av dev-python/pypid

依赖性

如果您是手工安装或包装的 发行版,您需要以下依赖项:

PackagePurposeDebianGentoo
aubioPitch detectionpython-aubiomedia-libs/aubio
nosetestingpython-nosedev-python/nose
NumPyController analysispython-numpydev-python/numpy
pySerialserial comminicationpython-serialdev-python/pyserial
pymodbusModbus stackpython-modbusdev-python/twisted
SciPyController analysispython-scipydev-python/scipy

实际上,pymodbus可能(取决于您的包装系统)依赖于 通过TwistedpySerial上,因此单独使用pymodbus就足够了 你走吧。

尚未接受pymodbus的Debian包。Debian bug #578120跟踪预期方案的进度,但是 目前似乎已经停滞不前了。

手动安装

pypid可用作Git存储库:

$ git clone git://tremily.us/pypid.git

有关详细信息,请参见homepage。要安装签出,请运行 标准:

$ python setup.py install

用法

请参见examples目录中的示例。

测试

使用以下命令运行测试套件:

$ nosetests --with-doctest --doctest-tests pypid

请注意,您应该将温度控制设备连接到 在运行此命令之前,由于后端测试需要 已连接后端。

许可证

此项目在GNU General Public License Version 3或更高版本下分发。

作者

W.特雷弗·金 wking@tremily.us 版权所有2008-2012

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从Struts操作的钩子更改表单值(Liferay 6.2)   java如何改变Spring MVC处理url“点”字符的行为   Clojure中使用Java接口的问题   junit如何模拟comosDB azure java集成客户端?   运行函数时发生java错误   netbeans Java。jar文件和依赖项   Eclipse中文本字段中的java输入类型   在JAVA中,将集合变量从实时批处理运行时传递到调用批处理文件   java通过Bean验证API中的自定义消息管理异常   XML到json的转换,在Java中,同时保留数据类型   根据JAVA中的列名从Excel文件中获取单元格值   在AsyncTask的doInBackground中未调用java FirebaseMessagingService   java如何在数据库中插入一行?