社区
Datasheet
标题
返回顶部
光伏逆变技术大赛

从程序方面谈谈本人对逆变器的理解

[复制链接]
查看: 2464 |回复: 107
1
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-3-30 14:48:14
从程序方面谈谈本人对逆变器的理解

        两周前就看到了21世纪电源网举办的这个活动。最近在做一个东西,和逆变有点关系。就一直在看这个活动的帖子。问了很多问题,也从中也学到了很多。感谢参与者的分享和回答!我工作时间不长,算是刚接触到这个领域。就谈谈我个人从程序方面对逆变的理解。欢迎各位大神斧正!

图1:逆变全桥拓扑

图1:逆变全桥拓扑
   

图2:面积等效原理

图2:面积等效原理

图3:SPWM波形

图3:SPWM波形

        对于全桥逆变拓扑的逆变器,SPWM是实现逆变的主要方式。把直流电转换成正弦波交流电是根据根据面积等效原理,在上面第二张图的上半部分中的正弦半波(黑线)分成6等份,把正弦半波看成是由6个彼此相连的矩形脉冲组成的波形,6个脉冲的幅值按正弦规律变化,每个脉冲面积与相对应的正弦波部分面积相同,这一连续脉冲就等效正弦波。 如果把上述等宽不等幅的脉冲序列改为相同数量的等幅而不等宽的矩形脉冲,脉冲中心位置不变,并且使该矩形脉冲面积和上图对应的矩形脉冲相同,如第二张图的下半部分,脉冲宽度按正弦波规律变化,这就是PWM波形。根据面积等效原理,PWM波形和正弦半波是等效的。 对于正弦波的负半周,也可以用同样的方法得到PWM 波形。这就是SPWM波形。要改变等效输出的正弦波的幅值时,只需按照同一比例系数改变上述各脉冲的宽度即可。上面第3幅图就是SPWM。一般在控制芯片如28335中产生SPWM波都是用调制法。在调制法中,把所希望输出的波形称为调制波ur,把接受调制的信号称为载波uc,通常采用等腰三角波作为载波,正弦波作为调制信号。如上面第3幅图,在两波交点时对电路中的开关器件进行通断控制,就可得到宽度正比于调制信号幅值的脉冲。SPWM逆变器输出电压与ur/uc成正比,保持载波uc不变,改变调制波ur的大小即可控制输出交流电压的大小。当然,调制波ur峰值要小于载波uc峰值。需要注意的是,SPWM逆变器输出的正弦波交流电电压uof的峰值uofm小于输入的直流电压ud,把uofm/ud称为直流电压利用率,对于单相SPWM电路直流电压利用率的理论值最大为1,实际上由于种种原因,直流电压利用率要小于1。对于输出相电压(有效值)为220V单相交流电的逆变电路输入直流电压要高于310V。当然很多逆变器的规格都是输入直流电压48V。逆变器的输出接变压器,升压到220V。


killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-6 19:42:10
 
        程序方面实现SPWM信号的输出。一种是事先计算好,并转化成实际的定时器的计数值,存入控制器中。运行时直接调用。该方法不需要运算,可以节省很多控制器的资源。但是这样的话逆变的幅值就不可以调节。如果输入逆变器的直流电压是可以调节的话,那么通过调节直流电压的大小来调节逆变器输出的电压值,这种方案好像也可以。但是我还没有见过。
       另一种方法就是程序中直接运算出SPWM的控制点。这就需要了解SPWM波的生成方法:
       SPWM波的生成方法有自然采样、对称规则采样、不对称规则采样和平均对称规则采样,如下面第一张图。对称规则采样中生成的PWM脉宽较实际的正弦波于三角波自然橡胶的脉宽偏小,使变频电源的输出电压较低;而在不规则采样中,虽能更真实的反映自然采样,但会增加程序编写的复杂度和程序的运算量。所以,在实际应用中采用的平均对称规则采样。采样时刻设在三角波的谷底,以此时刻的正弦波数值为中心,确定PWM脉冲的前后沿。SPWM波信号占空比的计算方法,如下面第二张图。
        如果控制芯片选用的是DSP的话,这点运算根本不在话下。以DSP28335为例,这块芯片的多级流水线使其数字处理能力很强,再加上IQ算法,使其直接运算出SPWM的控制点不会占用其太多的时间。

