打印
[电路/定理]

新人求解,如何得到一个50hz振幅可调的正弦波,非DAC

[复制链接]
楼主: 244141084
手机看帖
扫描二维码
随时随地手机跟帖
21
本帖最后由 zyj9490 于 2019-10-20 11:58 编辑
yuanzhoulu 发表于 2019-10-20 07:53
幅度调节也可以这样,精度不知道。一个PWM产生50Hz正弦波,另一个PWM对50Hz进行幅度控制。

...

在幅度调节输出端口还是要加过滤波器吧?除非是DAC输出,是让MOS管工作欠压可变阻抗状态。

使用特权

评论回复
22
yuanzhoulu| | 2019-10-20 13:15 | 只看该作者
zyj9490 发表于 2019-10-20 11:30
在幅度调节输出端口还是要加过滤波器吧?除非是DAC输出,是让MOS管工作欠压可变阻抗状态。 ...

不是可变电阻,是开关状态,也可以用模拟开关。

使用特权

评论回复
23
zyj9490| | 2019-10-20 14:12 | 只看该作者
yuanzhoulu 发表于 2019-10-20 13:15
不是可变电阻,是开关状态,也可以用模拟开关。

平均幅值可以产生,连续的稳定的有点难。合成的信号数学原理是怎样的?

使用特权

评论回复
24
tianxj01| | 2019-10-20 16:44 | 只看该作者
本帖最后由 tianxj01 于 2019-10-20 16:49 编辑
zyj9490 发表于 2019-10-20 14:12
平均幅值可以产生,连续的稳定的有点难。合成的信号数学原理是怎样的? ...


SPWM经过低通,已经是Vcc 1/2直流+满幅度SIN的脉动直流。
串联合适电阻后,再用高频率的稳定值PWM斩波,则斩波出来的就是一系列的等宽方波序列,其脉冲高度则为原来的复合正弦波脉动直流信号幅度。
当然,由于原来平滑信号被再次斩波,则当然必须再次低通平滑后才能正常使用。
当PWM占空比从0-100%变化,积分后,则该信号幅度为原幅度--0V。从而实现输出调幅。

使用特权

评论回复
25
xch| | 2019-10-20 17:43 | 只看该作者
标题写“非DAC”, 内容写着用“两路DAC”。
不懂

使用特权

评论回复
26
zyj9490| | 2019-10-20 17:55 | 只看该作者
本帖最后由 zyj9490 于 2019-10-20 18:03 编辑
tianxj01 发表于 2019-10-20 16:44
SPWM经过低通,已经是Vcc 1/2直流+满幅度SIN的脉动直流。
串联合适电阻后,再用高频率的稳定值PWM斩波, ...

这二路PWM应有同步的关糸吧,应在SPWM的D上再切一部分下来吧。或者调幅度的那一路PWM开关频率远高于SPWM。同频肯定有个相位的问题。

使用特权

评论回复
27
tianxj01| | 2019-10-20 18:07 | 只看该作者
zyj9490 发表于 2019-10-20 17:55
这二路PWM应有同步的关糸吧,应在SPWM的D上再切一部分下来吧。或者调同幅度的那一路PWM开关频率远高于SPWM ...

SPWM经过积分低通,已经是平滑脉动了,理论上,低通做好,则可以算作完全不含原先SPWM载波成分,如果原sin调制度为100%计算,则就是一个最大值为VCC,最小值为0的带直流的50Hz信号。
所以这第2路斩波信号,是不是和原来SPWM同步理论上没什么关系,当然低成本芯片一般多路PWM,其实本身都是一个时钟,所以同步也是正常,但不是必须。
至于该调制的斩波PWM的占空比D,只和需要获得的幅度有关。
输出=sinx*(1-D)  这里忽略直流信号。

使用特权

评论回复
28
zyj9490| | 2019-10-20 18:22 | 只看该作者
tianxj01 发表于 2019-10-20 18:07
SPWM经过积分低通,已经是平滑脉动了,理论上,低通做好,则可以算作完全不含原先SPWM载波成分,如果原si ...

如果经过第一级RC网络,变成一个直流加一个50HZ的信号,再加一个切,变成了基波50HZ的脉动信号,需再经过滤波处理。如果对SPWM输出的D,再用PWM的D再切,变成D1*D2脉冲波,硬件好处理点,不过程序上复杂点。

使用特权

评论回复
29
captzs| | 2019-10-20 18:24 | 只看该作者
一个信号源红线经运放移相输出与原来信号叠加,改变定位器就调节正弦波幅度。定位器100%,输出黑线,0%,输出绿线。

使用特权

评论回复
30
zyj9490| | 2019-10-20 18:24 | 只看该作者
实际上程序上动手,只要一路SPWM就可以输出可调的正弦信号了。

使用特权

评论回复
31
zyj9490| | 2019-10-20 18:26 | 只看该作者
tianxj01 发表于 2019-10-20 18:07
SPWM经过积分低通,已经是平滑脉动了,理论上,低通做好,则可以算作完全不含原先SPWM载波成分,如果原si ...

实际上硬件第二路信号,跟程序上直接调SPWM的D是一样的。原理上等效。

使用特权

评论回复
32
tianxj01| | 2019-10-20 18:41 | 只看该作者
zyj9490 发表于 2019-10-20 18:26
实际上硬件第二路信号,跟程序上直接调SPWM的D是一样的。原理上等效。

