原创
两路PWM合成7.5位0-7V标准电压源的数学计算
2013-1-27 14:38
1644
8
8
分类:
模拟
两路PWM合成7.5位0-7V标准电压源的数学计算
许多资料都有2路PWM合成精密电压的计算公式:
VO=K[(VREF/N)×N1+ (VREF/N)×(N2/RR)]-VOS
不难理解,整理一下:
VO=K×VREF/N(N1+ N2/RR)-VOS
式中:
K——为后面滤波器和缓冲器的增益,对基本量程而言,没有放大也没有衰减,为1
N——为时间分割计数器的总计数值,N1为1通道的对应输入电压的计数值,N2为2通道的对应输入电压计数值
RR——为1和2通道的衰减比例,也叫分辨率比例
VOS——为滤波器和缓冲器的失调电压,为了可以软件校正也人为引入一个固定的反向小电压之和
对于基本量程,整理得到:
VO=VREF/N(N1+ N2/RR)-VOS
对于设计完成的电路,VREF和N,RR和VOS均为固定的已知值,输出电压就仅与N1和N2有关,N1和N2在我所阅读过的资料中均未有计算的原理说明。所以具体到软件和硬件电路设计有几个问题要回答。
1. RR的值如何取舍,当然首先是考虑分辨率比例,还要考虑自动校正时RR可以用软件自动校正计算得到,后面要谈到。
2. VOS的取值范围
3. 对于任意电压,如输出1.234567V时,N1和N2是如何分配的,按什么算法编程。
关于RR的值选取,如果要实现软件校正,必须按满度量程计数值N的二分之一以下考虑,同时兼顾考虑最小的分辨率,这个值在FLUKE5440B为7200(满度计数N=24096),FLUKE5700A设计为16250(满度计数N=42105,按维修手册参数计算,实际测量值应该是40000),国产YJ93为16024(满度计数N=16384),YJ93的已经接近满度计数值16384,显然YJ93的RR是不能被软件校正的,靠硬件设计保证。
接下来进行N1和N2分配计算,具体的分配是按一个分配系数M进行计算的
M= VREF/N
设计完成的电路这个值是固定不变的,如果VREF=7.2V,N=16384.RR=6000.预置的输出电压1.234567V这时的:
M=7.2/16384=4.39453125E-4
最小分辨率M/RR=73.24nV
N1=1.234567/M=2809.325796,取整2809
小数点后的数字0.325796用于计算N2
N2=0.325796×RR=0.325796×6000=1954.7733,取整1954,小数点后的数字舍弃,因为其所占权重非常小了。
V0S的设计取值,根据硬件电路输出的器件选择有关,对失调电压低的器件可以选低一些,一般可以取1.5mV,当然再大点,也可以通过软件调整补偿过来。
软件首先要根据硬件设计给予初始化参数,在没有校正时,仪器有正常的功能可运行。
硬件设计参数VREF=7.2V,RR=6000,VOS=1.5mV.软件编程按此初始值进行运算N1,N2.得到仪器的输出值,使仪器可以工作。精确的输出值在进行0点,RR值,满度外校后,用新得到的精确VREF ,RR ,VOS进行N1,N2的计算,这些值存储在NVROM中。
0点的校正,由于硬件参数的差异,按初始化值进行运行的输出不会是0点刚好,这时的偏移可以通过在校正模式下,用前面板增减对应电压使输出刚好到0点,这时对应的N1-0,N2-0作为0点的值存入NVROM。
VO-0=VREF/N(N1-0+ N2-0/RR)-VOS
接下来进行RR值的读取校正,在输出0点时,软件控制对应的N1-0计数值减一个数后为(N1-0 -1),同时N2-0增加RR的初始化值6000为(N2-0+6000)。这时的输出由于硬件计算的初始化RR的原因不刚好为6000,输出会再偏移0点,用前板调整输出电压回到0,这时N2对应0点校正时增加计数数字就是精确的RR,存入NVROM。这段原理的数学计算表达如下:
(N1-1)+ (N2+X)/RR=N1+ N2/RR
计算后可以得到X=RR
由于N2的最大值是满度计数值16384,为了不至于出现新的计数值(N2+X)超过16384,所以X=RR要为满度计数值的一半以下,实际设计时为了保证硬件参数误差大而带来的问题,RR一般取到40%的满度值,留足够余量。
最后进行满度的7V校正,未校正时满度的输出值按设计的初始化值输出.
这时输出电压值7V不一定刚好是7V,对比外标准,调整前面板刚好输出与外标准平衡的精确值,这时得到对应的计数值N1-7 ,N2-7存入NVROM。
VO-7=VREF/N(N1-7+ N2-7/RR)-VOS
对比0点校正的表达式:
VO-0=VREF/N(N1-0+ N2-0/RR)-VOS
式中只有VREF和VOS是未知的,根据上面两个方程非常容易解得到。
那么两个通道的精确分配系数M就非常容易计算得到:
M= VREF/N
存入NVROM。
对于任意输入电压就根据校正后得到的M值,RR值,VOS进行计算而得。
前面板预置电压必须加上VOS,才是正确的输出值,编软件时要注意。
以上内容转贴自thy888
文章评论(0条评论)
登录后参与讨论