SPWM生成.png     SPWM计算方法.png

clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-4-7 16:37:28
 
IQ算法是什么,讲讲呗
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-7 16:51:06
 
IQmath 库是一系列高优化和高精度的数学函数集合,移植浮点运算到定点代码中运算,之后再转回浮点。因为运算浮点型数据要比运算定点型数据花费更多的时钟周期,所以可以提高程序的运算速度。谢谢支持!我把逆变这部分的程序写完就说说我对IQ算法一点见解吧!


clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-4-9 15:33:14
 
ok!希望讲讲离网和并网部分的程序
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-10 12:16:05
 
我努力
lizlk
  • 积分:2672
  • |
  • 主题:11
  • |
  • 帖子:776
积分:2672
版主
  • 2017-4-10 10:34:59
 
不错!
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-10 12:16:32
 
O(∩_∩)O谢谢
clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-4-25 17:43:51
 
你需要并网么?

孔雀东南飞
  • 积分:1090
  • |
  • 主题:1
  • |
  • 帖子:287
积分:1090
版主
  • 2017-4-18 11:32:12
 
就在等待讲程序的帖子,收藏了
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-19 08:21:32
 
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-9 15:29:01
 
这种可以做成上位机,每次只需要把自己参数输入进去,然后上位机形成几百个点就可以了。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-11 20:18:13
 
根据前面的内容就可以写基本的SPWM的程序了。
工频逆变,频率是50Hz不变。首先要确定载波的频率,就是三角波的频率。为了便于观察,设定载波的频率为2k。因此,根据载波的频率,配置28335中的定时器中断频率为2k,PWM的周期为0.0005s。注意,在配置PWM时要把死区加上。这样在一个逆变的周期内会进40次定时器的中断,产生40个PWM。接下来就是如何计算每次PWM的占空比。根据2楼可以得出在20ms内,每个PWM的占空比  duty = a * sin(wr * td) 。
其中:
a:调制比
wr:2 * pi * f
pi:3.1415
f:50
下面两张图片是具体的程序:第一张图片是相关变量定义,第二张是定时器中断程序。
逆变程序变量定义.png     逆变程序定时器中断.png

程序运行的结果:下面第一张图是全桥四个管子的PWM,第二张是半桥上下管的PWM,第三张是上下管PWM的死区。
11.jpg 22.jpg 33.jpg

这部分代码中,调制比 a 在程序运行中是不变的,所以这只是一个简单的开环能实现逆变的功能的程序。若要实现闭环就要对 a 加入PI调节,就可以实现希望输出的交流电压值。还有一点载波的频率这里设置为2k只是为了上面第一张图看的比较清楚些。实际中不可能用这么低的载波频率。


清风慕竹
  • 积分:464
  • |
  • 主题:6
  • |
  • 帖子:79
积分:464
LV6
高级工程师
  • 2017-4-16 11:43:15
 
支持,昨天还在思考直流母线电压和交流逆变电压是啥关系呢
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-9 15:39:46
 
直流母线电压乘以调制比 就是你的交流电压的最大值,不是有效值。
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-19 10:19:00
 
你好。请问在程序中单极性和双极性调制时怎么体现出来的,是通过设置三角载波来体现的吗,应该是怎么设置的。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-19 20:29:06
 
这种单极性很简单,主要是if和一个控制,就是下图这几条代码:
QQ截图20170519202632.png
if判断是正弦的上半波还是下半波,控制另一组半桥输出高低点平。
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-22 14:46:11
 
