经过三组RC网络相移之后的电压波动

一、问题的提出

有了前面的结论,可以知道电容电压跟随交流电源电压的关系,是满足下面的方程的:

\(V_{C}(t)=\frac{V_{m}}{\sqrt{1+(\omega RC)^2}} \times e^{\frac{-t}{RC}} + \frac{V_{m}}{\sqrt{1+(\omega RC)^2}} \times sin(\omega t-arctan(\omega RC))\)

1、这个方程中的 Vm / [(1+(wRC)^2)^(1/2)] 可以被视为A,这个A就是电容电压波形中的峰值。也就是说:在电源正弦的作用下,电容上的电压形成了一个新的正弦波(虽然并不是完整的正弦、起始瞬态略有畸变),这个新形成的“正弦波”的波峰是A;

2、方程中的-arctan(wRC)被视为相移角φ,也就是电容正弦错后于电源正弦的相移;

3、那么新的正弦波的频率呢?频率是不变的。它的频率是和电源频率相同的,只是波峰略低、相位略微向右偏移。

有了如上概念之后,就可以完成以下的两个问题的解答:

1、如何构建一个完美的60°相移,然后通过3组RC相移,完成180°的相移;

2、在进行了180°相移之后的第三组RC网络的输出电压,波峰是多大?也就是说最终反馈回控制极的电压有多少?

这篇博客,将完成上面2个问题的计算和整理。

二、为了实现60°的单组RC相移,重新进行相关元件的参数设置

电源电压峰值:12V。之所以要将电源电压定义为12V,目的是与Jack Kilby的实验相符。在我阅读的相关书籍中提到,他在实验室中用12V直流电开始实验,并在示波器上看到了令人激动的振荡波型;

电源频率:暂定100Hz。之所以要定义成100Hz,是为了方便绘图观察。后期可以重新调整这个频率;

电容:1uF,也就是0.000001F;

电阻:之前我在仿真中是直接使用的1000Ω,现在按照相移角为60°进行计算,电阻应该使用2760Ω。这里还有一个额外的问题:为什么之前仿真中,电容使用1kΩ也可以正常振荡呢?这个问题需要以后有时间了,再深入推敲一下;

如上的基本参数就定义好了,按照上面定义的参数,进行绘图,然后进行仿真,看绘图计算结果与仿真结果是否一致。

三、三组RC相移之后的最终波形及电压

其实有了上面的计算依据之后,不画图也可以计算出经过3次RC相移之后的最终输出电压峰值是多大了。因为经过一组RC之后的电压峰值是A,所以经过3组RC之后的电压峰值是A的三次方。因而,如果电源电压的峰值时12V,那么:

经过第一组RC之后的电压将会是6V左右;第二组RC之后的电压将是3V;第三组之后的电压将是1.5V。也就是说最终反馈回控制极的电压的波动将在+1.5V ~ -1.5V之间。

下面是使用SageMath完成的画图,从只有电源电压开始、一条条的增加新的电容电压曲线。需要注意的是要忽略掉曲线开始瞬态部分的失真情况:

这个开始部分的失真真令人苦恼!要知道我之所以花了很多时间《搞清楚电容电压跟随电源电压的数学公式和推导过程》,目的就是想在最终的SageMath生成准确正确的图像。而现在看来还是无法生成出正确的图像来。

很奇怪各类仿真软件在这里是怎么做的,为什么通过仿真软件的示波器,就能够看到正确的波形图呢?

四、仿真对比

待续

五、备忘

1、本文中使用到的LaTex公式,为了方便日后使用,源码备注如下:

V_{C}(t)=
\frac{V_{m}}{\sqrt{1+(\omega RC)^2}}
 \times
 e^{\frac{-t}{RC}}
+
\frac{V_{m}}{\sqrt{1+(\omega RC)^2}}
 \times
sin(\omega t-arctan(\omega RC))

2、本文中使用到的SageMath绘图语句,整理如下,方便日后使用:

Vm = 12
R = 2760
C = 0.000001
F = 100
omega = 2*pi*F

