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

输出正弦波过零处不平滑,有些畸变

我做spwm逆变,定时查表,正负半波分别输出驱动,桥臂死区时间3.3uS,滤波电感1.05mH,电容11uF .无反馈时,输出正弦波过零处不平滑,有些畸变.请指点迷津!!!
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/55/1861951184161092.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">
全部回复(15)
正序查看
倒序查看
shifang
LV.2
2
2007-07-11 21:39
过零处不平滑500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/55/1861951184161153.jpg');}" onmousewheel="return imgzoom(this);">
0
回复
shifang
LV.2
3
2007-07-11 21:56
@shifang
过零处不平滑[图片]500){this.resized=true;this.width=500;this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/55/1861951184161153.jpg');}"onmousewheel="returnimgzoom(this);">
CCP输出波形500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/55/1861951184162175.jpg');}" onmousewheel="return imgzoom(this);">500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/55/1861951184162185.jpg');}" onmousewheel="return imgzoom(this);">
0
回复
hbzjcjw
LV.10
4
2007-07-11 22:18
@shifang
CCP输出波形[图片]500){this.resized=true;this.width=500;this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/55/1861951184162175.jpg');}"onmousewheel="returnimgzoom(this);">[图片]500){this.resized=true;this.width=500;this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/55/1861951184162185.jpg');}"onmousewheel="returnimgzoom(this);">
个人经验:死区大了点
0
回复
zack
LV.5
5
2007-07-11 22:22
从图象上看,好象你的查表程序有点问题.左右边缘不对称.
是定时器中断查表?,还是PWM中断查表?
0
回复
zack
LV.5
6
2007-07-11 22:26
@hbzjcjw
个人经验:死区大了点
3.3uS的死区会大吗?你没发现半波的左右不对称吗?
还有防真的波形有个别是不均匀的.
0
回复
shifang
LV.2
7
2007-07-11 23:07
@zack
从图象上看,好象你的查表程序有点问题.左右边缘不对称.是定时器中断查表?,还是PWM中断查表?
定时器中断查表,以前也用过pwm中断查表,效果好像差不多.我用摄像头拍的,有点失真.
0
回复
shifang
LV.2
8
2007-07-11 23:21
@shifang
定时器中断查表,以前也用过pwm中断查表,效果好像差不多.我用摄像头拍的,有点失真.
用示波器看每6个脉冲的最后一个(即定时器的一个周期,正弦半波分31个定时周期,平均每个周期6个脉冲)宽度抖动.
0
回复
zack
LV.5
9
2007-07-12 00:05
@shifang
用示波器看每6个脉冲的最后一个(即定时器的一个周期,正弦半波分31个定时周期,平均每个周期6个脉冲)宽度抖动.
想必你是半波单极性算法.
10ms/31=0.32258ms,即定时器中断频率为3.1KHZ
而6个脉冲中断一次,可见PWM调制频率为3.1KHZ*6=18.6KHZ
也就是说,你半波取31个点?或者设置的是32个点,而由于中断时序设置的失误导致你一个半波的数据留到下个半波上去了,从而造成你半波的不对称?
0
回复
shifang
LV.2
10
2007-07-12 09:05
@zack
想必你是半波单极性算法.10ms/31=0.32258ms,即定时器中断频率为3.1KHZ而6个脉冲中断一次,可见PWM调制频率为3.1KHZ*6=18.6KHZ也就是说,你半波取31个点?或者设置的是32个点,而由于中断时序设置的失误导致你一个半波的数据留到下个半波上去了,从而造成你半波的不对称?
是这样,取32个值时有0值,31个时去掉0值.看仿真波形,无反馈时,波形是对称的.但是我引入反馈后,您所说的波形滞后就出现了,我对PID的用法不熟悉,我觉得我的AD采样时间可能太长,因为用PWM中断时,引入比例反馈后正弦波频率变低.
0
回复
shifang
LV.2
11
2007-07-12 09:26
@shifang
是这样,取32个值时有0值,31个时去掉0值.看仿真波形,无反馈时,波形是对称的.但是我引入反馈后,您所说的波形滞后就出现了,我对PID的用法不熟悉,我觉得我的AD采样时间可能太长,因为用PWM中断时,引入比例反馈后正弦波频率变低.
使用PWM中断,半波取31个值,每个值6个脉冲.去掉0值.开环波形500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/55/1861951184203583.jpg');}" onmousewheel="return imgzoom(this);">
0
回复
shifang
LV.2
12
2007-07-12 09:27
@shifang
是这样,取32个值时有0值,31个时去掉0值.看仿真波形,无反馈时,波形是对称的.但是我引入反馈后,您所说的波形滞后就出现了,我对PID的用法不熟悉,我觉得我的AD采样时间可能太长,因为用PWM中断时,引入比例反馈后正弦波频率变低.
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/55/1861951184203637.jpg');}" onmousewheel="return imgzoom(this);">

放大的波形
0
回复
shifang
LV.2
13
2007-07-12 09:30
@zack
从图象上看,好象你的查表程序有点问题.左右边缘不对称.是定时器中断查表?,还是PWM中断查表?
请教,加了反馈会不会好些啊?
0
回复
zack
LV.5
14
2007-07-12 09:32
@shifang
是这样,取32个值时有0值,31个时去掉0值.看仿真波形,无反馈时,波形是对称的.但是我引入反馈后,您所说的波形滞后就出现了,我对PID的用法不熟悉,我觉得我的AD采样时间可能太长,因为用PWM中断时,引入比例反馈后正弦波频率变低.
AD采样时间设置多少?采样时间要看你回路中取样限流电阻值和AD频率来计算.太长的时间当然会影响你的正常查表时序.
这一点你可以在你原来的PCB上做个测试.
0
回复
shifang
LV.2
15
2007-07-12 09:32
@shifang
[图片]500){this.resized=true;this.width=500;this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/55/1861951184203637.jpg');}"onmousewheel="returnimgzoom(this);">放大的波形
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/55/1861951184203956.jpg');}" onmousewheel="return imgzoom(this);">
0
回复
shifang
LV.2
16
2007-07-12 22:40
@zack
AD采样时间设置多少?采样时间要看你回路中取样限流电阻值和AD频率来计算.太长的时间当然会影响你的正常查表时序.这一点你可以在你原来的PCB上做个测试.
请问有什么好的方法测试,我用的是16f877a的片子,第一次使用,不太熟悉.使用1/32OSC.
0
回复