amobbs.com 阿莫电子技术论坛

标题: 速度环转速50rpm,捏死后放开转速会过冲,一般怎么解决 [打印本页]

作者: sy8501    时间: 2023-8-6 18:46
标题: 速度环转速50rpm,捏死后放开转速会过冲,一般怎么解决
有电流内环,速度环参数用PI,做了积分限幅。

[attach]623652[/attach]


  1.    
  2.     error_velocity = target_velocity - present_velocity;  //计算速度误差-单位RPM
  3.    
  4.     integral += error_velocity;  //误差积分累加
  5.     if(integral > 15000)   integral = 15000;
  6.     if(integral < -15000)  integral = -15000;  //积分限幅

  7.     int output_current = 60 * error_velocity + 1 * integral;  // 计算电流
  8.    
  9.     limit_current = abs(limit_current);
  10.     if(output_current > limit_current)    output_current = limit_current;
  11.     if(output_current < -limit_current)   output_current = (-limit_current);  //电流限制
  12.    
  13.     return output_current; //输出电流
复制代码



作者: newkey    时间: 2023-8-6 19:35
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了
作者: wye11083    时间: 2023-8-6 19:51
本帖最后由 wye11083 于 2023-8-6 19:52 编辑
newkey 发表于 2023-8-6 19:35
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了 ...
(引用自2楼)


感觉lz的采样周期太长了,或者响应曲线太差,才会有这么大的过冲,能捏停。估计得提高采样频率,然后调参pid。pid的速度是个负反馈,太大会振荡,反复跳,太小就是响应特别差。
作者: sy8501    时间: 2023-8-6 20:24
newkey 发表于 2023-8-6 19:35
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了 ...
(引用自2楼)

这个模式是有电流环的,捏停后,维持住设定电流15A或者30A。

去掉电流环是捏不住的,强行捏住,电流上百A。


作者: sy8501    时间: 2023-8-6 20:27
wye11083 发表于 2023-8-6 19:51
感觉lz的采样周期太长了,或者响应曲线太差,才会有这么大的过冲,能捏停。估计得提高采样频率,然后调参 ...
(引用自3楼)

采样周期2ms,速度环周期2ms。

能被捏停,是个必选项,捏停后维持电流15A或者30A


作者: sy8501    时间: 2023-8-6 20:32
newkey 发表于 2023-8-6 19:35
首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了 ...
(引用自2楼)

功能上需要能被捏停。

捏停后保持15A或者30A的电流。


作者: sy8501    时间: 2023-8-6 20:33
是直驱轮毂电机
作者: newkey    时间: 2023-8-6 20:58
sy8501 发表于 2023-8-6 20:32
功能上需要能被捏停。

捏停后保持15A或者30A的电流。
(引用自6楼)

如果需要被捏停,那么应该用力矩闭环
作者: sy8501    时间: 2023-8-6 21:11
newkey 发表于 2023-8-6 20:58
如果需要被捏停,那么应该用力矩闭环
(引用自8楼)


它的内环已经是有力矩闭环了。

要求是
1. 要控制最大输出扭矩,
2. 要控制最大运转速度
3. 需要能被捏停,
4. 在捏停时候能维持设定扭矩。
5. 捏停释放后,不能超调。

现在是5还做不到。


作者: newkey    时间: 2023-8-6 21:40
sy8501 发表于 2023-8-6 21:11
它的内环已经是有力矩闭环了。

要求是
(引用自9楼)

捏停的时候直接跑到积分上限了,一松手输出一拍积分上限,速度不就飚上去了么。
作者: sy8501    时间: 2023-8-6 21:42
newkey 发表于 2023-8-6 21:40
捏停的时候直接跑到积分上限了,一松手输出一拍积分上限,速度不就飚上去了么。 ...
(引用自10楼)

对的。现在松手后,速度超调就是这么来的。


作者: Semiconductor    时间: 2023-8-6 22:15
既然已经能判断并主动进入堵转,是不是可以考虑此时积分清零
作者: sy8501    时间: 2023-8-6 22:40
Semiconductor 发表于 2023-8-6 22:15
既然已经能判断并主动进入堵转,是不是可以考虑此时积分清零
(引用自12楼)

堵转不是主动进入的。

是随时可能来的外力 和 随时可能撤销的外力。
作者: sy8501    时间: 2023-8-6 22:45
Semiconductor 发表于 2023-8-6 22:15
既然已经能判断并主动进入堵转,是不是可以考虑此时积分清零
(引用自12楼)

解决问题的思路:判断外力撤掉的时候,将积分清零。

但实际工作的时候是带载的,这个办法不够线性。


作者: qwe2231695    时间: 2023-8-6 23:07
积分饱和且转速误差大,清除积分项进行运行,转速稳定(误差比较小)后再打开积分。
作者: 天下乌鸦一般黑    时间: 2023-8-6 23:13
比例项超过阈值,直接清空积分项就行了。
作者: sy8501    时间: 2023-8-6 23:32
天下乌鸦一般黑 发表于 2023-8-6 23:13
比例项超过阈值,直接清空积分项就行了。
(引用自16楼)

堵转时候,满足比例项超过阈值的条件。那么积分就被清零了。

这个时候,只有一个P参数在起作用,  P参数 * 速度差 = 扭矩(电流)

如果此时目标速度很低,那么速度差也就很小,得到的扭矩是不够大的。


作者: TINXPST    时间: 2023-8-7 10:44
速度环怎么能捏停呢?是有堵转保护吗?
作者: sy8501    时间: 2023-8-7 10:53
TINXPST 发表于 2023-8-7 10:44
速度环怎么能捏停呢?是有堵转保护吗?
(引用自18楼)

说不能捏停的,

基本上都是纯速度环裸奔。


作者: sy8501    时间: 2023-8-7 11:00
TINXPST 发表于 2023-8-7 10:44
速度环怎么能捏停呢?是有堵转保护吗?
(引用自18楼)

然后输出是直接给到占空比。
作者: carefree1986    时间: 2023-8-7 18:56
响应太慢
作者: 初音之恋    时间: 2023-8-8 08:47
难,这个负载变化太大了,堵转能判断,但是恢复后负载有多大难判断,突然松手速度肯定会飙上去,清零的话十有八九力矩不够,能想的办法应该只有增加低速力矩了,力矩上去了你又捏不停,矛盾
作者: sy8501    时间: 2023-8-10 03:35
qwe2231695 发表于 2023-8-6 23:07
积分饱和且转速误差大,清除积分项进行运行,转速稳定(误差比较小)后再打开积分。 ...
(引用自15楼)

过了四天,今晚才去重新调,问题解决了。

解决方法:

1.删除积分限幅,也就不存在积分饱和不饱和了。这样即使给1rpm,也可以输出设定扭矩,在速度为0的时候,也可以实现抱死。

2.积分清零条件是:超调超过目标转速100rpm,执行积分清零。也就是允许捏住后放开后的超调,并把它作为触发条件。



作者: sy8501    时间: 2023-8-10 03:41
[attach]623912[/attach]
作者: sy8501    时间: 2023-8-10 03:45
捏住后,保持10A的电流
[attach]623913[/attach]
作者: ibmx311    时间: 2023-8-10 04:30
堵转不好做,所以力反馈的设备有难点




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4