永发信息网

求教:舵机如何通过程序减速?舵机的转速太快,如何通过程序给减速。

答案:2  悬赏:0  手机版
解决时间 2021-12-04 13:56
求教:舵机如何通过程序减速?舵机的转速太快,如何通过程序给减速。
最佳答案
PWM就不用说了。我给你一段PID的代码:
#define AA_KPVALUE 150 #define AA_KIVALUE 100 #define AA_KDVALUE 30
typedef struct PID { sint an_Ref; //角度PID,角度设定值 sint an_FeedBack; //角度PID,角度反馈值 sint an_PreError; //角度PID,前一次,角度误差,,an_Ref - an_FeedBack sint an_PreDerror; //角度PID,前一次,角度误差之差,d_error-PreDerror; sint an_Kp; //角度PID,Ka = Kp sint an_Ki; //角度PID,Kb = Kp * ( T / Ti ) sint an_Kd; //角度PID, sint an_PreU; //舵机控制输出值}PID;

PID sPID;//申请一个PID类型的变量

void PIDInit(void)//PID初始化 { sPID.an_Ref = 0 ; sPID.an_FeedBack = 0 ; sPID.an_PreError = 0 ; sPID.an_PreDerror = 0 ; sPID.an_Kp = AA_KPVALUE; sPID.an_Ki = AA_KIVALUE; sPID.an_Kd = AA_KDVALUE; sPID.an_PreU = 0 ; }
unsigned int PIDCalc( PID *pp )//返回值赋给舵机 { sint error,d_error,dd_error; error = pp->an_Ref - pp->an_FeedBack; d_error = error - pp->an_PreError; dd_error = d_error - pp->an_PreDerror; pp->an_PreError = error; pp->an_PreDerror = d_error; pp->an_PreU +=pp->an_Kp*error+pp->an_Ki*d_error+pp->an_Kd*dd_error ; return ( pp->an_PreU ); }在主函数中初始化PID,将设定值与返回值设置好后,调用unsigned int PIDCalc( PID *pp )把返回值给舵机。
设定值就是你想要让舵机转的角度赋给sPID.an_Ref,返回值就是舵机现在的角度。因为是一个闭环控制系统,需要将角度量化以后的值返回,赋给sPID.an_FeedBack,这个算法会根据设定值与现在所处的角度计算出下一次所偏转的角度,这是一种增量式数字PID的算法。若想修改转的速度就修改宏定义中这三个参数的值,其中AA_KPVALUE影响最大。PID的东西很多,我也只是初窥门径。希望对你有所帮助
全部回答
用PWM啊 +PID
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
本田Z4摩托车56期化油器,仪表指示灯都是什么
永川装修房子在哪儿去找水电工
会泽大裂谷会泽大裂谷天气
郑州海洋馆到jw万豪酒店如何走
联想笔记本flex2-14d a6-6310怎么样
这是什么颜色?
玉柴六k跟噢威的凸轮轴有什么区别
冬天棉被几斤合适?
对花对酒,落梅成愁,十里长亭水悠悠.求下联
梦见几个人打我幺叔
请问,心理咨询师如何报考?
孕妇专门穿的防辐射服用处大吗?
芳芳看了一本书,已经看了全书的百分之35,没
钓大鱼,5.4米杆子。中通竿,矶竿哪个好用?
现在的手机怎么都搞的那么大,特别是男士携带
推荐资讯
使用12版cad画的图可不可以在04版中打开
甘南藏族自治州人民检察院办公地址在什么地方
新沂市救助管理站办公地址在什么地方?我要处
iPhone7plus能贴按键贴吗
钢筋混凝土一部分钢筋没被水泥覆盖,多久会在
三星手机连接wifi怎么改http
想买样潮州特产送外省朋友,送什么好呢,在潮
单选题今有甲、乙、丙、丁四人通过“拔河”进
I want to do this time . A. something diff
45度角怎么算
The Internet has opened up a whole new onl
最近感觉心情很暴躁是怎么回事?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?