作品简介:本作品为电流信号检测装置,利用运放跟随器输出电流小的特点,将其接在b类互补对称功率放大器的输入端,再接参数完全相同的两个NPN和PNP三极管,对三极管的功率以及电流值要求较大,同时要在三极管外加上散热装置,三极管基极不接电阻,避免了调试偏执电压。同时保证了输出电压与输入电压相同,接入负载以后,可以保证电流值大于1A且为输入电压的0.1倍。用大横截面积大内径较大的锰环上饶直径较为细的漆包线,用2根较粗电阻较小的导线穿过线圈,同时让被测导线紧贴线圈,再给线圈进行回绕,消除垂直磁场的影响,产生了较好的波形。本题难度是在于保持怎样的采样率对信号进行采集,以及在傅里叶变换后找出每个谐波的位置以及幅度。本题最大频率为1Khz,根据采样定理,采样率至少是被测量信号的两倍。192Khz的采样率保证了采集的精度。电流分析电路使用10.15欧姆的电阻采样,ADC以192K的采样率进行采集后进行1024点快速傅里叶变换后算出各个谐波的幅值。电流信号的频率使用等精度测量法对电流信号进行测频。
比赛心得
四天三夜的TI杯已经结束一个多月了,但这并不代表这场比赛已经结束了,这四天三夜的经历必将会伴随着我们的一生。下面是我们小队对这次比赛的一点小小的感悟,与君共勉:
1、人生路上如果没有拼搏就像战场上没有硝烟一样淡泊,无意义。赛场如战场,赛场上的攻坚克难正如战场上的冲锋陷阵,所以无论何时我们都要有一往无前的决心,绝不向困难低头!
2、团队协作,这是比赛必不可少的因素同时也是比赛的考核内容,一定要将任务精准的分配到每个人,保证效率至上。同时,比赛期间大家都很累,不要因为对问题的争执而赌气,要做到我们VS问题,而不是我VS你or他。
3、尽量保证一下休息,在比赛期间大家都很拼,但我觉得还是有必要休息一下,尤其是在晚上两点到五点的时候,如果是三个人的小队的话,可以让一到两个人在两点到五点休息,剩下的人在五点到八点休息,这样既保证了工作的连续性,有不至于因为太困而犯一些不该犯的错误!
以上仅个人见解,有什么不对的地方还望各位能够批评指正。
2018ti杯电子竞赛报告.rar
(546.05 KB, 下载次数: 265)
摘要
本文是设计一款采用非接触式传感的电流信号检测装置。可以对任意波形电流信号进行峰值和频率进行测量。具有精度高,可对微小信号测量的特点。
关键字: 电流测量 非接触式传感 高精度
1.1系统框图
本系统的放大电路部分的系统框图如下图所示:
系统流程图(一)
1.2系统方案的论证与选择
1.2.1功率放大器
本系统的放大电路部分的系统框图如下图所示:
功率放大电路框图(图二)
(1)系统方案的论证与选择
B类互补对称功率放大器(图三)
方案一:直接搭建一个 b类互补对称功率放大器,通过电阻来改变偏执电压和消除晶体管的交越失真,在实验的过程中,发现流过功率放大器的电流值过高,三极管发热较严重,而且在调整偏执电压时存在误差,产生的波形不是很理想。
方案二:采用 TDA2030a 音频放大芯片搭建功率放大电路,理论值可以产生18w的功率放大效果,但在实际测试中,接入 10欧姆负载后,,输入频率 1khz峰峰值 10v交流正弦信号,只有当电源电压达到 15v以上时,才能在负载两端产生峰峰值 11v左右的不失真电压,如果电源电压低于 15v,产生电压信号会被限幅,如果增大输入电压,始终只能得到最大峰峰值为 11v左右的信号,所以放弃这种方案。
功率放大器(图四)
方案三:本方案为最后采用的方案,利用运放跟随器输出电流小的特点,将其接在 b 类互补对称功率放大器的输入端,再接参数完全相同的两个 NPN 和 PNP 三极管,对三极管的功率以及电流值要求较大,同时要在三极管外加上散热装置,三极管基极不接电阻,避免了调试偏执电压。同时保证了输出电压与输入电压相同,接入负载以后,可以保证电流值大于 1A 且为输入电压的 0.1 倍。
1.2.2 非接触式互感器
(1)系统方案的论证与选择
方案一:在小内径小锰环外缠绕漆包线,线圈的横截面积过小,穿过线圈的导线横截面积小,电阻大,且没有和线圈紧密贴合,穿过线圈中心位置,在实际测量中产生波形失真较严重。
方案二:用大横截面积大内径较大的锰环上饶直径较为细的漆包线,用 2 根较粗电阻较小的导线穿过线圈,同时让被测导线紧贴线圈,再给线圈进行回绕,消除垂直磁场的影响,产生了较好的波形。
1.2.3 电压放大电路
(1)系统方案的论证与选择
程控仪表放大器(图五)
方案一:在通过传感器采样后的信号峰峰值产生了较大衰减,在输入小信号时单片机对于信号难以取样,我们首选想到的是用 AD620A 搭建程控仪表放大器,但是在电路焊接好测试时,开始可以正常对信号进行放大缩小,但后来电路出现问题时信号产生了非线性失真,所以放弃此方案。
方案二:直接采用运放构成比例放大器,考虑到输入信号的频率较低,对运放的性能要求较低,我们用 OP177 进行放大电路的设计。效果比较理想。
1.2.4 低通滤波器 (1)系统方案论证及选择
滤波器(图七)
方案一:采用一阶无源 RC 网络对信号进行滤波。
1.3 总体方案描述
综合以上分析,系统采用跟随器加 B 类互补对称功率放大电路对信号进行功率放大,再连接 10 欧姆的负载,对负载环路电流采用非接触式传感器进行取样,通过电压放大器对采样信号放大,接入低通滤波器滤波,最后通过跟随器接入单片机测量。
系统仿真图(图八)
1.3.1 软件系统流程图如下所示:
1.3.2 系统软件设计分析
本题最大难度是在于保持怎样的采样率对信号进行采集,以及在傅里叶变换后找出每个谐波的位置以及幅度。本题最大频率为 1Khz,根据采样定理,采样率至少是被测量信号的两倍。192Khz 的采样率保证了采集的精度。
1.3.3 测量原理说明
电流分析电路使用 10.15 欧姆的电阻采样,ADC 以 192K 的采样率进行采集后进行 1024 点快速傅里叶变换后算出各个谐波的幅值。电流信号的频率使用等精度测量法对电流信号进行测频。
1.4 测量数据
主程序代码:
<font face="Arial" size="4">#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "stm32_dsp.h"
#include "lcd.h"
#include "adc.h"</font>
<div><font face="Arial" size="4">#include "fft.h"</font></div><div><font size="4"></font><font face="Arial"></font>
</div><div><font face="Arial" size="4">/***********************************************************</font></div><div><font face="Arial" size="4"> ADC采样引脚:PC1</font></div><div><font face="Arial" size="4"> ADC采样率:192Khz</font></div><div><font face="Arial" size="4"> 程序说明:FFT使用的是F1的DSP汇编库,F4有个DSP库比较好用但是</font></div><div><font face="Arial" size="4"> 我F4ADC采集电压有点误差(直接接地有4mV左右的误差)。</font></div><div><font face="Arial" size="4"> 程序写的比较匆忙,很多地方写死了不灵活,还可以精简</font></div><div><font face="Arial" size="4"> 优化一下代码结构。</font></div><div><font face="Arial" size="4">**************************************************************/</font></div><font face="Arial" size="4">u16 Max_A;
u16 Max_i;
extern u16 fq;
extern u8 flag;
int main(void)
{
int i;
int k=0;
delay_init(); //延时初始化
uart_init(115200);
TIM3_Int_Init(10000-1,7200-1); //10Khz计数
TIM2_Cap_Init();
LCD_Init();
TIM1_Int_Init(74,4); //192KHz采样率
ADC1_Configuration(); //ADC初始化
DMA_Configuration(); //DMA初始化
while(1)
{
int H = 250;
int h = 250;
POINT_COLOR=RED; //LCD显示测试参数(红字)
LCD_ShowString(135,0,210,24,24,"F(/Hz) A(mA)");
LCD_ShowString(135,150,210,24,24,"Fourier transform");
LCD_ShowString(135,175,210,24,24,"-----------------");
LCD_ShowString(135,220,210,24,24,"Times A(mA)");
LCD_ShowString(135,750,210,24,24,"Texas instruments");
for(i=0;i<NPT;i++) //1024点FFT
{
lBufInArray=ADC_Value<<16;
}
cr4_fft_1024_stm32(lBufOutArray, lBufInArray, NPT);
GetPowerMag();
//lcd_show_fft(lBufMagArray);
POINT_COLOR=BLUE; //以蓝字显示测试结果
// 找基波
for(i=1;i<NPT;i++)
{
if(Max_A<lBufMagArray)
{
Max_A = lBufMagArray;
Max_i = i;
}
}
//显示基波频率
if(flag)
{
LCD_ShowxNum(135,40,fq,6,24,0);
flag = 0;</font>
<div><font face="Arial" size="4"> }</font></div><div><font face="Arial" size="4">//显示谐波次数</font></div><font face="Arial" size="4"> for(k=0;k<6;k++)
{
LCD_ShowxNum(135,h,k,5,24,0);
h+=35;
}
//显示谐波值
for(i=0;i<6*Max_i;i+=Max_i)
{
LCD_ShowxNum(270,H,lBufMagArray*3120/4096,5,24,0);
printf("F = %d A = %d\r\n",i,lBufMagArray);
H += 35;
}
delay_ms(1000);
//LCD_Clear(WHITE);
}
}
</font>
|