不一样的地方在于,原先一路SPWM,其分辨率精度在高倍频低通后,精度是非常高的,如果只是在SIN表格读取后,再乘以幅度调制系数,实现幅度调制的话,则低幅度SPWM精度将变的很差,可以想象,比如我只需要2单位的sin信号,则实际上SPWM占空比只有2种值,中心值+1bit和中心值-1bit。
这就是反复在讨论的关于精度和失真度的问题。

使用特权

评论回复
33
tianxj01| | 2019-10-20 18:45 | 只看该作者
zyj9490 发表于 2019-10-20 18:26
实际上硬件第二路信号,跟程序上直接调SPWM的D是一样的。原理上等效。

而这样的2次调制方式,再积分后,产生的sin信号,其精度和失真度是和原最大幅度SIN信号成比例关系,而不会因为幅度变小,指标劣化。
关键是其还是可以实现全数控。
本方法最大的缺点是2次调制的PWM,要实现12bit精度和低失真度,需要的斩波就得是3.9KHz,频率比较低,给后面低通带来一定麻烦。

使用特权

评论回复
34
zyj9490| | 2019-10-20 19:34 | 只看该作者
本帖最后由 zyj9490 于 2019-10-20 19:35 编辑
tianxj01 发表于 2019-10-20 18:45
而这样的2次调制方式,再积分后,产生的sin信号,其精度和失真度是和原最大幅度SIN信号成比例关系,而不 ...

实际上量化误差的问题(小幅度信号要求),现在的量化误差出现在第二级,我建议的出现在第一级,而且第二级幅度的糸数是浮点数,精度能保证。实作为准,只是推理而已。

使用特权

评论回复
35
碧云天书| | 2019-10-20 19:35 | 只看该作者
既然MCU有DAC,干嘛不用?留着做种吗?
用1路DAC合成正弦波,再加个数字电位器调节幅度,就完事了。

使用特权

评论回复
36
tianxj01| | 2019-10-21 08:42 | 只看该作者
zyj9490 发表于 2019-10-20 19:34
实际上量化误差的问题(小幅度信号要求),现在的量化误差出现在第二级,我建议的出现在第一级,而且第二 ...

我前面提到一个方法,是采用正弦波移相做加法来解决幅度调制的精度问题。
考虑到楼主需要12位精度,而真采用12位分辨率相位则载波又过低,只有3.39KHz,所以提出了一个空间换速度的方法:
一个就8位幅度分辨率的256元素的sin表格,直接产生62.5KHz的SPWM,2级100Hz低通,可以获得极高精度和极低失真度的50Hz信号。
另一个是幅度分辨率还是8位,但是相位分辨率为12位,即SIN表格由4096单元组成,然后和第一路SPWM同步,相位差就是SIN表格的起始读取指针差,而12位sin表格读取的顺序是按指针,间隔16单元读取,一个周期数据也是256个,SPWM载波频率同样是62.5KHz,二级低通实现同样的精度,而2个SPWM的相位差呢,却可以有12bit的分辨率,因此,可以妥妥的或者12bit精度的幅度输出,同样的该方法对低幅度输出信号的精度和失真可以和原满幅度SIN信号相同,由于,上面几种不管哪种方式,最后输出至少一个运放缓冲,而这个方案只是需要一个运放来做加法器,输出已经是低阻抗了。

使用特权

评论回复
37
yuanzhoulu| | 2019-10-21 08:43 | 只看该作者
也可以弄个衰减器,高幅度时直接输出,低幅度时经衰减器输出,这样SPWM就可以一直工作于高幅度上,低幅度时精度差的问题也就解决了,但是多了个档位切换时的衔接问题。

使用特权

评论回复
38
zyj9490| | 2019-10-21 09:23 | 只看该作者
本帖最后由 zyj9490 于 2019-10-21 09:29 编辑
tianxj01 发表于 2019-10-21 08:42
我前面提到一个方法,是采用正弦波移相做加法来解决幅度调制的精度问题。
考虑到楼主需要12位精度,而真 ...

其实表只取四分之一的数据就可,全靠程序运作。分成四个区间输出,节省ROM.相位分辨率可提高。全幅度的SPWM的精度是没问题的。关键是怎么调幅,模拟的乖法器可保证(除了NOISE以外)。还是按PWM的数字式的还存在一个数字量化误差的问题。

使用特权

评论回复
39
zyj9490| | 2019-10-21 09:26 | 只看该作者
yuanzhoulu 发表于 2019-10-21 08:43
也可以弄个衰减器,高幅度时直接输出,低幅度时经衰减器输出,这样SPWM就可以一直工作于高幅度上,低幅度[e ...

数字电位器多少低时,是极限,还在精度内,还是个问题(还是个量化误差),唯有模拟的反馈的(乖法器)才得到高精度的信号。

使用特权

评论回复
40
yuanzhoulu| | 2019-10-21 09:53 | 只看该作者
zyj9490 发表于 2019-10-21 09:26
数字电位器多少低时,是极限,还在精度内,还是个问题(还是个量化误差),唯有模拟的反馈的(乖法器)才 ...

我说的是换挡方式,衰减器是固定衰减量,例如100倍。不是数字电位器

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则