搜索
bottom↓
回复: 31

增量式PID控制模拟程序(可执行+源码)

[复制链接]

出0入0汤圆

发表于 2009-10-3 19:10:26 | 显示全部楼层 |阅读模式
看到论坛上面作PID的也挺多的,国庆闲暇,编写了一个增量式PID的模拟控制程序,纯软件系统,理想模型,可用于研究算法之类的

这是简单的任务描述:
-------------------------------------
水池高1000mm,圆形,直径1000mm

进水阀 压力固定,直径0~30mm
出水阀 液位压力+固定压力值,直径0~30mm

模拟对进水阀进行增量式PID调节
-------------------------------------

到昨天基本完成任务,今天小整理一下,放出来,如果对你工作\研究\学习有用,那是我的荣幸哈,也希望有心的人来继续完善,增加功能什么的,大家好才是真的好撒。

源代码ourdev_488102.rar(文件大小:4.23M) (原文件名:PID_01.rar)

运行界面见截图:

运行截图 (原文件名:R_CAP.JPG)

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2009-10-3 20:17:50 | 显示全部楼层
谢谢,国庆好事多,我来做沙发,呵呵。

出0入0汤圆

 楼主| 发表于 2009-10-3 21:29:30 | 显示全部楼层
代码用VC2005做的,D版呐,惭愧!

主要定义了3个C++类,阀门、水池和PID控制类

其它的显示曲线,都是用现成的了,直接在网上下载了一个,都没有修改。曾经写过一个的功能强大的曲线显示,自由缩放,平移,X\Y单独缩放,X\Y自动整数坐标,叠加什么的,功能多的很,不过现在的硬盘上没有,以算法为主,不是要多么精确的波形分析,现在这个还能凑合哈,或者那天心情不错,再翻出来整一下。

出0入0汤圆

 楼主| 发表于 2009-10-8 11:28:15 | 显示全部楼层
自提一把

出0入0汤圆

发表于 2009-10-15 14:17:20 | 显示全部楼层
干了件实事儿,顶!!!

出0入0汤圆

 楼主| 发表于 2009-10-16 09:26:29 | 显示全部楼层
模拟过程中不能修改设定水位和PID参数,需先停止模拟再修改

模拟过程中:
  可以随时切换自动或手动
  自动模式:
    上面进水阀在模拟的时候是自动调节的
    下面的出水阀可以手动调节
  手动模式:
    进水阀出水阀都可以调节

出0入0汤圆

发表于 2009-10-16 14:48:33 | 显示全部楼层
可以修改一下能在模拟的过程中修改设定值和PID参数吗···

出0入0汤圆

 楼主| 发表于 2009-10-16 14:54:55 | 显示全部楼层
可以暂停模拟,然后修改参数,然后开始继续模拟就OK。

当然,也有其他思路,只是觉得麻烦,源码都在了,想怎么改随便

出0入0汤圆

发表于 2009-10-16 15:09:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-10-16 15:14:25 | 显示全部楼层
非常感谢,我也是个初学者,参考了您的源码我改了一份c#的(本人对MFC不太熟悉),只能说基本上实现了随时修改设定值和参数,但是我对pid控制算法这块还很陌生,无法达到你那个曲线的效果,如果你有时间的话可以帮看看是哪的问题。

另请教一下:

#define K_Valve 1
iResult += (iUk / K_Valve);

这里的 K_Valve 是代表的什么啊,为什么是1?  还有c++ 的Timer函数 10 的单位是毫秒吗?

谢谢~

出0入0汤圆

 楼主| 发表于 2009-10-16 18:45:06 | 显示全部楼层
K_Valve,现在没有任何用处,是留待将来变化系数的。

Timer就是10ms单位的,但是计算PID是每10个采样周期计算一次,也就是100ms一次,绘图也是同样的时间间隔,只是觉得这样图形变化看起来不慢也不快,完全可以修改之。

另外,没有追求数值准确性,但保证量纲的正确性

出0入0汤圆

发表于 2009-10-16 23:23:14 | 显示全部楼层
帮顶一下!

出0入0汤圆

发表于 2009-10-16 23:42:38 | 显示全部楼层
不错

出0入0汤圆

发表于 2009-10-16 23:46:04 | 显示全部楼层
好东西 mark 一下

出0入0汤圆

发表于 2009-10-29 08:43:19 | 显示全部楼层
好东西,一定要顶一下。。

出0入0汤圆

发表于 2009-10-29 09:51:27 | 显示全部楼层
这个有必要mark之。

出0入0汤圆

发表于 2009-12-12 11:52:02 | 显示全部楼层
?

出0入0汤圆

发表于 2010-1-27 16:36:38 | 显示全部楼层
mark

出0入85汤圆

发表于 2010-1-27 17:10:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-7 14:38:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-18 22:12:27 | 显示全部楼层
好东西不顶不行

出0入0汤圆

发表于 2011-3-24 00:28:22 | 显示全部楼层
要顶一下

出0入0汤圆

发表于 2011-3-24 01:14:20 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-4-15 15:59:10 | 显示全部楼层
mark

出0入20汤圆

发表于 2011-6-23 21:02:55 | 显示全部楼层
内部的计算公式有错吧?
        iUk = Param.iK_P*(iEk - iEk_1 + Param.iK_I*iEk + Param.iK_D*(iEk-2*iEk_1+iEk_2));
这是位置式PID吧?

出0入0汤圆

发表于 2011-8-22 21:08:42 | 显示全部楼层
收藏

出0入0汤圆

发表于 2011-11-29 16:56:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-10-16 15:50:19 | 显示全部楼层
必须收下啊

出0入0汤圆

发表于 2014-8-22 16:16:19 | 显示全部楼层
必须顶啊。。

出0入0汤圆

发表于 2014-8-22 21:16:20 | 显示全部楼层

出0入0汤圆

发表于 2015-6-23 21:04:48 | 显示全部楼层
学习学习
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 01:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表