我不太明白诶..就是三角波在调制波正半周期是正的,负半周期是负的得怎么体现出来。 你这里边的PWM_period 是指什么呢,是指TBPRD吗。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-22 19:16:44
 
三角波在调制波正半周期是正的,负半周期是负的。正负不是输出了负的三角波,而是全桥不同的斜对管开关实现的。
PWM_period  是PWM的周期寄存器的值。这样可以直接用一个占空比乘以这个值,再付给PWM寄存器。比较方便,而且用占空比看也比较直观。
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-22 21:08:46
 
我还是没能理解...控制开关管这个弄明白了,但是配置CMPA这块还是没懂..
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-23 08:17:06
  • 倒数10
 
这是就是EPWM外设的配置了。如果你想发一个PWM,那第一点你要知道周期也就是PWM的频率,这个要配置EPwm2Regs.TBPRD = PWM_PERIOD1;PWM_PERIOD1是用宏定义定义的周期寄存器TBPRD 的值。第二点要让PWM的占空比可调,那么就要在你程序中配置EPwm2Regs.CMPA.half.CMPA=Duty*PWM_PERIOD1;其中Duty是占空比,PWM_PERIOD1是周期值,他两相乘得出的就是计数比较寄存器中的计数值。把它付给计数比较寄存器,就能发出对应占空比的PWM了
海之音
  • 积分:173
  • |
  • 主题:0
  • |
  • 帖子:5
积分:173
LV2
本网技师
  • 2017-5-22 23:31:07
 
楼主,请问你中断时间多长时间,实际可有测试?
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-23 08:19:53
  • 倒数9
 
上面的程序是2K的中断,实际中用的是20K中断,没问题的,28335的运算蛮快的。
如果你觉得把程序烧到flash中后运行很慢的话,你可以把程序考到ram中运行,就快很多了。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-19 23:01:45
 
本人对PID程序的一点见解

PID的数学形式:

图1:

图1:

将其离散化后,得到

图2:

图2:

写出u(k)u(k-1)

图3

图3

用u(k)减去u(k-1),就可以得到位置式的PID形式

图4

图4

增量式的PID,是将位置式的PID做个移项

图5

图5

将位置式PID中的kd0,就得到了位置式的PI

图6

图6

再将其转化为程序:
PID变量定义部分

图6

图6

PID控制部分
PID程序控制.png

结合之前SPWM程序,将PID程序加入后,形成闭环控制点SPWM
SPWM_PID.png




孔雀东南飞
  • 积分:1090
  • |
  • 主题:1
  • |
  • 帖子:287
积分:1090
版主
  • 2017-4-20 08:34:04
 
大赞楼主
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-21 08:06:42
 
谢谢!
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-18 15:58:47
 
这个pi_str怎么指向那么多个值呃 ,这里不太懂
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-18 17:14:54
 
pi_str只是指向了一个结构体,而这个结构体里有很多变量,所以就把把这些变量都带上了。
pi_str->Kp在上面代码里的意思就是PI_Struct_RMS这个结构体里的Kp
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-19 13:59:15
 
大概明白了,谢谢
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-19 20:31:00
 
magicxxl
  • 积分:167
  • |
  • 主题:3
  • |
  • 帖子:15
积分:167
LV2
本网技师
  • 2017-4-22 19:48:52
 
版主,能不能告诉我,你程序里面的T和Ti是什么,怎么确定的?谢谢
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-23 07:06:33
 
T是采样周期,而且这个采样周期要和载波的周期(pwm的周期)一致。
Ti是PID参数Ki的一部分,在13层第一张图片中PID的数学公式中。Ti的确定要在实际中多去调试。
先调比例Kp,将Ti给一个很大的树,这样,这一项的影响就会很小。比例系数Kp一点点往上加,直到系统出现震荡,将这个值的80%付给比例系数Kp。然后再调积分项,将Ti从一个很大的数慢慢减小,直到出现震荡,将这个值的120%赋给Ti。
参数调节,每个人有每个人习惯的方法,调多了就有自己习惯的方法了。
还有一点,我不是版主
孔雀东南飞
  • 积分:1090
  • |
  • 主题:1
  • |
  • 帖子:287
