中文乐高

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 7576|回复: 8

【原创】NXT-G简易PID模块ChloroPID,一个图标搞定

[复制链接]
发表于 2012-7-1 19:17:28 | 显示全部楼层 |阅读模式
本帖最后由 Martin1994 于 2012-7-3 18:13 编辑

Presented by: Martin Chloride
转载请注明出处.

先来个Demo,同步电机

(自带吐槽:优酷自转码果然不靠谱,帧率掉一地,以后还是自己转完战渣浪好了)

参考教程:http://bbs.cmnxt.com/thread-5688-1-1.html
(自带吐槽 :实在是找不到高端一点的教程了)

模块见附件。
(自带吐槽 :NXT-G用得我恶心死了,乱七八糟的走线,动不动卡机崩溃,用C十几行代码就能解决的事情居然要我那么长时间)

使用方法:
 1 - 将附件中的 "ChloroPID.rbt" 拷贝到当前用户的 "My Blocks" 文件夹下;
 2 - 建立一个循环,放入 ChloroPID 模块;
 3 - 设置一个输入(如光感的读数),接入 "value" 输入端中;
 4 - 输入其余各参数,详细如下:
   i> amend - 积分回零的方式:如果设置为0,当输入值从阀值一端跳到阀值另一端时积分值清零;如果设置为(0,1),则每次循环将积分值自乘该值;
   ii> KP - 比例常数;
   iii> KI - 积分常数;
   iv> KD - 微分常数;
   v> offset - 阀值:平衡状态时输入值的理想值;
   vi> timer# - 计时器编号:允许的值为1、2、3,代表 NXT-G 所允许使用的3个计时器,如果程序中已经使用了某计时器,请在此设置为一个不同的值;
 5 - 将输出值(Result)处理后作为物理输出。
使用示例:


其他:
 1 - 这个模块在一个程序中同一时间内只能使用一个(也就是请不要在多线程程序中同时使用),因为 NXT-G 不支持局部变量(自带吐槽:坑爹呢)
 2 - 这个模块使用了计时器进行精确计算;
 3 - 这个模块会自动初始化;
 4 - offset值也可以是动态的,就像demo中的电机同步;
 5 - 这东西是这届 WRO 的副产品, WRO 居然规定不准用 C 不准用 Labview ,异常痛苦;
 6 - ChloroPID 遵循 GPLv2 协议,如需再开发请仔细阅读协议;

ChloroPID_Example.png

PID_demo.rbt

555.44 KB, 下载次数: 422

Demo

ChloroPID.rbt

2.7 MB, 下载次数: 1184

ChloroPID模块

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-7-2 12:40:43 | 显示全部楼层
不错下来看看
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-7-2 23:02:37 | 显示全部楼层
同步电机好像可以直接把两个马达用一根连接线接上
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2012-7-3 18:00:20 | 显示全部楼层
jerryxiaodoudou 发表于 2012-7-2 23:02
同步电机好像可以直接把两个马达用一根连接线接上

电流回馈又不能控制角度相同= =
而且这个只是为了演示PID的一个DEMO
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2012-7-6 07:38:11 | 显示全部楼层
收藏,,,{:soso_e100:}
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-18 19:31:24 | 显示全部楼层
...怎么是三国杀?!坑爹啊。。。。。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2013-5-18 23:59:18 | 显示全部楼层
zhangruyi123 发表于 2013-5-18 19:31
...怎么是三国杀?!坑爹啊。。。。。

你哪儿看见的三国杀= =
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2014-5-10 14:36:46 | 显示全部楼层
有没有只针对这个程序的说明???但看程序有点看不懂
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2016-5-11 15:09:59 | 显示全部楼层
good
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|中文乐高 ( 桂ICP备11003955号-1 )

GMT+8, 2019-10-24 13:31 , Processed in 0.029738 second(s), 25 queries .

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