news 2026/4/23 17:25:10

通过并联电阻改变接收线圈的增益

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通过并联电阻改变接收线圈的增益

利用电位器调整正交线圈增益

  • 增加0.1nF电筒改进测量效果
  • 测量逐飞制作的正交工字型电感
  • 调试逐飞双通道导航模块

01衡两个线圈增益


一、线圈增益

前几天测试了正交工字型电感在电磁导航中的特性。 由于器件参数的误差, 往往会使得实际测量两路信号幅度不同。 不同的信号增益, 将会影响测量角度的数值。 下面,对于两路LC回路, 通过并联电阻来调整它们各自的增益, 最终使得两个LC谐振回路输出的信号幅度达到平衡。 只使用一个 200k欧姆的电位器便可以进行调整, 这在实际模块制作和调试中也非常方便。 下面通过实验测试一下这种调整方式的效果。

二、实验数据

使用双通道信号采集板测量传感器的信号强度。 信号放大倍数是固定的。 使用QR10 可编程电阻箱测量不同的并联电阻对于采集信号的影响。 下面记录并联电阻从 1kΩ 变化到 1MΩ过程中测量所得到的信号幅值。

测量结果应该是一个随着并联电阻增加, 数据单调上升的过程, 但实际上中间出现了跳跃和反复。 测量 200k欧姆范围内, 依然出现了一个跳跃。 测量 100k欧姆范围内, 依然如此。 这个跳跃发生在 83k欧姆的地方。 重新采集依然如此。 这里猜测应该是 QR10出现的问题。 具体什么问题, 待会儿通过万用表测量矫正一下。

▲ 图1.2.1 测量从 1k欧姆到1M欧姆对应的测量数值

▲ 图1.2.2 测量从 1k欧姆到200k欧姆对应的测量数值

使用数字万用表测量 QR10的电阻, 可以看到实际电阻与设置的电阻之间是相同的, 这说明QR10没有问题。 重新测量它并联在传感器上, 仍然出现上面的跳跃部分。 对此只能解释,这是因为QR10内部的线路, 引入了除电阻之外的电抗部分, 因此改变了 LC 谐振回路的谐振频率, 从而影响到实际的信号幅度。

▲ 图1.2.3 测量QR10电阻与测量的电阻

三、增加电阻

利用舵机带动传感器旋转, 测量两路信号的幅度。 现在在两个 LC 回路并联一个 100k 欧姆的可变电阻。 可变电阻现在滑动端处在中间, 两个 LC 回路并联大约 50k欧姆左右。


第一次测量, 可以看到两路信号幅度不太相同。 第一路的幅度比其第二路大了 20% 左右。 两路增益不同, 不影响角度在0点的数值。 但是对于大角度会产生比较大的影响。 在角度为 45°时, 调整电位器, 使得两路线圈数值达到一致。 看来这一次调整的有点过了。 再反向调整一下, 现在还没有平衡。 再调整一次, 这次看来又不够了。 最后再调整一次, 现在两路信号的幅值基本平衡了。 可以看到计算出来的角度在 180度范围内基本上是线性关系。

结 ※


文测试了利用一个电位器来调整正交电感增益平衡。 建议使用一个200k欧姆的电位器, 并联在两个线圈信号输出端口以及 2.5V的公共端口。 对于 LC 并联电阻如果减小, 进而减小该 LC 回路的增益。 所以依靠电位器左右调整, 可以最终使得两路 LC 接收回路的增益达到一致。 使得测量出来的角度在整个范围内都是线性关系。

