一階電路matlab編程求解
?1. 根據例2-2,用兩種方法對下題求解。
????圖2-8中,已知已知電壓源us?= 18V,is?= 3A,R1?= 3W,R2?= 12W,R3?= 6W,
C?= 1F,?t?< 0時開關S位于“1”,電路已處于穩(wěn)定狀態(tài)。
(1)t = 0時,開關S閉合到“2”,繪出電容電壓uc?(t) 和R2上電流i2 (t)?的波形。
第一種解法
主函數(shù)
clear all
clc
t=0:10/100:40
%%電路變量初始化
Us=18;is=3;R1=3;R2=12;R3=6;C=1;
%三要素法
Uc0p=-R3/(R1+R3)*Us;
Ucwq=is*R2*R3/(R2+R3);
Req=R2*R3/(R2+R3)
tao=Req*C;
uct=Ucwq+(Uc0p-Ucwq)*exp(-t./tao);
plot(t,uct,'color',[0.8500 0.3250 0.0980],'linewidth',2)
legend('uct')
xlabel('t/s')
ylabel('uct')
figure(2)
i2t=uct./R2;
plot(t,i2t,'-b','linewidth',2)
legend('i2t')
xlabel('t/s')
ylabel('i2t')
?
圖1、0到10s 電容電壓波形uct
?
圖2、0到10s R2電流波形i2t
(2)經過10秒,開關S又復位到“1”,繪出電容電壓uc?(t) 和R2上電流i2 (t)?的波形。
t1=10:10/100:40
Uc0p1=12;
tao1=R1*R3/(R1+R3)
Ucwq1=Uc0p
uct1=Ucwq1+(Uc0p1-Ucwq1)*exp(-(t1-10)./tao1);
figure(3)
subplot(2,1,1)
plot(t1,uct1,'color',[0.8500 0.3250 0.0980],'linewidth',2)
legend('uct')
xlabel('t/s')
ylabel('uct')
i2t1(1:301)=is;
i2t1(1,1)=i2t(1,101)
subplot(2,1,2)
plot(t1,i2t1,'-b','linewidth',2)
legend('i2t')
xlabel('t/s')
ylabel('i2t')
?
圖3、10到40s 電容電壓波形uct、R2電流i2t
第二種解微分方程方法
子函數(shù)DYDt50.m
function yd=DYDt50(t,y) %定義一個函數(shù),函數(shù)名為DYDt50,t、y為輸入變量
Us=18;
is=3;
C=1;
R1=3;
R2=12;
R3=6;
yd=is/C-(R2+R3)/R2/R3/C*y(1); %微分方程的公式
子函數(shù)DYDt25.m
function yd=DYDt25(t,y) %定義一個函數(shù),函數(shù)名為DYDt50,t、y為輸入變量
Us=12;
is=3;
C=1;
R1=3;
R2=12;
R3=6;
yd=-Us/R1/C-y(1)/R3/C; %微分方程的公式
主函數(shù)
clear all
clc
tspan=0:40/100:40
R1=3;
R2=12;
R3=6;
%%電路變量初始化
y0=-12; %初始值為0
[t,Uct]=ode45('DYDt50',tspan,y0); %用ode45函數(shù)求解微分方程,調用前一個函數(shù)
figure(1)
plot(t,Uct(:,1),'color',[0.8500 0.3250 0.0980],'linewidth',2);
legend('uct')
xlabel('t/s')
ylabel('uct')
figure(2)
I2t=Uct./R2
plot(t,I2t(:,1),'-b','linewidth',2);
legend('i2t')
xlabel('t/s')
ylabel('i2t')
I2t0=I2t(26,1)
figure(3)
subplot(2,1,1)
%%電路變量初始化
y0=12; %初始值為0
[t,Uct]=ode45('DYDt25',tspan,y0); %用ode45函數(shù)求解微分方程,調用前一個函數(shù)
t=t+10
plot(t,Uct(:,1),'color',[0.8500 0.3250 0.0980],'linewidth',2);
legend('uct')
xlabel('t/s')
ylabel('uct')
subplot(2,1,2)
I2t(1:101)=3
I2t(1,1)=I2t0
plot(t,I2t(:,1),'-b','linewidth',2);
legend('i2t')
xlabel('t/s')
ylabel('i2t')
?
圖4、0到10s 電容電壓波形Uct