Vs(t) = Vm*sin(omega*t)
A = Vm / sqrt(1+(omega*R*C)^2)
Vc1(t) = A * exp(-t/(R*C)) + A * sin(omega*t-arctan(omega*R*C))

B = A /  sqrt(1+(omega*R*C)^2)
Vc2(t) = B * exp(-t/(R*C)) + B * sin(omega*t-arctan(omega*R*C)*2)

CC = B /  sqrt(1+(omega*R*C)^2)
Vc3(t) =  CC * exp(-t/(R*C)) + CC * sin(omega*t-arctan(omega*R*C)*3)
plot(Vs, 0, 0.03, color='black')
+ plot(Vc1, 0, 0.03, color='red')
+ plot(Vc2, 0, 0.03, color='green')
+ plot(Vc3, 0, 0.03, color='blue')

六、拾遗

1、此时此刻(2024年4月19日 16:07),这篇博客才写了一半,发现我在数学计算中用到的相移角似乎有些错误,而且数学计算时的模型和实际电路模型也存在着偏差,所以得到的SageMath结果和仿真结果并不一致。但是二者从数值上看是有相似性和吻合性的,所以应该只是一些小的偏差、错误导致的问题。再假以时日,应该能将相关错误找到,并得出正确的结果。

以前上学的时候觉得所有的知识都挺容易理解的,现在也许是年龄大了,即便是对已经已经熟练掌握了的知识,再看的时候,都会感觉是“一头雾水”,唯有继续艰难的、一点点的重新理解,才能让自己感觉有所收获。

Related Posts

RC震荡电路学习笔记(7)

在《RC震荡电路学习笔记(6)》中,已经了解了电容中的电流与电压相位相差90°的原因,并且也知道了一个简单的RC电路可以形成电压信号的相移,此时按道理说,就可以通过3组RC相移器构造出的180°相移网络做出振荡器来了。 并且还是依据上一篇文章中最后得到的频率计算公式,可以计算出最终的频率应该是: 滞后器网络: 超前器网络: 然而事实上并不是上面这个计算得到的频率。上一篇文章中用于计算的只是“纯理论模型”,这个理论模型中的3组相移器是被假设成彼此孤立、不会相互影响的。然而实际电路并不是这种纯理想情况,实际电路中的三级相移器是彼此耦合在一起的,因而拿出任何一点考量,都会发现它并非单纯的RC电路,整个系统中的阻抗都会相互耦合作用到一起。 因而上一篇文章中的计算只是对RC相移网络的原理进行了解和讲解,并不能用于指导真实电路的设计和计算。 对于真实的电路,要使用传递函数进行分析,这个传递函数的定义是:,我使用M意思是测量量,这个具体的测量通常是电压,也就是输出点对输入点的电压比视为电路的信号传递能力。在三级RC相移网络中,不考虑RC网络前级、后级更复杂的情况,仅对这个相移网络进行分析的话,容易得出: 整个网络的信号传递 现在仅以第一级传递进行考量:因为第一级RC环路中的电流处处相等,因而输出点的电压就是R和C的分压。后面的第二级、第三级也都是这样的情况,所以可以根据传递函数得到如下的传递计算式:。 最终得到总的RC网络传递计算式: 因为考量的是输入点和输出点电压,而电压等于电流与阻抗分压的乘积,电流在每一个环路中显然又是处处相等、满足基尔霍夫电流定律的,因而这个传递式最终的表达式便变成了对电路中阻抗的分析。 如果按照上一篇文章中的理想模型来看,传递函数将写成:,这个模型不难求解,而且解出来的结果也是和上一篇文章最终得到的结论是一致的。 然而本篇文章已经明确了:在真实电路中由于各个IC的相互耦合引起了每一个考量点的阻抗的变化,因而上述传递函数最终变成了:。 也就是对于第一级、第二级的输出点位置上,并不是简单的串联点,而是与后级电路形成了并联关系。它的阻抗带入式是:。 看上去并不复杂,实际计算那是相当困难的。至少我经过了先后四次手算都没能得到最终的正确结果。现在感觉这个代数计算很困难,隐约觉得在复数工具中应该有比较便捷的计算方式,所以我便又重新开始看复数方面的知识,期望能够找到关于上式的计算工具。 总之,它的计算结果是:,此时为了方便后面的观察和分析,设 ,便可以将上述传递函数重新改写为:。 至此传递方程所能体现出的相移能力就显现出来了,因为这三组RC相移网络完成的恰是180°的相移,因而它的虚部等于0,也就是。这个虚部为0的物理客观,便构成了最终的结论。如此也就得到了真实电路(比上一篇理论电路真实、但依然是经过大幅度简化)的实际频率修正式。 但是注意到在更早之前的一篇笔记《RC振荡电路初学笔记(5)》中,对于实际的频率计算式还有更复杂的因素要考虑,当时我还在困惑是不是其中的哪一个频率计算式有错误,实际上两个计算式都是正确的,只是而一个式子是这篇文章已经得到了的,而那篇文章中的第二个计算式,显然是额外考虑了电路中其他的IC部分的耦合影响。 只是当前还没有学到。

