智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1279|回复: 0
打印 上一主题 下一主题

求教 国防科大舵机非线性控制算法

[复制链接]

15

主题

44

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1348
威望
668
贡献
388
兑换币
414
注册时间
2014-2-28
在线时间
146 小时
毕业学校
吉首大学
跳转到指定楼层
1#
发表于 2014-6-16 01:06:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看是看懂了,但是里面的系数d e  f 不知道怎么调,有没有谁用了这个算法的,求教

void Steercontrol(void)                  //PD控制或者非线性控制
{
float pwm;
uint steerpwm;
float positionerror;
if(positiony<20)
xianzhiflag=0.5;
else if(positiony<30)       //若上限为40,则转折点为100  若上限为30,则转折点为753
无挖潜
xianzhiflag=0.05*positiony-0.5;
else
xianzhiflag=1;
if(psum<75)
xianzhiflag=1;
positionerror=position1[0]-position1[1];
if(position1[0]<0)
kpc=d*position1[0]*position1[0]-e*position1[0]+f;
else
kpc=d*position1[0]*position1[0]+e*position1[0]+f;
pwm=(kpc*position1[0]+kdc*positionerror)*xianzhiflag;
steerpwm=csteermid+(int)pwm;   
if(steerpwm<csteerleft)
PWMDTY67=csteerleft;
else if(steerpwm>csteerright)
错误!未找到引用源。
第  XVII  页
{
PWMDTY67=csteerright;
}
else
{
PWMDTY67=steerpwm;
}      
}

回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-14 17:33 , Processed in 0.044974 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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