积分:1090
版主
  • 2017-4-23 07:35:52
 
原来只是知道80%,这个120%还真是第一次看到,长知识。楼主加油
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-23 07:46:57
 
整定的对象不一样,如果是整定的Ki,那就应该是从0一点一点往上加,直到出现震荡,取80%给Ki。
steven0818
  • 积分:245
  • |
  • 主题:2
  • |
  • 帖子:19
积分:245
LV3
助理工程师
  • 2017-4-24 21:11:29
 
楼主,磁感量跌落曲线的拟合你是利用查表还是用公式计算的??
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-25 08:13:54
 
抱歉!我不明白你说的"磁感量跌落曲线"指的是什么?可否解释下?
steven0818
  • 积分:245
  • |
  • 主题:2
  • |
  • 帖子:19
积分:245
LV3
助理工程师
  • 2017-4-25 18:21:33
 
抱歉,没表达清楚,即电感磁导率百分比率与DC磁化力关系曲线。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-26 08:53:53
 
这个很抱歉,你指的是逆变输出的滤波电感吗?我上面只是提了如何拟合SPWM.
steven0818
  • 积分:245
  • |
  • 主题:2
  • |
  • 帖子:19
积分:245
LV3
助理工程师
  • 2017-4-26 15:09:01
 
是的,逆变输出的滤波电感。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-28 13:13:50
 
关于电感,不知道这个文档是否能帮到你!
SPWM逆变电源LC滤波器的研究与设计_张立广.rar (144.23 KB, 下载次数: 122)
steven0818
  • 积分:245
  • |
  • 主题:2
  • |
  • 帖子:19
积分:245
LV3
助理工程师
  • 2017-4-25 18:22:38
 
楼主,有时间讲讲逆变器的数字锁相环呗。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-26 09:08:16
 
好的,其实我的个人观点是,锁相环就是一个过零比较电路。而要实现锁相环的功能我认为的方法:
第一个:硬件上做过零比较电路,DSP开捕获外设,检测过零点。
第二个:DSP本身是要采集交流电压的信号,其实可以通过采到这些交流点算出过零点。
第一个可能出现的问题是,如果采到的交流信号没有经过滤波,后端直接加了一个单限的过零比较电路,在过零点这里很可能会发生震荡。
第二个可能的问题是,过零点的精度和你采样的频率相关。如果频率的计算也是这种方法的话,频率的精度也和采样频率相关。
steven0818
  • 积分:245
  • |
  • 主题:2
  • |
  • 帖子:19
积分:245
LV3
助理工程师
  • 2017-4-26 15:10:24
 
能否加一下QQ,像你请教一下问题?我的QQ:2021605017
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-26 16:43:45
 
相互学习
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-9 15:35:42
 
检测为啥用过零比较器呢 ,,麻烦  比较器前面加个两个二极管反接   就好了 、
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-12 21:41:57
 
这种方法我也见过,但是我还是比较喜欢双电源运放的过零比较,最好是双电源的滞回比较器。因为运放在单电源使用时不能真正的输出零伏,而双电源就不会这样。
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-19 14:58:56
 
如果是手动并网的话要怎么确定这个过零点,然后去合闸。
因为一个电网周期就20ms,怎么确定这个时刻呢。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-19 20:41:28
 
你这是指电站的并网吧,我记得好像是有个仪表的显示相角差,然后手动合闸。这得是经验丰富的老师傅干的。
如果你想自己搞着玩的话,那你可以用两个表,一个显示电网电压相角,一个显示你逆变器的交流相角。然后观察到差接近零时合闸。
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-21 22:38:03
 
我说的是逆变器并网额。。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-22 08:21:44
 
