• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

知道控制中经过PID调节计算得到的值怎么与执行部分的SPWM波占空比联系起来?

现在我是用spwm输出逆变器电压,我现在设定输出的电压220v我AD采样回来假如为200,这就是我的目标设定值,但是我现在采样回来是150,这里就代表输出电压低了,我就要调占空比了,
我占空比的值是在正弦表里面的,正常输出是直接把这个表里的值放到比较寄存器中,但现在输出低了,经过了PID调节得到了一个数值来调节输出,
我用设定值200和实际值100不是经过PID计算后得到一个PID的值嘛,这个值,怎么跟我正弦表里面的值结合起来后去控制占空比?
假如我PID得到的值是R
用的是增量式的PID
全部回复(6)
正序查看
倒序查看
2013-07-06 22:23
太深奥了,还在学习单片机中…
0
回复
无衣
LV.6
3
2013-07-06 22:31

我考虑过,可以认置双缓冲数组用来保存占空比值,原始正弦表放在ROM中.

如定义如下两个数组int a[];和int b[];在ROM中保存有const int c[];这个正弦表.

以a为占空比放到比较寄存器中,b的值等于PID数据R乘以c,不停的计算,每计算完一个周期,就用b的值去更新a

0
回复
IGBT2010
LV.8
4
2013-07-07 08:58
@无衣
我考虑过,可以认置双缓冲数组用来保存占空比值,原始正弦表放在ROM中.如定义如下两个数组inta[];和intb[];在ROM中保存有constintc[];这个正弦表.以a为占空比放到比较寄存器中,b的值等于PID数据R乘以c,不停的计算,每计算完一个周期,就用b的值去更新a
我有些不明白,为什么PID数据R乘以C,一般我们用增量式PID,PID计算出来的是输出与设定值的偏差,是不是应该再加上1后再去乘以标正弦表里的数据啊,这只是我自己的理解,不知道对不对,请大师指点!!
0
回复
无衣
LV.6
5
2013-07-07 09:08
@IGBT2010
我有些不明白,为什么PID数据R乘以C,一般我们用增量式PID,PID计算出来的是输出与设定值的偏差,是不是应该再加上1后再去乘以标正弦表里的数据啊,这只是我自己的理解,不知道对不对,请大师指点!!

这里只是我的一个想法,,不一定是相乘.

0
回复
IGBT2010
LV.8
6
2013-07-07 09:22
@无衣
这里只是我的一个想法,,不一定是相乘.
哦,我也不懂,一直想弄明白是怎么回事,但是找不到比较好的实际应用资料!!
0
回复
ruohan
LV.9
7
2021-05-05 13:59

找到合适方法了吗,

你可以用这个反馈系数去不作为调制度参数,去和表里的值相互乘,得到一个新的码表,

0
回复