找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 14185|回复: 21

利用“积分”演算法控制NXT马达

    [复制链接]
发表于 2011-7-22 20:40:52 | 显示全部楼层 |阅读模式
PID是我想了大半年的问题了……鉴于还是不理解,我突发奇想将其中的三个部分分开来试验。在研究I(积分)的时候,编写了这个程序做实验。结果效果非常出乎意料……

托伯虎的福,昨天看了一篇关于PID的文章。其中有提到"如何将积分的值逐渐趋于0"的一个问题。顺带一提,本程序里用的积分没有高等数学那么高深= =。。这里的积分,就是将一个变量不断的累加起来。因为这个变量有时候是正数,有时候是负数,所以积分得到的积分数,会在0的附近波动。
如果直接如上所说,将一个变量不断累加(例如:将NXT马达的角度值不断累加……NXT马达从0度正转时角度值是正数,从0度反转时得到的是负数),累加后,将得到的数字经过变换,给到马达本身,当给到马达的是正数,马达就会反转;负数,马达就会正转。然后会形成如下情况:

用手将马达正转→积分数不断增加→正数时,马达反转→马达反转到负数值→积分数不断减小→负数时,马达正转→……循环第二步

这样的结果是啥呢?就是马达会不停的来回转动,并且转动的度数越来越多……



如果将上面的积分中加一个步骤:将积分数乘以0.1之后,再累加当前变量。
这样的话,会有什么效果呢?大家动脑经想一想~


上面这个视频中的程序可以下载

I制御.rar

120.83 KB, 下载次数: 459

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2011-7-22 22:36:31 | 显示全部楼层
看着是有点不明白,学习了!谢谢~
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-7-22 22:47:54 | 显示全部楼层
這個PID控制還真威!~
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-7-22 23:04:29 | 显示全部楼层
jscheng 发表于 2011-7-22 22:47
這個PID控制還真威!~

沒有用到PID喔= =。。僅僅只用了I
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-7-23 02:39:29 | 显示全部楼层
本帖最后由 etspy 于 2011-7-23 02:40 编辑

WIKI上的解释还是蛮通俗易懂的:
"PID是以它的三种纠正算法而命名的。这三种算法都是用加法调整被控制的数值。而实际上这些加法运算大部分变成了减法运算因为被加数总是负值。这三种算法是:

比例- 来控制当前,误差值和一个负常数P(表示比例)相乘,然后和预定的值相加。P只是在控制器的输出和系统的误差成比例的时候成立。比如说,一个电热器的控制器的比例尺范围是10°C,它的预定值是20°C。那么它在10°C的时候会输出100%,在15°C的时候会输出50%,在19°C的时候输出10%,注意在误差是0的时候,控制器的输出也是0。

积分 - 来控制过去,误差值是过去一段时间的误差和,然后乘以一个负常数I,然后和预定值相加。I从过去的平均误差值来找到系统的输出结果和预定值的平均误差。一个简单的比例系统会振荡,会在预定值的附近来回变化,因为系统无法消除多余的纠正。通过加上一个负的平均误差比例值,平均的系统误差值就会总是减少。所以,最终这个PID回路系统会在预定值定下来。

导数 - 来控制将来,计算误差的一阶导,并和一个负常数D相乘,最后和预定值相加。这个导数的控制会对系统的改变作出反应。导数的结果越大,那么控制系统就对输出结果作出更快速的反应。这个D参数也是PID被称为可预测的控制器的原因。D参数对减少控制器短期的改变很有帮助。一些实际中的速度缓慢的系统可以不需要D参数。 "
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-7-23 07:45:24 | 显示全部楼层
etspy 发表于 2011-7-23 02:39
WIKI上的解释还是蛮通俗易懂的:
"PID是以它的三种纠正算法而命名的。这三种算法都是用加法调整被控制的数值 ...

我也是看WIKI的解释的……确实更好理解
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-7-24 19:00:40 | 显示全部楼层
学习哦。    楼主 力顶你!!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-7-25 08:47:44 | 显示全部楼层
就是 不知道 那个文件 用什么打开~~~
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-9-8 14:04:56 | 显示全部楼层
谢了,LZ
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-9-27 14:05:41 | 显示全部楼层
是呀,程序不会呀,在那里可以继续学习呢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-9 23:04:31 | 显示全部楼层
学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-11-11 08:26:25 | 显示全部楼层
哈哈,暂时看不明白,先搁一边
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-12-22 15:32:05 | 显示全部楼层
先慢慢熏着
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-1-3 15:05:32 | 显示全部楼层
又熏了一遍
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-2-27 16:51:23 | 显示全部楼层
非常不错  学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-6-18 21:05 , Processed in 0.100653 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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