#!/usr/local/bin/python# -*- coding: gbk -*-#============================================================# TEST3.PY -- by Dr. ZhuoQing 2026-01-14## Note:#============================================================fromheadmimport*fromtsmodule.tsvisaimport*fromtsmodule.tsstm32import*importserialfrom_astimportOrfromserial.serialutilimportSerialException#------------------------------------------------------------''' qr10 = serial.Serial() qr10.baudrate = 115200 qr10.timeout = 0.05 try: qr10.port = 'COM10' except: printf('Set qr10 port COM10 error. ') try: qr10.open() except serial.serialutil.SerialException: printf('Open qr10 port COM10 error.') else: printf('Open qr10 port COM10 Ok.') '''#------------------------------------------------------------UDP_HOST='192.168.0.183'UDP_PORT=8899UDP_BUFSIZE=0x1000sv=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)sv.setsockopt(socket.SOL_SOCKET,socket.SO_SNDBUF,UDP_BUFSIZE)sv.settimeout(0.2)defsvsend(data):ADDR=(UDP_HOST,UDP_PORT)iftype(data)!=str:data=str(data)data=bytes(data,'gbk')sv.sendto(data,ADDR)defsvrecv():try:data,ADDR=sv.recvfrom(UDP_BUFSIZE)exceptsocket.timeout:printf('Meter time out.')data=''iflen(data)>0:returndata.decode('utf-8')else:return''defsvval():svsend('MEMOS')splitstr=svrecv().split(' ')data=[]forvalinsplitstr:iflen(val)>0:data.append(eval(val))returndata#------------------------------------------------------------defgetangle():ispclearreceive()ispsend()ispcopyreceive()tspfocuswindow("TEASOFT:3")time.sleep(.1)for_inrange(10):try:s=clipboard.paste().split("\r\n")ss=s[3].split(" ")returnfloat(ss[0]),float(ss[1]),float(ss[2]),float(ss[3])except:pass#------------------------------------------------------------ddim=linspace(0.5,2.5,100)ispsend('angle')svsend('st f %f\r'%ddim[0])time.sleep(1)c1dim=[]c2dim=[]adim=[]#------------------------------------------------------------forid,dinenumerate(ddim):svsend('st f %f\r'%d)time.sleep(.1)svsend('st f %f\r'%d)time.sleep(.2)a,c1,c2,g=getangle()c1dim.append(c1/g)c2dim.append(c2/g)adim.append(a)printff(d,a,c1,c2,g)tspsave("measure4",ddim=ddim,adim=adim,c1dim=c1dim,c2dim=c2dim)#------------------------------------------------------------svsend('st f %f\r'%ddim[0])time.sleep(1)printf("\a")plt.plot(ddim,c1dim,lw=3,label='CH1')plt.plot(ddim,c2dim,lw=3,label='CH2')plt.plot(ddim,adim,lw=3,label='Angle')plt.xlabel("Dudy",color="steelblue",fontsize=24)plt.ylabel("Measure",color="steelblue",fontsize=24)plt.grid(True,which='both',linestyle='--',alpha=0.7)plt.legend(loc="upper right",fontsize=24)plt.tight_layout()plt.show()#------------------------------------------------------------''' rdim = linspace(1e3, 1e5, 100) vdim = [] adim = [] c1dim = [] c2dim = [] gdim = [] for r in rdim: qr10.write(b'AT+USER.SP=%5.1f\n'%r) time.sleep(.1) a,c1,c2,g = getangle() adim.append(a) c1dim.append(c1) c2dim.append(c2) gdim.append(g) printff(r, a,c1,c2,g) v = c2/g vdim.append(v) tspsave("RMeasure", rdim=rdim, vdim=vdim, adim=adim, c1dim=c1dim, c2dim=c2dim, gdim=gdim) plt.plot(rdim, vdim, lw=3) plt.xlabel("R(omega)", color="steelblue", fontsize=24) plt.ylabel("Data", color="steelblue", fontsize=24) plt.grid(True, which='both', linestyle='--', alpha=0.7) plt.tight_layout() plt.show() '''#------------------------------------------------------------if__name__=="__main__":#--------------------------------------------------------''' r = 10e5 qr10.write(b'AT+USER.SP=%5.1f\n'%r) time.sleep(.1) a,c1,c2,g = getangle() printff(a,c1,c2,g) '''#--------------------------------------------------------#------------------------------------------------------------# END OF FILE : TEST3.PY#============================================================
#!/usr/local/bin/python# -*- coding: gbk -*-#============================================================# TEST5.PY -- by Dr. ZhuoQing 2026-01-14## Note:#============================================================fromheadmimport*fromtsmodule.tsvisaimport*fromtsmodule.tsstm32import*importserialfrom_astimportOrfromserial.serialutilimportSerialException#------------------------------------------------------------qr10=serial.Serial()qr10.baudrate=115200qr10.timeout=0.05try:qr10.port='COM10'except:printf('Set qr10 port COM10 error. ')try:qr10.open()exceptserial.serialutil.SerialException:printf('Open qr10 port COM10 error.')else:printf('Open qr10 port COM10 Ok.')#------------------------------------------------------------rdim=linspace(1e3,1e5,100)mdim=[]dm3068open()forrinrdim:qr10.write(b'AT+USER.SP=%5.1f\n'%r)time.sleep(.5)rr=dm3068res()printff(r,rr)mdim.append(rr)tspsave("QR10",rdim=rdim,mdim=mdim)plt.plot(rdim,mdim,lw=3)plt.xlabel("R(omega)",color="steelblue",fontsize=24)plt.ylabel("RM(omega)",color="steelblue",fontsize=24)plt.grid(True,which='both',linestyle='--',alpha=0.7)plt.tight_layout()plt.show()#------------------------------------------------------------# END OF FILE : TEST5.PY#============================================================
ddim=[0.5000,0.5202,0.5404,0.5606,0.5808,0.6010,0.6212,0.6414,0.6616,0.6818,0.7020,0.7222,0.7424,0.7626,0.7828,0.8030,0.8232,0.8434,0.8636,0.8838,0.9040,0.9242,0.9444,0.9646,0.9848,1.0051,1.0253,1.0455,1.0657,1.0859,1.1061,1.1263,1.1465,1.1667,1.1869,1.2071,1.2273,1.2475,1.2677,1.2879,1.3081,1.3283,1.3485,1.3687,1.3889,1.4091,1.4293,1.4495,1.4697,1.4899,1.5101,1.5303,1.5505,1.5707,1.5909,1.6111,1.6313,1.6515,1.6717,1.6919,1.7121,1.7323,1.7525,1.7727,1.7929,1.8131,1.8333,1.8535,1.8737,1.8939,1.9141,1.9343,1.9545,1.9747,1.9949,2.0152,2.0354,2.0556,2.0758,2.0960,2.1162,2.1364,2.1566,2.1768,2.1970,2.2172,2.2374,2.2576,2.2778,2.2980,2.3182,2.3384,2.3586,2.3788,2.3990,2.4192,2.4394,2.4596,2.4798,2.5000]adim=[0.2169,0.1931,0.1356,0.0946,0.0412,0.0127,-0.0488,-0.1081,-0.1551,-0.1992,-0.2429,-0.2943,-0.3512,-0.3931,-0.4354,-0.4895,-0.5411,-0.5879,-0.6338,-0.6766,-0.7278,-0.7697,-0.8185,-0.8660,-0.9098,-0.9599,-1.0021,-1.0521,-1.0992,-1.1440,-1.1962,-1.2380,-1.2754,-1.3215,-1.3733,-1.4284,-1.4671,-1.5206,-1.5549,1.5334,1.4849,1.4464,1.3968,1.3379,1.3028,1.2510,1.2153,1.1696,1.1064,1.0692,1.0194,0.9693,0.9195,0.8754,0.8309,0.7822,0.7362,0.6852,0.6328,0.5957,0.5497,0.5064,0.4456,0.4032,0.3559,0.3006,0.2541,0.2011,0.1537,0.0966,0.0539,-0.0033,-0.0473,-0.0938,-0.1418,-0.1944,-0.2456,-0.2897,-0.3387,-0.3815,-0.4317,-0.4809,-0.5248,-0.5705,-0.6183,-0.6649,-0.7089,-0.7494,-0.7936,-0.8524,-0.8889,-0.9446,-0.9889,-1.0309,-1.0665,-1.1237,-1.1678,-1.2107,-1.2508,-1.2998]c1dim=[1.4889,1.3235,0.9330,0.6514,0.2849,0.0877,0.3375,0.7478,1.0698,1.3749,1.6702,2.0217,2.3921,2.6719,2.9290,3.2842,3.6043,3.8786,4.1476,4.4356,4.6963,4.9208,5.1605,5.3952,5.5775,5.7711,5.9406,6.1227,6.2763,6.4100,6.5582,6.6500,6.7517,6.8292,6.9027,6.9477,7.0002,7.0172,7.0317,7.0104,6.9785,6.9549,6.8831,6.8033,6.7385,6.6132,6.5345,6.4163,6.2254,6.1057,5.9292,5.7527,5.5243,5.3480,5.1565,4.9091,4.6721,4.3981,4.1111,3.8981,3.6138,3.3647,2.9882,2.7164,2.4190,2.0512,1.7425,1.3844,1.0631,0.6710,0.3747,0.0233,0.3294,0.6526,0.9866,1.3473,1.7031,1.9991,2.3350,2.6206,2.9352,3.2546,3.5251,3.8075,4.0907,4.3853,4.6440,4.8416,5.0837,5.3698,5.5164,5.7625,5.9396,6.1019,6.2004,6.4379,6.5587,6.6734,6.7563,6.8422]c2dim=[6.7577,6.7671,6.8364,6.8648,6.9064,6.9247,6.9119,6.8909,6.8422,6.8089,6.7404,6.6701,6.5290,6.4427,6.2965,6.1649,5.9984,5.8194,5.6430,5.5235,5.2705,5.0775,4.8297,4.5890,4.3376,4.0412,3.7967,3.4949,3.2009,2.9150,2.5785,2.2988,2.0542,1.7387,1.3815,0.9963,0.7283,0.3524,0.1117,0.2623,0.6008,0.8696,1.2100,1.6139,1.8504,2.1897,2.4259,2.7222,3.1185,3.3480,3.6469,3.9481,4.2112,4.4626,4.7075,4.9402,5.1555,5.3808,5.6055,5.7507,5.8979,6.0664,6.2565,6.3686,6.5084,6.6162,6.7078,6.7912,6.8635,6.9237,6.9430,6.9615,6.9555,6.9387,6.9132,6.8434,6.7936,6.7077,6.6282,6.5332,6.3716,6.2384,6.0891,5.9333,5.7503,5.5931,5.4149,5.2033,5.0012,4.6942,4.4782,4.1682,3.9076,3.6566,3.4223,3.0867,2.7961,2.5128,2.2387,1.9012]


