sy8501 发表于 2023-8-6 18:46:43

速度环转速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; //输出电流


newkey 发表于 2023-8-6 19:35:08

首先你得捏不停,捏得停说明你速度环刚性不行。先解决这个超调自然就解决了

wye11083 发表于 2023-8-6 19:51:30

本帖最后由 wye11083 于 2023-8-6 19:52 编辑

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

感觉lz的采样周期太长了,或者响应曲线太差,才会有这么大的过冲,能捏停。估计得提高采样频率,然后调参pid。pid的速度是个负反馈,太大会振荡,反复跳,太小就是响应特别差。

sy8501 发表于 2023-8-6 20:24:29

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

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

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

sy8501 发表于 2023-8-6 20:27:21

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

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

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

sy8501 发表于 2023-8-6 20:32:58

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

功能上需要能被捏停。

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

sy8501 发表于 2023-8-6 20:33:41

是直驱轮毂电机

newkey 发表于 2023-8-6 20:58:18

sy8501 发表于 2023-8-6 20:32
功能上需要能被捏停。

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

如果需要被捏停,那么应该用力矩闭环

sy8501 发表于 2023-8-6 21:11:58

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

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

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

现在是5还做不到。

newkey 发表于 2023-8-6 21:40:25

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

要求是
(引用自9楼)

捏停的时候直接跑到积分上限了,一松手输出一拍积分上限,速度不就飚上去了么。

sy8501 发表于 2023-8-6 21:42:50

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

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

Semiconductor 发表于 2023-8-6 22:15:00

既然已经能判断并主动进入堵转,是不是可以考虑此时积分清零

sy8501 发表于 2023-8-6 22:40:09

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

堵转不是主动进入的。

是随时可能来的外力 和 随时可能撤销的外力。

sy8501 发表于 2023-8-6 22:45:42

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

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

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

qwe2231695 发表于 2023-8-6 23:07:53

积分饱和且转速误差大,清除积分项进行运行,转速稳定(误差比较小)后再打开积分。

天下乌鸦一般黑 发表于 2023-8-6 23:13:18

比例项超过阈值,直接清空积分项就行了。

sy8501 发表于 2023-8-6 23:32:16

天下乌鸦一般黑 发表于 2023-8-6 23:13
比例项超过阈值,直接清空积分项就行了。
(引用自16楼)

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

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

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

TINXPST 发表于 2023-8-7 10:44:42

速度环怎么能捏停呢?是有堵转保护吗?

sy8501 发表于 2023-8-7 10:53:33

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

说不能捏停的,

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

sy8501 发表于 2023-8-7 11:00:24

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

然后输出是直接给到占空比。

carefree1986 发表于 2023-8-7 18:56:34

响应太慢

初音之恋 发表于 2023-8-8 08:47:22

难,这个负载变化太大了,堵转能判断,但是恢复后负载有多大难判断,突然松手速度肯定会飙上去,清零的话十有八九力矩不够,能想的办法应该只有增加低速力矩了,力矩上去了你又捏不停,矛盾

sy8501 发表于 2023-8-10 03:35:38

qwe2231695 发表于 2023-8-6 23:07
积分饱和且转速误差大,清除积分项进行运行,转速稳定(误差比较小)后再打开积分。 ...
(引用自15楼)

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

解决方法:

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

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


sy8501 发表于 2023-8-10 03:41:59

sy8501 发表于 2023-8-10 03:45:18

捏住后,保持10A的电流

ibmx311 发表于 2023-8-10 04:30:23

堵转不好做,所以力反馈的设备有难点
页: [1]
查看完整版本: 速度环转速50rpm,捏死后放开转速会过冲,一般怎么解决