該怎麼設定讓系統自動判別並遞增遞減呢?

kill7139 2015-09-09 10:44:16
以知條件
1.距離0~20
2.可輸入數值範圍0.6~10
.
簡單說明:
當我設定距離到15的時候,只要超過15它會返回,低於15它會前進也就是說在14~16之間上下跑動。
.
想要的目的:
假設我初始輸入數值是1,它會從1慢慢增加而直至14~16反覆跑動,『但我想要控制它增加的速度』,詳細就是,數值1 距離目的15還有誤差14之大,所以它遞增速度會以每秒增加2~3來跑,當數值到了10然後誤差剩5時,遞增速度會減慢從原本的每秒增加0.5~1這樣。
『距離值是變數』!以上舉例是選擇15為目的,如當我選擇5為目的的時候,速度會變成每秒增加1這樣來遞增,而非固定每秒增加2~3
主要是系統能自動判別『誤差值』
.
最後
我想請問大大,在我目的當中說明到的『它遞增速度會以每秒增加2~3來跑,當數值到了10然後誤差剩5時,遞增速度會減慢從原本的每秒增加0.5~1』
.
這樣的條件要怎麼去設定制做!?
有請大大們指點
我用的是用BCB(C++Borland 6)來製做,
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinayu2007 2015-09-14
  • 打赏
  • 举报
回复
是不是在说滤波器?
draculamx 2015-09-11
  • 打赏
  • 举报
回复
PID啊,百度了一下“PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。” 我是觉得这个算法有点微分的意思,不过我数学实在是差。。。 其实编程在很多时候基本上就是在解决数学问题,写代码不过是实现算法而已,真正关键的是在理论上(数学上)去生成这个算法。 祝你早日成功!
kill7139 2015-09-11
  • 打赏
  • 举报
回复
感謝大大的回覆 想了一下似乎是這樣 說明白一點就是PID控制 不知道大大清不清楚這個詞
引用 1 楼 draculamx 的回复:
这简单啊。。。不就是个数学应用题么。。。 总距离是一个变量,对吧,那么设为变量名 S 然后用百分比来解决就可以了啊: 当前距离设置为 n,那么 n/s 就是当前距离占总距离的百分比 假设 n=1,s=5 那么此时距离百分比 p=n/s=1/5=0.2=20%对吧?? if( p>0 && p<0.2 ) //距离百分比小于20%的时候 { v=1; //前进速度等于1 } else if ( p>0.2 && p<0.5 ) //距离百分比在20%到50%之间时 { v=2; //前进速度等于2 } 下面的根据你的条件写下去就好了 然后你时刻去计算P,得到当前百分比,来调整你的速度值就可以了啊。。
draculamx 2015-09-10
  • 打赏
  • 举报
回复
总而言之就是使用“比例”去解决这类的问题 当前距离和总距离之间的比例关系 还有就是总距离和递增速度之间的比例关系
draculamx 2015-09-10
  • 打赏
  • 举报
回复
这简单啊。。。不就是个数学应用题么。。。 总距离是一个变量,对吧,那么设为变量名 S 然后用百分比来解决就可以了啊: 当前距离设置为 n,那么 n/s 就是当前距离占总距离的百分比 假设 n=1,s=5 那么此时距离百分比 p=n/s=1/5=0.2=20%对吧?? if( p>0 && p<0.2 ) //距离百分比小于20%的时候 { v=1; //前进速度等于1 } else if ( p>0.2 && p<0.5 ) //距离百分比在20%到50%之间时 { v=2; //前进速度等于2 } 下面的根据你的条件写下去就好了 然后你时刻去计算P,得到当前百分比,来调整你的速度值就可以了啊。。
宝龙哥 2015-09-10
  • 打赏
  • 举报
回复
基本没看懂楼主在问什么

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