一阶电路误差分析_精确移相电路的设计举例

一阶电路误差分析_精确移相电路的设计举例移相电路就是对输入信号 一般是正弦波 进行相位控制 而不改变其幅度 本推文以移相电路为例 展示模拟电路的反馈设计技巧与方法 一 全通滤波器实现移相以上是两种移相电路的原理 其输出幅度保持不变 移动的相位随 R3 和 C 而改变 在 C 和 R3 确定时其移相是 arctan 函数 非线性的 当 WR3C 较小时 近似线性 arctan x x x lt 0 5 仿真伯德特的相位如下 上图可见 在 WR3C 较小时 是

1a018e4ec783abb26287e1b4486481a3.png

39095a65f267baf5e63b04384c0ec688.png

b06153f5cf7612c0b4dfcf3a9d031086.png

以上是两种移相电路 的原理,其输出幅度保持不变,移动的相位随R3和C而改变,在C和R3确定时其移相是arctan函数,非线性的,当WR3C较小时,近似线性arctan(x)=x,|x|<=0.5,仿真伯德特的相位如下:

1016281b3af29737e8f8de1384403d17.png

上图可见,在WR3C较小时,是线性相移,即确定最最高频率Wmax后可以反向计算R3C<=0.5/Wmax,确定线性相移应用的时间常数R3C。

应用前述的全通滤波器,好像有希望实现,关键是要能调整C与R3,而且要刚好调整到对输入信号移相90°,这是问题的关键。我们把问题细分一下:

先说1),改变C当然不能人去手动调节,要用电信号自动调节,首先想到的就是反向偏置的变容二极管,本推文我们不选择改变C,如果是改变R3那么如何做?当然不能用普通电位器了

,我们还是需要能电控改变阻值的东东:

a)不少人可能首先想到的是数字电位器,这个有些问题:首先太复杂,意味着你要使用单片机,而且数字电位器都是离散电阻值,假设一步对应100欧姆,1.5khz时需要900欧姆,刚好合适,而1.525khz输入频率,如果需要923.56欧,就完了,因为一步对应100欧姆的数字电位器只有900欧姆、1000欧姆,没有923.56欧姆,会影响控制精度,所以数字电位器不是最佳方案。那么你非要使用数字电位器又该怎么办?那也不是没有办法,只是精度差一些:比如,你可以参考PWM控制的思路,在20次控制中,1000*(20-x)/20+900*x/20=923.56,计算出x次选择900欧,剩下(20-x)选择1000欧。

b)还有就是选择JFET管,工作在可变电阻区,这是非常好的方案,只是要控制JFET的工作电压和扩展JFET的线性,下面详述

再说2),这里关键是需要一个鉴相器,来检测相位差,二极管鉴相器、二极管平衡环状鉴相器、乘法器….都可以做鉴相器,这里为了简单选择乘法器做鉴相器

先给出整体仿真电路和仿真实验结果:

3820a100ebd62d013bb723e471c70758.png

下面看看反馈跟踪控制电路,其由鉴相器和JFET可变电阻构成:

1)鉴相器这里采用的是乘法器,把输出信号Asin(wt+Po)与输入信号Asin(wt+P1)相乘,sina*sinb=-0.5[cos(a+b)-cos(a-b)],当两者差90°时结果只有cos2wt 二倍频分量,无直流分量,而非90°相位差时,会有一个直流分量0.5*cos(Po-P1), 推文中使用一个一阶RC取出直流分量,然后对直流分量进行积分,这个积分器是必须的,其作用就是如果误差没有消除就不断增强调节作用,此处如果换成放大器就没有持续调节作用了,其实这就是PID控制中的积分环节,目的就是消除最终的稳态误差!此电路只是临时起意设计的,参数还没有优化计算。

9e46174d624df3f14e09bf8bd41dc665.png

2)JFET可变电阻

jFET的输出电流ID与VGS(栅源电压)、VDS(漏源电压)关系如下,可以推导出其输出导纳gDS

ecdc0adc5fc1e50e58c423849d461424.png

现在如下图所示,通过R3/R2引入对Vds信号的反馈,目的是减小JFET输出电阻的非线性,造成非线性的原因从上图的gDS公式可见其还是Vds的函数,因此我们的做法还是负反馈!引入对Vds信号的负反馈来抑制Vds对ID的影响!

f93c778bc96423c1d5143a984b3fabb8.png

失真补偿以后,失真度降为0.022%,这改善非常明显,记住善于应用负反馈者,如果模拟电路世界的天下一分为四,你已得其一!是不是有点当年诸葛大神的隆中对三分天下的意思?

这种JFET低失真可变电阻很有用,例如下图的低失真系数的正弦波振荡器:

a6c2e3d6983f7a000066770d79da9582.png

红色区域左下角的1:1运放就是为了隔离R8/R9/VR对R4的负载效应; TL071也是反馈控制中的积分环节,目的一样是消除稳态误差;D2/D3构成主要的信号幅度信息提取网络,采用半波整流电路取出正半周信号,通过积分器其实就是半波整流输出信号的平均直流分量,该分量与正弦波的幅度成比例:

154cc8609b4eb3e11df0887995c9a45e.png

二极管半波整流虽然简单而且不精确,但是和积分器搭配却是很常见的信号幅度提取与反馈控制的手段!

关注微信公众号: RiscV与IC设计

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218751.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午11:33
下一篇 2026年3月17日 下午11:34


相关推荐

  • 浪潮服务器 安装系统_浪潮服务器安装centos7

    浪潮服务器 安装系统_浪潮服务器安装centos7《浪潮服务器系统安装操作》由会员分享,可在线阅读,更多相关《浪潮服务器系统安装操作(3页珍藏版)》请在人人文库网上搜索。1、浪潮服务器系统安装总结一、首先创建虚拟磁盘:1、开机引导项Ctrl+h,在AdapterSelection屏幕中单击Start。2、此时,将打开MegaRaidBIOSConfigUtilityVirtualConfiguration屏幕…

    2022年10月5日
    7
  • Java实现远程屏幕监视

    Java实现远程屏幕监视Robotrobot newRobot 要捕捉的屏幕显示范围 下面以全屏示例说明 Rectanglerec newRectangle Toolkit getDefaultTo getScreenSiz BufferedImag robot createScreen rect nbsp 通过上面

    2026年3月17日
    2
  • centos7.6开放端口命令_查看端口有没有开放

    centos7.6开放端口命令_查看端口有没有开放概要最近在docker下搭建MySQL和Redis环境,远程linux主机内部网络都走通了,但是就是外网无法连接远程服务器的MySQL和Redis。经过一番查找和学习,终于找到了问题,不仅远程服务器上docker要做好内部和外部端口的映射,关键还要对对外开放的端口添加到防火墙中。内容介绍的逻辑是:本篇文章先记录Centos7下查看防火墙状态和网络状态命令;下一篇将介绍通过docker…

    2026年4月14日
    9
  • OpenClaw本地部署,亲测好用分享

    OpenClaw本地部署,亲测好用分享

    2026年3月16日
    1
  • 怎样区分直连串口线和交叉串口线?

    怎样区分直连串口线和交叉串口线?

    2021年12月1日
    43
  • C++中resize函数的用法

    resize(),设置大小;reserve(),设置容量;resize()是分配容器的内存大小,而reserve()只是设置容器容量大小,但并没有真正分配内存。resize()可以传递两个参数,分别是大小和初始值,初始值默认为0,reserve()只能传递一个参数,不能设置初始值,其初始值为系统随机生成。例:#include<iostream>#include&…

    2022年4月1日
    324

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号