我个人的想法:并网继电器的闭合由外部按键控制。程序中依然检测电网电压过零点,并发对应SPWM波。显示屏显示出电网电压相角和SPWM波的相角,观察两者的差值,然后按下按键并网。
抱歉!我还是第一次见到这种方式并网。
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-22 09:35:07
 
你的逆变器并网是怎么并的,能具体点告诉我吗,谢谢啦
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-22 19:12:00
 
不是手动并网。1、硬件锁相,上升沿触发程序中捕获中断; 2、程序控制SPWM从相角0度开始发;3、连续检测10个下降沿,判断下降沿时SPWM的相角是否为180度。4、在第11个上升沿捕获中断中闭合继电器,以小电流并网;5、缓起,提高电流达到参考并网电流。这是我自己想的。
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-9 15:33:18
 
我每次都是试出来的,,,不会计算啊,,,我的函数写好了  就那个参数,,慢慢换呗
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-10 08:32:08
 
PI参数的整定,按照那个口诀来慢慢调就好了。只是有时候一个东西做下来,要整定好几次。因为调试到不同阶段,系统运行的条件不一样。
不过我也见过有人算出来的参数,很准,和我整定出来的差不多。我还不清楚他是怎么算的
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-10 09:20:50
 
什么口诀呢,,可以共享下嘛
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-10 10:38:27
 
参数整定找最佳,从小到大顺序查先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低4比1
一看二调多分析,调节质量不会低



clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-4-25 17:28:58
 
感觉你和我走过的路差不多,也是从把载波频率调小,验证SPWM开始的.....
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-26 08:45:14
 
clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-4-25 17:43:02
 
我C语言不是太好,想请教一下,实际使用PI_Control(PI_Struct *pi_str)这个函数,里面参数是多少?  没看到指向PI_Struct_RMS的指针啊
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-26 08:44:52
 
PI_Control(PI_Struct *pi_str)这个函数的参数是由传进去的结构体里的变量决定的,也就是PI_Struct_RMS结构体里的变量。
PI_Struct_RMS.calc(&PI_Struct_RMS);就是把PI_Struct_RMS这个结构体调给calc这个函数,
而这个函数是在#define PI_Struct_RMS_DEFAULTS {0, 0, 0.1, 0.0005, 0.00005,  (void (*)(Uint32))PI_Control, 0, 0}这条语句中被赋予了PI_Control(PI_Struct *pi_str)这个函数。
TP416775364
  • 积分:19
  • |
  • 主题:0
  • |
  • 帖子:3
积分:19
LV1
本网技工
  • 2017-4-26 10:27:15
 
RMS_V_adc应该是均方根值吧,感觉又像瞬时值,楼主这代表的是什么值?

killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-26 11:57:08
 
这个确实是均方根值,只不过这个值在以载波的频率在刷新。所以可以当做瞬时值来用。
TP416775364
  • 积分:19
  • |
  • 主题:0
  • |
  • 帖子:3
积分:19
LV1
本网技工
  • 2017-4-26 14:33:44
 
载波2K的,你的RMS值刷新也要20ms才可以吧。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-28 13:10:05
 
不是的,如果载波频率不是太高的话可以做到以采样频率刷新。如果载波频率很高的话,把求均方根的函数不要放到中断里,放到主循环里就可以了。刷新频率也不会比载波慢很多。如果计算有效值的周期是20ms的话,那计算方法要改改了。
lizlk
  • 积分:2672
  • |
  • 主题:11
  • |
  • 帖子:776
积分:2672
版主
  • 2017-4-29 14:07:33
 
干的漂亮啊。
xl903277
  • 积分:5
  • |
  • 主题:0
  • |
  • 帖子:1
积分:5
LV1
本网技工
  • 2017-5-6 19:02:03
 
楼主你好,能不能解释一下 u_k  u_k1  e_k   e_k1是什么意思呢?还有pi_syr->e_k1=pi_syr->e_k   pi_syr->u_k1=pi_syr->u_k   是什么意思呢?
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-8 08:26:51
 
