呵呵
发表于 2013-10-15 18:05:11
嗯,人才 {:soso_e179:} 学习中
lmb312
发表于 2013-10-15 23:04:51
编码器给个购买网址吧
tingjie
发表于 2013-10-16 16:21:45
楼主强贴,下载学习一下。
天空树
发表于 2013-10-17 09:47:28
关注楼主很久了,这份资料非常有用,非常感谢。
奏光
发表于 2013-10-30 20:53:26
lz做的好啊,我当时做的时候电机没加编码器,一直水平方向加速运动,好蛋疼
Microsoft
发表于 2013-11-4 09:27:06
太酷了,我猜你是机械专业的吧?
电子侠
发表于 2013-11-24 14:41:14
你好! 为什么 我在Timer1.attachInterrupt( StepperEvent ); // attach the service routine here这里编译 错误
Malc
发表于 2013-11-24 17:35:40
电子侠 发表于 2013-11-24 14:41 static/image/common/back.gif
你好! 为什么 我在Timer1.attachInterrupt( StepperEvent ); // attach the service routine here这里编 ...
是不是没有装timerOne的库
Ian
发表于 2013-11-28 17:58:57
if(speedTimer==5)
{
speedTimer=0;
////////Speed PID///////////////
positionLast=position;
lastSpeed=armSpeed;
position=SSI(1);
armSpeed=calcSpeed(position,positionLast);
armSpeedArr=armSpeedArr;
armSpeedArr=armSpeedArr;
armSpeedArr=armSpeed;
armSpeed=mid(armSpeedArr,armSpeedArr,armSpeedArr);
if(abs(armSpeed)<=1)
armSpeed=0;
absPositionLast=absPosition;
absPosition+=armSpeed;
sp_error_p = setSpeed-armSpeed;
sp_error_d = armSpeed-lastSpeed;
sp_error_i = sp_error_i + sp_error_p;
sp_error_i=constrain(sp_error_i,-1000,1000);
tempSpSpeed = -(np*sp_error_p/10.0 + nd*sp_error_d/10.0 + ni*sp_error_i/100.0);
tempSpSpeed=constrain(tempSpSpeed,-delta,delta);
//if(PIDSign==false||SpeedPIDSign==false||abs(degree)>155)
if(PIDSign==true&&SpeedPIDSign==true&&abs(degree)>155)
{
setPoint+=tempSpSpeed;
if(setPoint>originPoint+maxDelta)
setPoint=originPoint+maxDelta;
else if(setPoint<originPoint-maxDelta)
setPoint=originPoint-maxDelta;
}
else if(SpeedPIDSign==true)
{
setPoint=originPoint;
}
}
这是不是就是步进的闭环?
控制在+-90度之间?
什么叫"速度做为被控量,平衡点是180+-8作为输出?
我们当时用的伺服,可是没有考虑转轴杆子要左右对称导致转动惯量过大,惯性过大,伺服电机不稳
Ian
发表于 2013-11-28 18:02:15
我看你们摆杆的另一端绑了东西,我们压根没有另一端摆杆,原来最大的败笔就在这里,勉强做出4个要求
Malc
发表于 2013-11-28 19:10:10
Ian 发表于 2013-11-28 17:58 static/image/common/back.gif
if(speedTimer==5)
{
speedTimer=0;
这个pid是为了解决摆杆在保持平衡的状态下,摆臂会慢慢漂移然后平衡失败这个问题的,两个pid的关系是串联(pid1的输入是(目标平衡点-当前角度),输出是步进速度,pid2的输入是(目标速度-步进速度),输出是目标平衡点),不是叠加,叠加方案没调出来。。
当你的摆杆很重的时候,有必要在摆臂另一端加配重平衡,我们的杆子很轻,去的配重也完全没问题,因为步进的力矩很大
还有,你们用的伺服是几百块的成品,还是普通电机+编码器,如果是后者的话,很不好控制,4天比赛浪费了1天在直流电机上。。
Eternalve
发表于 2013-11-28 22:20:43
Malc 发表于 2013-11-28 19:10 static/image/common/back.gif
这个pid是为了解决摆杆在保持平衡的状态下,摆臂会慢慢漂移然后平衡失败这个问题的,两个pid的关系是串联 ...
楼主请问平衡车的话这样的串级控制也可以吗输入输出是什么呢?
Malc
发表于 2013-11-29 11:57:58
Eternalve 发表于 2013-11-28 22:20 static/image/common/back.gif
楼主请问平衡车的话这样的串级控制也可以吗输入输出是什么呢?
平衡车没试过串联控制,我用的是基于卓晴老师的方案,你可以看看他写的教程,叫 电磁组直立行车参考设计方案
电子侠
发表于 2013-12-21 20:03:22
Malc 发表于 2013-11-24 17:35 static/image/common/back.gif
是不是没有装timerOne的库
你好!应该是没装的问题,要怎么装呢?
风笛丸
发表于 2013-12-23 15:54:25
膜拜一下,控制的够精准啊,没试过感觉挺牛X的,呵呵
页:
1
[2]
3
4
5
6
7
8
9
10
11