欢迎光临散文网 会员登陆 & 注册

一阶电路matlab编程求解

2022-09-26 23:12 作者:积极向上的小同学  | 我要投稿

 1. 根据2-2,用两种方法对下题求解

    图2-8中,已知已知电压源us = 18V,is = 3A,R1 = 3WR2 = 12WR3 = 6W

C = 1F, t < 0时开关S位于“1”,电路已处于稳定状态。

(1)t = 0时,开关S闭合到“2”,绘出电容电压uc (t) 和R2上电流i2 (t) 的波形。

第一种解法

主函数

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

第二种解微分方程方法

子函数DYDt50.m

function yd=DYDt50(t,y) %定义一个函数,函数名为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); %微分方程的公式

子函数DYDt25.m

function yd=DYDt25(t,y) %定义一个函数,函数名为DYDt50,t、y为输入变量

Us=12;

is=3;

C=1;

R1=3;

R2=12;

R3=6;

yd=-Us/R1/C-y(1)/R3/C; %微分方程的公式

主函数

clear all

clc

tspan=0:40/100:40

R1=3;

R2=12;

R3=6;

%%电路变量初始化

y0=-12; %初始值为0

[t,Uct]=ode45('DYDt50',tspan,y0); %用ode45函数求解微分方程,调用前一个函数

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函数求解微分方程,调用前一个函数

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


一阶电路matlab编程求解的评论 (共 条)

分享到微博请遵守国家法律