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




沒有留言:

張貼留言

Node-Red --> MQTT --> Fuxa 開源碼網頁式圖控平台

Node-Red --> MQTT --> Fuxa      FUXA(一個開源的 Web HMI / SCADA 自動化監控軟體)的專案設定檔 。 這份設定檔完整定義了 HMI 監控畫面的 後端通訊(MQTT 連線、點位標籤) 與 前端網頁圖形介面(SVG 畫布...