u_k  u_k1  e_k   e_k1是什么意思呢?还有pi_syr->e_k1=pi_syr->e_k   pi_syr->u_k1=pi_syr->u_k


e_k:是本次的误差,即参考值减去本次采样得到的值;   
e_k1:是上一次的误差;
u_k:是本次位置式PI运算输出的结果;
u_k1:是上次位置式PI运算输出的结果,其实这里可以不需要u_k1,保留它是因为这个位置式的PI可以很容易的转化为增量式的PI,直接用u_k - u_k1,就是增量式PI;


pi_str->e_k1=pi_str->e_k:是把本次的误差e_k赋值给e_k1,保留到下次PI运算,因为PI运算输入需要两次的误差,即本次的和上次的误差;
pi_str->u_k1=pi_str->u_k :是把本次的PI运算结果u_k赋值给u_k1,对于位置式的PI并没有用到u_k1,只是作为保留项。


pi_str->e_k:指的是传入PI_Control函数的结构体里的e_k项,对于上面的程序就是指PI_Struct_RMS.e_k
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-28 13:22:20
 
关于IQmath
在大量浮点和正余弦运算时,使用Q格式可以大大加快定点DSP运算速度。因为DSP28335本身就是浮点型的DSP,具有FPU。所以IQmath的意义并不大。但是对于定点的DSP如2812,就可以很好的提高其运算浮点型数据的速度。
进行浮点乘除法计算时,需要利用函数_IQN()把浮点数先转化为长整型,IQmath计算全为整型计算,计算完成后,再利用_IQNtoF()函数将整型转化为浮点数,计算前后的转化过程计算实际为浮点乘法计算,浮点计算量较大时,定点DSP利用IQmath还是能节省很多时间的,虽然Q格式比直接浮点计算多了一些输入输出的数据转换,但是与庞大的算法相比还是可以忽略的。
DSP2812-IQmath应用手册-详细版.doc (4.44 MB, 下载次数: 120)
绍兴大力
  • 积分:1358
  • |
  • 主题:35
  • |
  • 帖子:315
积分:1358
版主
  • 2017-4-28 13:31:50
 
楼主可以啊。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-29 06:26:54
 
惭愧惭愧在各位版主面前耍大刀了
Coming.Lu
  • 积分:37257
  • |
  • 主题:35
  • |
  • 帖子:12899
积分:37257
版主
  • 2017-4-28 13:36:46
 
一直想搞个逆变器,进来 支持+学习 一下。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-4-29 06:31:08
 
谢谢大卡
clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-4-29 21:07:09
 
兄台帮忙看一下我现在并网的问题吧   http://bbs.21dianyuan.com/thread-288366-1-1.html
clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-5-8 19:52:34
 
期待楼主早日归来更新
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-10 08:32:49
 
抱歉,最近实在有点忙。
caichengchao
  • 积分:1226
  • |
  • 主题:8
  • |
  • 帖子:113
积分:1226
LV6
高级工程师
  • 2017-5-9 08:56:22
 
还没接触逆变器,学习了
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-9 15:46:31
 
版主 你为啥设置成10K,或者20K,讲一下,开关频率和逆变输出的LC中L也有关系呢, 他们之间的关系是什么呢?以及28335中TPBR的赋值,为啥赋值为这个,在PI环的时候最大多少呢,TPBR最大是多少呢,单极倍频中我不理解一加一减这块。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-10 10:42:48
 
我看到的几个逆变用的都是20K的载波。
关于滤波希望这个帖子能帮到你。http://bbs.21dianyuan.com/thread-287121-1-1.html      http://bbs.21dianyuan.com/forum. ... 7909&fromuid=376227     
关于你说的28335中TPBR,我还没有找到这个寄存器,这个是28335哪个外设的寄存器。
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-11 15:44:20
 
