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




沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...