RC震荡电路学习笔记(6)

一、之前的学习笔记整理: 学习笔记 内容简述及收获心得 RC振荡电路初学笔记(1) 关于Jack·Kilby发明集成电路,并且这个电路是RC相移震荡电路的引子 RC振荡电路初学笔记(2) 关于Jack·Kilby发明集成电路的历史趣闻 RC振荡电路初学笔记(3) 罗列了几点RC相移电路中的个人困惑和备忘 RC振荡电路初学笔记(4) 对Jack·Kilby为什么使用PNP而非NPN做震荡电路做了些毫无根据的猜测 RC振荡电路初学笔记(5) 通过仿真软件对RC电路具体参数确定时的正确输出频率做了仿真 RC相移震荡电路学习历史笔记列表 二、电容电流超前于电容电压的原因: 书上的解释是:只有对电容器充电之后,电容器内部有了电荷,电容器两端才有电压,所以流过电容器的电流是超前于电压的。如上的这个表述我是万分的无法理解和接受,电流和电压是同时产生的,怎么可能有谁超前、谁滞后的说法呢? 在物理世界中,电压与电流应该就是彼此同时产生、同时消失的,不会有电流超前于电压的“预知”能力(如果特别特别较真儿、我觉得也应该是先有电压才能驱动产生电流,但他们二者的因果时序近乎于瞬时,所以不能用可评估的时间去表述谁先谁后。所以无论如何也没有道理说出电流超前于电压这种话来)。更准确的表述应该是:电容器上的电压变化率引起了电容器上的电流产生,而电容器上的电压波形与电流波形在同个坐标系上比较,是相同的正弦波形,但相差着90°的相位差。 以最简单的一个理想电容器举例,图样就是一颗电容器画在纸面上: 这个时候电容器内部无论带有多少电荷,它的电荷量都不会随着时间发生变化,因而电容器上不会产生电流。当外部向电容器输入电荷、或者电容器向外部输出电荷时,随着电荷的增加或减小,电容器上同时的表现出了电压的波动和电流的产生。 因为电容器的电流 所以电流的波动和电压的波动是同时因为电荷的增减而同时引起的。 而又依然是通过上式可以看出来:在外部存在一个正弦电压施压在电容器上时,电容电压的变化频率就是电源电压的变化频率,所以电容电压 电容电流 此时就能看出来电容上的电压与电流相差90°的关系来了。 额外的,还可以用另一个更简单的解释来说明二者存在着90°的相位差。依然是通过观察电容器的电流 。能够想到的是其中的电压V是个正弦波形态,那么在这个波形的极值点上的导数是0,所以这些极值点时对应的电流就是0,而在x轴过零交点上的导数最大(变化率最大),因而过零点时刻的电流最大。 上面这个关系说明了:电压最大时(正、负极值)、电流最小;电压最小(电压=0v)时的电容器充放电流最大。这与物理常识并不矛盾。电压最大时,在dt时间范围内电压却不再发生变化,所以没有电压的变化就没有电流;过零点虽然电容器上不存在电压,但是这个时候却是外界对它施压最大的时刻,最大的电压当然会获得最大的电流。…

微分电路和积分电路