■ 相关文献链接:

  • 增加0.1nF电筒改进测量效果-CSDN博客
  • 测量逐飞制作的正交工字型电感-CSDN博客
  • 调试逐飞双通道导航模块-CSDN博客

● 相关图表链接:

  • 图1.2.1 测量从 1k欧姆到1M欧姆对应的测量数值
  • 图1.2.2 测量从 1k欧姆到200k欧姆对应的测量数值
  • 图1.2.3 测量QR10电阻与测量的电阻
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:46:49

通信原理篇---模拟通信系统

用送信来比喻通信系统想象一下,你要把一封手写的信(模拟信号)从你家送到朋友家。模拟通信系统 —— 相当于派一个邮差骑自行车,原封不动地拿着你的手写信直接送过去。信的内容是连续的字迹,邮差在路上可能会遇到下雨&a…

作者头像 李华
网站建设 2026/4/23 10:49:44

解锁AI原生应用与向量数据库的协同奥秘

解锁AI原生应用与向量数据库的协同奥秘 关键词:AI原生应用、向量数据库、向量嵌入、相似度检索、多模态AI 摘要:当AI从“工具”进化为“原生能力”,当数据从“表格”变为“高维向量”,一场关于智能应用的革命正在发生。本文将用“奶茶店点单”“图书馆找书”等生活化案例,…

