速度环转速50rpm,捏死后放开转速会过冲,一般怎么解决
有电流内环,速度环参数用PI,做了积分限幅。error_velocity = target_velocity - present_velocity;//计算速度误差-单位RPM
integral += error_velocity;//误差积分累加
if(integral > 15000) integral = 15000;
if(integral < -15000)integral = -15000;//积分限幅
int output_current = 60 * error_velocity + 1 * integral;// 计算电流
limit_current = abs(limit_current);
if(output_current > limit_current) output_current = limit_current;
if(output_current < -limit_current) output_current = (-limit_current);//电流限制
return output_current; //输出电流
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了 本帖最后由 wye11083 于 2023-8-6 19:52 编辑
newkey 发表于 2023-8-6 19:35
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了 ...
(引用自2楼)
感觉lz的采样周期太长了,或者响应曲线太差,才会有这么大的过冲,能捏停。估计得提高采样频率,然后调参pid。pid的速度是个负反馈,太大会振荡,反复跳,太小就是响应特别差。 newkey 发表于 2023-8-6 19:35
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了 ...
(引用自2楼)
这个模式是有电流环的,捏停后,维持住设定电流15A或者30A。
去掉电流环是捏不住的,强行捏住,电流上百A。
wye11083 发表于 2023-8-6 19:51
感觉lz的采样周期太长了,或者响应曲线太差,才会有这么大的过冲,能捏停。估计得提高采样频率,然后调参 ...
(引用自3楼)
采样周期2ms,速度环周期2ms。
能被捏停,是个必选项,捏停后维持电流15A或者30A
newkey 发表于 2023-8-6 19:35
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了 ...
(引用自2楼)
功能上需要能被捏停。
捏停后保持15A或者30A的电流。
是直驱轮毂电机 sy8501 发表于 2023-8-6 20:32
功能上需要能被捏停。
捏停后保持15A或者30A的电流。
(引用自6楼)
如果需要被捏停,那么应该用力矩闭环 newkey 发表于 2023-8-6 20:58
如果需要被捏停,那么应该用力矩闭环
(引用自8楼)
它的内环已经是有力矩闭环了。
要求是
1. 要控制最大输出扭矩,
2. 要控制最大运转速度
3. 需要能被捏停,
4. 在捏停时候能维持设定扭矩。
5. 捏停释放后,不能超调。
现在是5还做不到。
sy8501 发表于 2023-8-6 21:11
它的内环已经是有力矩闭环了。
要求是
(引用自9楼)
捏停的时候直接跑到积分上限了,一松手输出一拍积分上限,速度不就飚上去了么。 newkey 发表于 2023-8-6 21:40
捏停的时候直接跑到积分上限了,一松手输出一拍积分上限,速度不就飚上去了么。 ...
(引用自10楼)
对的。现在松手后,速度超调就是这么来的。
既然已经能判断并主动进入堵转,是不是可以考虑此时积分清零 Semiconductor 发表于 2023-8-6 22:15
既然已经能判断并主动进入堵转,是不是可以考虑此时积分清零
(引用自12楼)
堵转不是主动进入的。
是随时可能来的外力 和 随时可能撤销的外力。 Semiconductor 发表于 2023-8-6 22:15
既然已经能判断并主动进入堵转,是不是可以考虑此时积分清零
(引用自12楼)
解决问题的思路:判断外力撤掉的时候,将积分清零。
但实际工作的时候是带载的,这个办法不够线性。
积分饱和且转速误差大,清除积分项进行运行,转速稳定(误差比较小)后再打开积分。 比例项超过阈值,直接清空积分项就行了。 天下乌鸦一般黑 发表于 2023-8-6 23:13
比例项超过阈值,直接清空积分项就行了。
(引用自16楼)
堵转时候,满足比例项超过阈值的条件。那么积分就被清零了。
这个时候,只有一个P参数在起作用,P参数 * 速度差 = 扭矩(电流)
如果此时目标速度很低,那么速度差也就很小,得到的扭矩是不够大的。
速度环怎么能捏停呢?是有堵转保护吗? TINXPST 发表于 2023-8-7 10:44
速度环怎么能捏停呢?是有堵转保护吗?
(引用自18楼)
说不能捏停的,
基本上都是纯速度环裸奔。
TINXPST 发表于 2023-8-7 10:44
速度环怎么能捏停呢?是有堵转保护吗?
(引用自18楼)
然后输出是直接给到占空比。 响应太慢 难,这个负载变化太大了,堵转能判断,但是恢复后负载有多大难判断,突然松手速度肯定会飙上去,清零的话十有八九力矩不够,能想的办法应该只有增加低速力矩了,力矩上去了你又捏不停,矛盾 qwe2231695 发表于 2023-8-6 23:07
积分饱和且转速误差大,清除积分项进行运行,转速稳定(误差比较小)后再打开积分。 ...
(引用自15楼)
过了四天,今晚才去重新调,问题解决了。
解决方法:
1.删除积分限幅,也就不存在积分饱和不饱和了。这样即使给1rpm,也可以输出设定扭矩,在速度为0的时候,也可以实现抱死。
2.积分清零条件是:超调超过目标转速100rpm,执行积分清零。也就是允许捏住后放开后的超调,并把它作为触发条件。
捏住后,保持10A的电流
堵转不好做,所以力反馈的设备有难点
页:
[1]