2021年6月6日 星期日

電路中RC濾波器之計算

 電路中RC濾波器之計算

源自於 https://bime-matlab.blogspot.com/2006/11/107-cr.html

一組RC電路之組成亦可類比於並列之水桶中之水流。其電路圖如下:


依據歐姆定律及電荷守衡法則,電流與電壓間之關係為:
Q=CV=it   d(V)/dt = i/C

i1=(e1-e2)/R1
i2=(e2-e3)/R2
---
d(e2)/dt=(i1-i2)/C2
d(e3)/dt=(i2-i3)/C3
---

將前半部電流之公式代入後半部電壓梯度之公式,其結果將與並列水桶類似,即:

dE(i)=(E(i-1)-2*E(i)+E(i+1))*A*delT/C(i)

開始時電壓設為正弦曲線,即e1=sin(t),然後依時序之演進計算其他點之對應值。下面程式是根據此項法則進行演算。此程式中電容數比電阻數多一,但也可以向量的形式輸入。執行完畢時,會有其電壓變化比較圖。

程式內容


function [ff]=crfilter(RR,CC,N,T,E)
% crfilter.m
% program to calculate a multiple R-C circuit.
% o----o----R---o--R---o--R---o-----o
% | | | | |
% C C C C C
% | | | | |
% o----o----o---o------o------o-----o
%
% E:Voltage, V
% RR:resistors, ohms
% CC:Capacitance, microfaras.
% T:time elapsed through the experiment.
% Designed by D.S. Fon, Bime, NTU, Date:Nov. 26,2006
while 1
if nargin==0,
RR=[1 1 1 1 1];CC=[1 1 1 1 1];N=400;T=[0 15];
elseif RR==1,
RRx=[1 1 1 1 1];CCx=[1 1 1 1 1];Nx=400;Tx=[0 15];
disp('Enter following values in vector==> ')
r1=input('Resistors,ohms==','s');
if isempty(r1), RR=RRx; else RR=str2num(r1);end
c1=input('Capacitance,fara== ','s');
if isempty(c1), CC=CCx; else CC=str2num(c1);end
T1=input('Input starting & ending time, seconds== ','s');
if isempty(T1), T=Tx; else T=str2num(T1);end
n1=input('Input number of time interval== ');
if isempty(n1), N=Nx;end
end
AA=1./RR;Ts=T(1);Te=T(2);
delT=(Te-Ts)/N;
nn=length(CC);
ff=zeros(N,nn+1);EE=ones(1,nn)*sin(Ts);
clf;
ff(1,:)=[0, EE];
tt(1)=0;i=0;
for i=2:N;
tt(i)=Ts+delT*(i-1);EE(1)=sin(tt(i));
for j=2:nn-1
dE(j)=(EE(j-1)-2*EE(j)+EE(j+1))*AA(j)*delT/CC(j);
end
dE(nn)=(EE(nn-1)-EE(nn))*AA(nn)*delT/CC(nn);
EE=EE+dE;
ff(i,:)=[tt(i) EE];
line(tt(i),EE,'Marker','.');
end
m=fix(N/2);
for i=2:nn+1
text(tt(m),ff(m,i),['e-',num2str(i-1)]);
end
xlabel('Time, seconds');
ylabel('Voltage, V');
grid on;figure(gcf);
yn=input('Continue?(Y/N)[Y]==> ','s');
if ~isempty(yn) & upper(yn)~='Y', break; end
end

執行結果:

>> crfilter

ans =

0 0 0 0 0 0
0.0375 0.0375 0.0014 0 0 0
0.0750 0.0749 0.0041 0.0001 0 0
0.1125 0.1123 0.0080 0.0002 0.0000 0
0.1500 0.1494 0.0130 0.0005 0.0000 0.0000
0.1875 0.1864 0.0191 0.0009 0.0000 0.0000
0.2250 0.2231 0.0260 0.0016 0.0001 0.0000
0.2625 0.2595 0.0339 0.0024 0.0001 0.0000
0.3000 0.2955 0.0425 0.0035 0.0002 0.0000
0.3375 0.3311 0.0519 0.0049 0.0003 0.0000
0.3750 0.3663 0.0619 0.0065 0.0005 0.0000
0.4125 0.4009 0.0725 0.0083 0.0007 0.0000
0.4500 0.4350 0.0837 0.0104 0.0009 0.0001
0.4875 0.4684 0.0954 0.0128 0.0013 0.0001
0.5250 0.5012 0.1075 0.0155 0.0017 0.0001
0.5625 0.5333 0.1200 0.0184 0.0021 0.0002
0.6000 0.5646 0.1329 0.0216 0.0027 0.0003
0.6375 0.5952 0.1461 0.0251 0.0033 0.0004
0.6750 0.6249 0.1595 0.0288 0.0040 0.0005
0.7125 0.6537 0.1731 0.0328 0.0048 0.0006
0.7500 0.6816 0.1869 0.0370 0.0057 0.0008

------------------------------------------
14.8875 0.7315 0.4883 0.2074 0.0435 -0.0182
14.9250 0.7054 0.4859 0.2118 0.0473 -0.0159
14.9625 0.6783 0.4828 0.2159 0.0511 -0.0135




沒有留言:

張貼留言

113 學年度第 1 學期 RFID應用課程 Arduino程式

113 學年度第 1 學期 RFID應用課程 Arduino程式 https://www.mediafire.com/file/zr0h0p3iosq12jw/MFRC522+(2).7z/file 內含修改過後的 MFRC522 程式庫 (原程式有錯誤) //定義MFRC522...