EPWM的周期寄存器
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-12 16:51:30
 
EPWM的周期寄存器应该是TBPRD。它的值要和载波的周期一致,就好了。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-11 08:29:01
 
讨论下自己想的逆变器并网的程序控制方法:
1、硬件锁相,上升沿触发程序中捕获中断; 2、程序控制SPWM从相角0度开始发;3、连续检测10个下降沿,判断下降沿时SPWM的相角是否为180度。4、在第11个上升沿捕获中断中闭合继电器,以小电流并网;5、缓起,提高电流达到参考并网电流。

clwclw
  • clwclw
  • 离线
  • LV6
  • 高级工程师
  • 积分:567
  • |
  • 主题:7
  • |
  • 帖子:110
积分:567
LV6
高级工程师
  • 2017-5-11 19:31:38
 
缓启是参考电流一点一点往上加么?这个在程序上应该怎么实现?
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-12 08:48:03
 
对,就是把参考电流一点一点加上去,再加点判断就好了。
333444.png
一刀平五千
  • 积分:84
  • |
  • 主题:0
  • |
  • 帖子:6
积分:84
LV1
本网技工
  • 2017-5-12 10:46:53
 
好帖子,学习~~
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-18 16:26:39
 
这里的u_k和PI 的u_k都是电流误差是吗
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-18 16:48:47
 
u_k:是本次位置式PI运算输出的结果;
u_k1:是上次位置式PI运算输出的结果,


误差 是e_k和e_k1
康雨涵
  • 积分:732
  • |
  • 主题:45
  • |
  • 帖子:89
积分:732
LV6
高级工程师
  • 2017-5-15 18:51:54
 
采样频率为啥要和载波频率一样,求解
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-15 21:02:15
 
因为PI的调节是实时的,而采样得到的值是PI输入的一部分,所以采样频率要和PI运算的频率一致,在我上面的程序里我的PI的调节的频率是和载波频率一致的,所以我的采样频率也要和载波频率一致。我这么弄是因为我有效值的运算频率和载波差不多。如果的你的PI运算频率是50HZ,那么,确切来说,你有效值的更新频率也要是50HZ,采样频率你可以自己定。
康雨涵
  • 积分:732
  • |
  • 主题:45
  • |
  • 帖子:89
积分:732
LV6
高级工程师
  • 2017-5-16 14:10:20
 
能否发个完整程序学习下,谢谢,邮箱809147320@qq.com
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-17 16:44:52
 
我的AD频率是实时采样,我的PI我也不知道时间,只要参数调试出来,能稳压就行啊
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-18 08:12:32
 
问个问题:你不知道你的AD的频率,那你是怎么算有电压电流有效值的呢?
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-18 09:38:51
 
AD的频率是多久一次更新采样结果的数据,但是电压电流的有效值是AD采样的结果,两个好像还是有区别吧,一个是结果,一个是多久一次。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-18 14:34:42
 
你AD采样到的值直接乘个比例就是电压电流有效值?
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-18 15:30:55
 
恩 是的,我整个AD程序只需要乘一次,这样的比例,然后再更改系数就可以了。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-18 16:50:59
 
那你是在硬件采样电路那端做了整流的电路,把交流变成直流,采直流就可以得到交流的有效值。很好的方法,省去了控制芯片的大量运算。
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-18 20:32:56
 
恩  是的。。在这里我AD不用进行大量的运行,有的人需要乘以2个系数,我的想法只需要一个系数完全够了,改天我把我的采集电路发个帖子给你看看。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-19 07:09:40
 
好的,非常感谢!
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-19 09:03:00
 
没事 没事,我当初也不知道,看到别人的,就借鉴过来了。
王晓宁
  • 积分:234
  • |
  • 主题:4
  • |
  • 帖子:64
积分:234
LV3
助理工程师
  • 2017-5-19 09:28:45
 
http://bbs.21dianyuan.com/thread-288962-1-1.html