作者头像 李华
网站建设 2026/4/23 12:15:40

Spring Boot @GetMapping注解:从应用到原理深度解析

在Spring Boot Web开发中,GetMapping是我们最常用的注解之一,它简洁高效地实现了HTTP GET请求与处理器方法的绑定。本文将从「应用实践」和「底层原理」两个核心维度,带你全面掌握这个注解——既会教你如何灵活运用,也会拆解其背后…

作者头像 李华
网站建设 2026/4/23 12:22:22

.NET微服务架构:从WebAPI到Docker实战

你列出的这些技术栈(.NET Core、RabbitMQ、EF Core、Web API、TCP、Swagger、Linux、Docker)构成了一个典型的现代化微服务或分布式系统开发环境。下面我为你简要梳理它们各自的角色,并提供一些整合建议和最佳实践:1. .NET Core&a…

作者头像 李华
网站建设 2026/4/23 8:25:03

MySQL数据可视化全流程解析

MySQL 数据可视化的核心流程数据准备与清洗 确保数据质量是可视化的基础,通过 SQL 查询筛选、聚合和转换数据。例如使用 WHERE 过滤无效值,GROUP BY 进行分组统计,JOIN 合并多表数据。连接可视化工具 主流工具如 Tableau、Power BI 或 Python…

作者头像 李华