这里是一篇备忘文章,用来记录两个电路:微分电路和积分电路。 上面是两个模拟电路的示意图,它们的名字分别是微分器(图1)和积分器(图2)。我想把这两个电路好好学习、了解一下。

微信小程序開發備忘

小程序開發已經用三脚貓功夫做了一些粗略的實現,接下來就是學習這個技術框架中的細節,并且返工之前粗略、粗糙的地方。今天學習了一下幾個技術技巧: 一、子控件向父控件發送帶參數事件消息 頁面上的button按鈕是我做的一個子控件、這個按鈕是放在panel控件中的。現在我想點擊button按鈕的時候,button按鈕完成響應、并將事件通知給panel,由panel接收並繼續處理事件。 此前的實現非常拙劣,就是只使用panel進行事件的處理: 這樣做的壞處是顯然的:觸摸會發生在整個panel中。而我希望的是觸摸僅由裏面的button受理。改造過程如下: 1、首先panel的頁面層,調整代碼如下: 這樣調整之後,panel不再接受bind:tap消息,而是會接收名爲customEvent的事件,一旦接收到customEvent事件,則進行running執行。此時的customEvent事件將由button發出,所以button的代碼寫成下面的形式: 這樣只要點擊了button,就會運行sendEvent方法,這個方法内實現向父層發出消息的過程,具體js代碼是: 通過triggerEvent發出了一個customEvent事件,父控件因爲綁定了這個事件、接收到並開始處理就可以了。 二、動態成員訪問的方法 類似如下的PHP代碼: 在JavaScript中的實現方式是: 三、控件數據初始化 微信小程序的components控件,似乎沒有(我不確定)如pages頁面那樣的onLoad()方法,儅加載了一個小控件之後,向這個控件中傳入一些初始變量,便沒有辦法找到一個Init()或onLoad()的地方,對這些傳進來的變量進行預處理、以被在頁面上使用。 此時可以使用控件的observers監聽服務,對傳遞進來的變量進行監控,一旦傳遞進來的變量生效,observers服務啓動,以便進行數據的預處理操作。具體代碼如下: 四、頁面中的if/else流控方式 此前頁面中一直是這麽寫: 現在有了更好的方法: 雖然在頁面上的if/else流控寫法我已經瞭解了,但感覺并不如C/C++那樣直觀,總感覺有些奇怪,擔心它的嵌套不準確。不過也不重要,總之今天掌握的,就是這些。

《普林斯顿微积分》第8章学习备忘

这一章很简短,只有2个话题:如何进行隐函数求导、隐函数求导能够完成相关变化率的求解。这两个话题看的我是“一头雾水”,全都能够看懂、给出的例题也都会做,但其中的细节是没有一点儿能搞清楚的,总结就是这一章看的是“似懂非懂”。 一、隐函数求导: 1、什么是隐函数?这就是摆在我面前的第一个困惑,《普》几乎是很快就引入了隐函数求导的方法,而没有说明什么是“隐函数”,它是否是个更基础的、无需多说的知识呢?不得而知; 2、隐函数求导的具体过程。这一点对应着书中的§8.1,不费力气就看明白了。我在阅读这个章节的时候,对“链式求导法则”有了更豁然的理解,这个“豁然”要趁着现在还没有忘记、尽快花时间详细记录一下。否则一旦过段时间,很可能又会忘记掉; 3、具体的隐函数求导例题。没有什么难度,书中给出的例题都能跟着做出来。但诚如上面提到的,因为我不知道什么是“隐函数”,所以例题能做出来是没有意义的,原因在于:如果放在陌生的问题中,我可能很难一眼看出“这是一个隐函数”、“这里应该用隐函数求导去解决问题”; 4、隐函数求二阶导。同样的也可以将例题做出来,但是这里也存在着一个问题:我不理解二阶导的微分符号中,它的“分子”和“分母”中的上标位置区别的具体含义,或者说二阶导的上标符号具体是什么含义我不清楚。虽然能够隐约感觉到答案,但并不明确,所以这里也要再额外花时间推敲一下,形如下面的二阶导微分公式中,上标“2”的位置和具体含义: 二、相关变化率 1、§8.2章节是《相关变化率》的现实应用,以及利用隐函数求导方法求解。能知道说的是什么事情、能完成书中的例题的求解。 2、但是这些例题我自己却不会构建。不会自己构建例题说明自己完全不理解什么是“相关变化率”,不会自己构建例题意味着现实中即便遇到了“相关变化率”的问题或现象,也很难认识他们,知道他们,看得清他们,联想到使用隐函数求导的方式去解决他们; 3、相关变化率的具体概念要再花时间了解、学习。直到自己能够构建出例题、不费力气的就能信口举出例子、自己能够构建出应用场景和应用例题,才算是了解了这个话题。我现在能想到的比较感性的生活场景是人的吃饭、排泄,以及与体重的关系。这样一个生动的例子,如果能够随心所欲的构建出各类例子,并通过隐函数求导解决,应该就算是了解了。 三、小结 1、如上,就是这一章节的学习心得。可见这一章当前只是囫囵吞枣地阅读了、了解了,并不理解; 2、接下来将继续阅读第九章:指数函数和对数函数。