已发:你看看哪里需要改。
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-18 15:01:30
 
补充一种交流有效值的计算方法:该方法可以,以较高的频率更新有效值。变量定义部分
QQ截图20170518145035.png

定时器中断中的程序
QQ截图20170518145049.png


主循环中的程序
QQ截图20170518145102.png
hanshuang555
  • 积分:41
  • |
  • 主题:0
  • |
  • 帖子:3
积分:41
LV1
本网技工
  • 2017-5-24 10:14:25
  • 倒数8
 
楼主电流控制器如果采用PR控制器,该怎样编程呢,我现在把控制器的传递函数离散化后得到差分方程就是不知道用这个差分方程怎样去编写DSP程序,还有就是软件怎样实现锁相(我做的是电压不平衡和畸变条件下的并网,拟采用二阶广义积分器构成正交信号发生器,然后提取正负序基波进行锁相)。现在都是程序这款遇见了问题不知道该怎样编写,希望楼主能够给一些指导意见,小弟不胜感激
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-5-24 12:37:17
  • 倒数7
 
既然是控制器,那么就有输入量和输出量,有参考值和被控量。个人认为你把差分方程离散话,写成代码是没有问题的。就像上面从pid的数学式子到离散化再到程序代码。对于你说的pr控制器,我之前并没有了解过。如果你可以分享些这方面的资料,我也很想了解下,非常感谢!
你说的锁相环,我前面提到的是硬件做过零比较电路,软件捕获。我不确定是否也这种方式。还是你想通过对采样的数据进行分析,提取出正序然后在算出相角?
y_sue
  • y_sue
  • 离线
  • LV2
  • 本网技师
  • 积分:101
  • |
  • 主题:0
  • |
  • 帖子:23
积分:101
LV2
本网技师
  • 2017-5-27 09:23:33
  • 倒数6
 
楼主,我问个问题,一阶低通滤波器在数字滤波中,RC时间常数和采样周期T的关系,或者说RC时间常数与电网周期的关系应该怎么设置,就是设置这个T/(RC+T)
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
  • 2017-6-2 09:38:23
  • 倒数5
 
抱歉回复晚了,补充了点知识。感谢绍兴大力版主

1.png

2.png

3.png

根据这个推导RC时间常数和采样周期T的关系就很清楚了,或者更确切的说应该是滤波系数和RC  T 之间的关系。



康雨涵
  • 积分:732
  • |
  • 主题:45
  • |
  • 帖子:89
积分:732
LV6
高级工程师
  • 2017-6-7 18:28:31
  • 倒数4
 
请问楼主数字滤波器在那本书有这方面的推导?
woweiwoxin
  • 积分:46
  • |
  • 主题:0
  • |
  • 帖子:8
积分:46
LV1
本网技工
  • 2017-6-14 20:06:07
  • 倒数3
 
学习了!楼主牛!
liguanghui2588
  • 积分:1312
  • |
  • 主题:35
  • |
  • 帖子:194
积分:1312
LV6
高级工程师
  • 2017-6-15 14:15:43
  • 倒数2
 
楼主对用程序控制的逆变有独到的见解,有时间帮忙解答一下http://bbs.21dianyuan.com/forum. ... p;page=1#pid1146287这个最后一贴的问题,
killaws
  • 积分:1764
  • |
  • 主题:10
  • |
  • 帖子:268
积分:1764
LV6
高级工程师
最新回复
  • 2017-6-16 15:09:27
  • 倒数1
 
很荣幸读了您发的帖子。我接触电源这块时间还不是很多,了解的电源拓扑也不多。很抱歉!对于你的电路,我确实没有见过。
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦16层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)28285637 /(13823562357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

中国电源学会

地 址:天津市南开区黄河道大通大厦5层

电 话:(022)27680796

传 真:(022)27687886

E-mail:cpss#cpss.org.cn(#换成@)

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报

Copyright 2008-2017 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348