最近带学生要做一个正弦波测试电源的课题,用来作为单相电表的测试电源。电表出厂的时候要校准。比如一个220V/50A的电表,电网的电压不一定是标准220v,可能是200v有时候也可能240v,这都是很正常的。再说电流,如果小功率电器,比如5w的手机充电器,那么电流大概只有0.02A,如果是一台3KW的热水器,电流大概就会有15A。以是电表出厂时要测试各种负载情形下的电压电流就不可能用固定的负载测试。在已知电压电流的情形下检讨电表的读数,这就可以知道电表是否准确了。这时候就要用到互换测试电源了。
刚开始我也很困惑,根据欧姆定律电源不是可以输出电压和电流吗?怎么电压一起,电流一起呢?比如我们测试220V/50A情形下电表精度的时候不可能找一个11KW的电器接在标准的220v电压上让你去测试啊!
而且下感性或容性负载情形下电流电压有相移也是仿照不了的。这样就必须有两路电源让电压和电流分别被电表芯片丈量到形成功率数据。这样便是我们须要做的单相交流测试电源了!

我们正常利用电表时电压从电表的输入端会送到内部变压器进行降压整流滤波后给电表的芯片和液晶供电,其余电表内部也会有一个分压电路把220V的输入电压用电阻分压后送给电表芯片采集电压。单相表的电流采样一样平常会利用锰铜片作为采样电阻,电流流过锰铜片会产生压降,把这个旗子暗记送给电表芯片打算电流。

以是我们要做两路独立的电源,一起加在电表的进线端,另一起加在电表中锰铜片两端。这样没有负载,电表也可以显示电压、电流和功率数据。听到这里估计很多人都已经明白了。
来我们看一下下图单相电表的正常利用中的接法和用单相交流测试电源的接法示意图。
我们的互换测试源哀求电压、电流两路隔离输出。而且电压输出是恒压,电流输出作为恒流输出。
互换测试源哀求:
电压源功率20W,电流源功率20W,电压电流相互独立采取C型卧式变压器隔离;输出失落真度由于0.1%;频率45.00-65.00HZ,最小步进0.01HZ,精度0.01HZ;电压输出0-220V可调,最小步进0.1%,精度0.1%;电流输出分为0-50A档,最小步进0.1%,精度0.1%;电流相对付电压的相位0-360°可调,最小步进0.01°,精度0.05°。
我们给出的方案便是用单片机产生两路频率、相位、幅值可调的正弦波旗子暗记。将正弦波旗子暗记分别送给两个功放模块然后经由变压器升压或升流。变压器有内阻,以是升压升流后的电压电流会随负载的增大而减小。此时通过电压、电流互感器采样后反馈给功放模块的前级运放做负反馈,调节负反馈的深度从而达到负载变革输出端稳定的状态。
问题的关键就在于这个旗子暗记发生器,如何用单片机产生两路频率、相位、幅值都可调的正弦波呢?首先我们想到了STM32F103RCT6单片机,它有串口、IIC接口、1路12位的DAC(2通道),并且有72M高频运行速率。这样太得当不过了。
正题:
以下部分我们紧张研究STM32的旗子暗记发生器,旗子暗记发生器做好了这个项目基本就没什么问题了。首先我们剖析STM32单片机12位的DAC数据是0-4095,对付0.1%的幅值步进是绝对没有问题的。72M主频,开一个360K的定时器中断来输出波形数据也是绝对没有问题的。比如要输出50HZ正弦波,360K/50=7200,便是说每个周期细分7200个数据,那么这样的正弦波的失落真度绝对也是可以达到哀求的。那么我们就利用FPGA课程里面学习的DDS事理,做出频率可调相位可调的波形。
接下来我们先写个固定频率的程序,输出几个不同频率的正弦波看下情形。
45HZ固定频率、100%幅值的正弦波:
50HZ固定频率、100%幅值的正弦波:
65HZ固定频率、100%幅值的正弦波:
50HZ固定频率、1%幅值的正弦波:
50HZ固定频率、10%幅值的正弦波:
50HZ固定频率、30%幅值的正弦波:
50HZ固定频率、50%幅值的正弦波:
50HZ固定频率、80%幅值的正弦波:
双通道50HZ、100%幅值、0°相位:
双通道50HZ、100%幅值、180°相位:
双通道50HZ、电压100%幅值、电流1%、0°相位:
双通道50HZ、电压100%幅值、电流10%、0°相位:
双通道50HZ、电压100%幅值、电流50%、0°相位:
双通道50HZ、电压100%幅值、电流100%、120°相位:
接下来便是如何调频了,这个缺陷麻烦,不太随意马虎理解。这里我先卖个关子,我们先连续进行实验。实验创造这个基于单片机事理的DDS旗子暗记发生器性能还是不错的,频率做到10K波形依然挺稳定。那么我们做这个旗子暗记发生器就不仅限于这个互换测试源了啊。愉快!
我们先把这个旗子暗记源优化一下,调度好性能参数后,往后可能其他课题项目也会用到的。那么我们重新调度一下旗子暗记发生器的参数,经测试在没有滤波的情形下2K以下的波形都是非常俊秀的。考虑到后期加滤波情形,我们将频率限定在20KHZ。考虑到多用场情形又增加了三角波、锯齿波、方波,随后看看能不能把自定义波形加里面及任意波,这个难度彷佛有点大,还在思考之中!
彷佛在一定程度上(低频情形)可以替代AD9850、AD9833、AD9834这种专业级的DDS芯片的。当然20KHZ以上的波形产生我们这个方案是肯定弗成的。但是能替代一部分需求也是不错的,想想就来劲,开干!
终极给出新的参数:
·频率0-20KHZ,步进0.01HZ,两路波形许可输出不同频率波形;
·相位0-360°可调,最小步进0.01°,相位调节只在两路波形频率相同时生效;
·幅值0-100%可调,最小步进0.1%;
·正弦波、方波、三角波、锯齿波,四种波形可选;
·IIC、串口通信,每个芯片可以设置不同地址,以便输出多路正弦波利用。
那么我们来拟定一个通信协议吧,串口通信大略,先做串口部分吧。看下图:
/数据举例/
//地址清零
FA AF FE
//设置有返回数据
FA 00 A1 01 FE
//软复位
FA 00 A2 FE
//设置模块地址为0
FA 00 A3 00 FE
//设置通道1输出1234.56HZ,幅值1000,正弦波
FA 00 A4 01 00 12 34 56 FE
FA 00 A5 01 10 00 FE
FA 00 A7 01 01 FE
//设置通道2输出1234.56HZ,幅值1000,正弦波
FA 00 A4 02 00 12 34 56 FE
FA 00 A5 02 10 00 FE
FA 00 A7 02 01 FE
//设置通道2输出相位180°
FA 00 A6 02 01 80 00 FE
由于我不会做上位机,以是只能用串口调试助手测试,用起来还是比较麻烦的。以是希望会做上位机的网友给做一个大略的上位机吧,感激了!
我给出一个示意图:
我先把HEX文件附上去,等IIC、自定义波形程序、上位机弄好再把源代码附上来!