《普林斯顿微积分读本》阅读备忘(2)

一、前六章学习小结 已经将第六章看完了,现在开始阅读第7章的内容。前六章的内容实际上讲解的非常缓慢,都是在介绍什么是极限、什么是导数、什么是微分。我阅读、理解的更慢,断断续续好几个月才看完。却至今还是没有十分明白。 什么是极限? 极限是指某一个函数如,当自变量趋近于某一个定点时,这个函数的结果、也就是因变量将会趋近于的结果。极限是一个明确的结果、是一个明确的数值、是一个明确的“结果数值”。 什么是导数? 导数和上面的极限不同,相对于“极限”而言,导数并不是一个明确的结果数值,而是因变量的变化量与自变量的变化量的比值,也就是当在某一个明确的点(如)上时,的比值。所以它是“比值”、而非“数值”。 什么是微分? 微分是我仍然不理解的概念,上学时不理解、如今重学微分课程还是不理解。微分似乎既不像是上面的数值、也不像是上面的比值,微分什么都不是,微分只是一个“求导的过程”、“求导的方法”、“求导的思想”。微分是一种“细分思想”,利用这种“细分思想”或“微分思想”完成求导的思维方式。 同时,微分还是一个“符号”,使用“导数符号”表示的是比值结果,使用微分符号表现的是求出”比值“之前的”心路历程“。而且使用微分符号因为能够更多的展现出”求导的心路历程和动机目的“,所以在更复杂的求导过程中,利用微分符号可以更明确的将计算细节展现出来,进而使用各种”微分技巧“进行化简、转换、运算,以完成最终的求导、得到想要得出的比值来。 大概就是上面这个印象。也许还要再多花一些时间继续学习,才能有更透彻的理解。 二、额外的与模电联想 在模电中也经常会提到“微分电路”和“积分电路”,这里的两个名词具体含义也整理一下,也许过几天会用到。 微分电路:电路的输出信号与输入信号的导数成正比。换言之,微分电路输出的是输入信号的变化率。 积分电路:输出信号与输入信号的积分成正比。换言之,积分电路输出的是输入信号的累计值。 三、开始学习第七章的内容 接下来的第7章还是进一步对极限、导数、微分进行更多的例题讲解。只不过其中的例题都不再是多项式函数,而是三角函数。 大概翻看了一下后面的章节目录,后面的不同章节中,仍然是对极限、导数、微分进行更多的例题讲解,和第7章的大概方向是一样的,唯有不同的是,后面章节分别再对指数函数、对数函数、双曲函数……等进行求导、微分。 之所以简单的“极限、导数、微分”要如此一轮又一轮的重复,我猜也许是有如下2个原因: 1、不同的函数类型,微分思想虽然都是一样的,但用到的技巧各不相同,所以要区分讲解,从而不断地引入各种新的微分技巧或定理; 2、不同的工科应用领域中,用到的函数不同,例如在计算机行业中,也许就会经常用到三角函数、但很少用到双曲函数,所以不同专业的人可以有取舍的仅对自己行业频繁用到的函数类型进行微分思想练习。 如上是当前的学习小结。