RLC串联电路的零状态响应 matlab

发布时间:2014-01-22 17:38:06

RLC串联电路的零状态响应

理学院11级电子信息二班

摘要:一般的电路教材讲述了二阶电路冲击响应,但没有介绍二阶电路零状态响应,这对于理解二阶电路的特性,特别是在正弦交流电源作用下的二阶电路零状态响应特性是不利的。本文推导正弦交流电源作用下的RLC串联电路的零状态响应,利用matlab进行模拟,将电容电压和电感电流的零状态响应曲线描绘出来;根据电路参数设置的不同,分过阻尼、欠阻尼、临界阻尼三种情况讨论。

关键字:RLC串联电路 零状态响应 正弦交流电源 matlab

The zero state response of RLC series circuit
Class two grade 11 Science College of electronic information
Zhao Kun

Abstract: circuit materials generally tells the story of two order circuit impulse response, but not the zero state response of two order circuit, the understanding of characteristics of two order circuit, especially the zero state two order circuit in a sinusoidal AC power supply under the action of the response is negative. The zero state in this paper, a sinusoidal AC power supply under the action of the RLC series circuit response, was simulated with MATLAB, the zero state of capacitance voltage and inductance current response curve traced; according to the circuit parameter set is different, is divided over damping, less discussed, three kinds of critical damping damping.
Keywords: RLC series circuit, the zero state response to sinusoidal AC power supply matlab

1、 引言

电路原理是电子信息学科的主干课程,也是高等学校电子信息与电气信息类专业的基础课程,在电类专业学生知识结构中处于关键地位。其特点是理论性强,课堂教学偏重于对电路理论的讲解及具体电路模型的分析,多余冗杂的数学推导,学生对教学内容缺乏感性认识,觉得枯燥无味。另一方面,在实验环节中,现有的电路装置大多是模块化设计,很大程度上限制了学生的思维和实际动手能力,实验与理论结合的不紧密。为把抽象的电路分析简单化、形象化,自己动手将自己建立的方程用计算机实现出来,将枯燥的数字用图形显示出,更能激发学生的学习兴趣,巩固理论知识,到达更好的教效果。

在众多的编程软件中,matlab具有高度互动、易于使用、工具箱齐全、数值计算和画图模拟方便等优点,可以对RLC串联电路的零状态响应进行全面的分析,让我们对RLC串联电路有了更清楚的认识,同时对我们的思维能力和动手能力是一个很好的锻炼。便于学生更好地理解课堂教学内容,使理论教学与实验结合的更紧密。

2、 基本原理

根据所学知识,零状态响应可以由电路的冲激响应与电源信号的卷积得到,因此先根据所学的课堂知识得到电路的冲击响应。

2.1 先根据图1求出RLC串联电路的微分方程

1 RLC串联电路

根据基尔霍夫电流定律:

1

根据元件之间的关系:

2

3

得到RLC串联电路的微分方程:

4

2.2 求出电路的冲击响应

当电路电源信号为时,电容两端电压随时间变化的函数为电路的冲激响应。冲激响应为:

5

根据电路中电压电流的关系,得到电感电流的冲激响应:

6

其中:

7

8

9

2.3 电路的状态分析

电路的冲激响应函数的具体形式与特征根有关,可以是两个不等的负实根,可以是一对实部为负的共轭复根,可以是一对相等的负实根。分三种情况:

1 特征根是两个不等的负实根,此时为过阻尼情形。

2 特征根是一对实部为负的共轭复根。

3 特征根是一对相等的负实根。

2.4 问题的一些简化

将电源信号默认为正弦交流信号;

程序自己给定一些RLCw,保证上面的三种情况的出现。

3、程序设计的思路

3.1 物理问题的抽象

前面提到的求电路的零状态响应的时候,利用冲激响应与电源信号的卷积得到,根据卷积的性质:

10

因此利用matlab里提供的积分函数:

Uc=int(UU,t1,t,0);

UU表示被积函数,t1表示积分对象,t表示积分的上限,0表示积分的下限。

3.2 交互界面的设计

由于该冲激响应对应三种不同的情况,对应有不同的零状态响应,因此设计了一个简单的界面,来供用户选择,并且让电容电压的零状态响应和电感电流的零状态响应同时在交互界面中显示出来,方便分析研究。设计的交互界面如图2

2 RLC串联电路零状态响应分析系统

设计该界面时涉及到的一些常用函数:

主界面函数及其参数的设置:

titlestr='RLC串联电路零状态响应分析系统-赵昆';

handles.figure=figure('unit','normalized','position',[0.1,0.16,0.5,0.8],'Color',[0.9,0.9,0.9],'menubar','none',’numbertitle’, 'off','defaultuicontrolunits','normalized','defaultuicontrolhorizontal','left','name',titlestr);

静态文本框的设置:

h_text=uicontrol('style','text','unit','normalized','position',[0.7,0.70,0.27,0.24],'horizontal','left','string',{'该程序以sinwt)作为电路的输入信号,当电阻R、电感L、电容C、信号频率w取不同值时,零状态响应主要有以下三种情况'},'FontSize',14, 'backgroundcolor' ,[1 0.5 0]);

坐标方格的建立:用来显示电容电压和电感电流的零状态响应。

axes1=axes('Units','normalized','position',[0.05,0.55,0.62,0.40],... %左边图的一些参数

'FontUnits','normalized','FontSize',0.035,'visible','on');

axes11=axes('Units','normalized','position',[0.05,0.05,0.62,0.43],... %左边图的一些参数

'FontUnits','normalized','FontSize',0.035,'visible','on');

按钮的设置:由于零状态响应对应三种情况,因此在交互界面上设置了三个按钮。

push=uicontrol('Style','pushbutton', 'position',[0.75,0.57,0.15,0.054],... 'string','','FontUnits','normalized','FontSize',0.5,'callback',@gzn);

push1=uicontrol('Style','pushbutton', 'position',[0.75,0.47,0.15,0.054],... 'string',’','FontUnits','normalized','FontSize',0.5,'callback',@qzn);

push2=uicontrol('Style','pushbutton', 'position',[0.75,0.37,0.15,0.054],... 'string','','FontUnits','normalized','FontSize',0.5,'callback',@lzn);

@gzn@qzn@lzn:调用各自的回调函数,来得到各自的零状态响应。

3.3回调函数的编写

符号变量的申明

w=sym('w');

t1=sym('t1');

L=sym('L');

C=sym('C');

t=sym('t');

R=sym('R');

公式的编写,由于程序运行用到原理里面推导的公式和方程,因此首先进行公式的编写,以冲激响应为例:

Us=sin(w*t1); %输入电压信号

Ut=1/(L*C*(S1-S2))*((exp(S1*(t-t1)))-exp(S2*(t-t1))); %冲击响应

UU=Us*Ut;

Uc=int(UU,t1,t,0); %电容两端电压的零状态响应

It=C*diff(Uc,t); %电感两端电流的零状态响应符号变量转换为数值进行计算:

符号函数转换为数值计算

IIt=subs(It,{R,L,C,w},{1,0.5,2.5,10*pi});

UUc=subs(Uc,{R,L,C,w},{1,0.5,2.5,10*pi});

画图函数和图形标题的设置:

plot(axes1,tt,UUU);

plot(axes11,tt,III);

ylim(axes11,[-1 1]);

text1=text('position',[1,0,0],'String','过阻尼情况下U(t)随时间t变化情况','parent',axes1);

text2=text('position',[1,0.6,0],'String','过阻尼情况下I(t)随时间t变化情况','parent',axes11);

end

4、模拟结果及分析

由于电源信号的多种多样给分析带来不便,在这里将电源信号默认为正弦交流信号,方便分析,并且其中的一些参数也是根据根的三种情况来设置的。

1)在过阻尼情况下,取,;得到的模拟图3

3 过阻尼情况下电路的零状态响应

2)欠阻尼情况,取 ;得到的模拟图4.

4 阻尼情况下电路的零状态响应

3)在临界阻尼情况下,取,得到的模拟图5

5 临界阻尼情况下电路的零状态响应

从图3、图4、图5可以看出在RLC串联电路的元件参数不同时,输入相同的电源信号,最后求得的电容电压和电感电流的零状态响应有很大的区别,从图中可以定性的分析RLC串联电路的一些性质:在过阻尼情况下,从图3可以看出,电容两端电压随时间的变化比较大,而电感电流相对时间的变化较小的多;在欠阻尼情况下,从图4可以看出,电容两端电压相对过阻尼情况变化较小,但起伏仍然比较大,而电感电流与过阻尼情况下相差不大;在临界阻尼的情况下,电容两端电压随时间呈现规律性变化,相对过阻尼和欠阻尼情况下,电压的波动相对来说要小的多,而电感电流和电容电压一样呈现规律性变化。

五、参考文献

1 高翠云,汪莉丽. 利用 Matlab 进行电磁学计算及可视化教学

J]. 南京: 电气电子教学学报,200628( 2) : 90-92

2 吕秀丽等. 基于 Matlab 的矩形波导场分布仿真实验研究[J].

北京: 实验技术与管理,201027( 3) : 74-77

3 刘广东等,王春雨. 基于 CST 的偶极子天线虚拟实验[J].

: 大学物理实验,201124( 4) : 58-60

4 谢拥军,刘莹,李磊等. HFSS 原理与工程应用[M]. 北京:

学出版社,2009

六、附录

function [varargout] = RLC1(varargin)

titlestr='RLC串联电路零状态响应分析系统-赵昆';

handles.figure=figure('unit','normalized','position',[0.1,0.16,0.5,0.8],... %主界面的一些参数

'Color',[0.9,0.9,0.9],... %<3>

'menubar','none',...

'numbertitle','off',...

'defaultuicontrolunits','normalized',...

'defaultuicontrolhorizontal','left',...

'name',titlestr);

axes1=axes('Units','normalized','position',[0.05,0.55,0.62,0.40],... %左边图的一些参数

'FontUnits','normalized','FontSize',0.035,'visible','on');

axes11=axes('Units','normalized','position',[0.05,0.05,0.62,0.43],... %左边图的一些参数

'FontUnits','normalized','FontSize',0.035,'visible','on');

h_text=uicontrol('style','text','unit','normalized','position',[0.7,0.70,0.27,0.24],...

'horizontal','left','string',{'该程序以sinwt)作为电路的输入信号,当电阻R、电感L、电容C、信号频率w取不同值时,零状态响应主要有以下三种情况'},...

'FontSize',14, 'backgroundcolor' ,[1 0.5 0]);

push=uicontrol('Style','pushbutton', 'position',[0.75,0.57,0.15,0.054],...

'string','过阻尼情况','FontUnits','normalized','FontSize',0.5,'callback',@gzn);

push1=uicontrol('Style','pushbutton', 'position',[0.75,0.47,0.15,0.054],...

'string','欠阻尼情况','FontUnits','normalized','FontSize',0.5,'callback',@qzn);

push2=uicontrol('Style','pushbutton', 'position',[0.75,0.37,0.15,0.054],...

'string','临界阻尼情况','FontUnits','normalized','FontSize',0.5,'callback',@lzn);

%先求出其冲击响应

%过阻尼

function [varargout] = gzn(push,eventdata,handles)

w=sym('w');

t1=sym('t1');

L=sym('L');

C=sym('C');

t=sym('t');

R=sym('R');

w0=1/sqrt(L*C);

a=R/(2*L);

S1=-a+sqrt(a^2-w0^2);

S2=-a-sqrt(a^2-w0^2);

Us=sin(w*t1); %输入电压信号

Ut=1/(L*C*(S1-S2))*((exp(S1*(t-t1)))-exp(S2*(t-t1))); %冲击响应

UU=Us*Ut;

Uc=int(UU,t1,t,0); %电容两端电压的零状态响应

It=C*diff(Uc,t); %电感两端电流的零状态响应

IIt=subs(It,{R,L,C,w},{1,0.5,2.5,10*pi});

UUc=subs(Uc,{R,L,C,w},{1,0.5,2.5,10*pi});

UUU=subs(UUc,t,[0:0.01:10]);

III=subs(IIt,t,[0:0.01:10]);

tt=[0:0.01:10];

plot(axes1,tt,UUU);

plot(axes11,tt,III);

ylim(axes11,[-1 1]);

text1=text('position',[1,0,0],'String','过阻尼情况下U(t)随时间t变化情况','parent',axes1);

text2=text('position',[1,0.6,0],'String','过阻尼情况下I(t)随时间t变化情况','parent',axes11);

end

%欠阻尼情况

function [varargout] = qzn( push,eventdata,handles)

w=sym('w');

t1=sym('t1');

L=sym('L');

C=sym('C');

t=sym('t');

R=sym('R');

w0=1/sqrt(L*C);

a=R/(2*L);

Wd=sqrt(w0^2-a^2);

S1=-a+Wd*j;

S2=-a-Wd*j;

Ut=w0^2/Wd*exp(-a*(t-t1))*sin(Wd*(t-t1));

Us=sin(w*t1);

UU=Ut*Us;

Uc=int(UU,t1,t,0);

It=C*diff(Uc,t);

IIt=subs(It,{R,L,C,w},{2,1,0.01,10*pi});

UUc=subs(Uc,{R,L,C,w},{2,1,0.01,10*pi});

UUU=subs(UUc,t,[0:0.01:10]);

III=subs(IIt,t,[0:0.01:10]);

tt=[0:0.01:10];

plot(axes1,tt,UUU);

plot(axes11,tt,III);

ylim(axes11,[-0.4 0.4]);

text1=text('position',[2.0,0.3,0],'String','欠阻尼情况下U(t)随时间t变化情况','parent',axes1);

text2=text('position',[2.0,0.2,0],'String','欠阻尼情况下I(t)随时间t变化情况','parent',axes11);

end

function [varargout] = lzn(push,eventdata,handles )

w=sym('w');

t1=sym('t1');

L=sym('L');

C=sym('C');

t=sym('t');

R=sym('R');

R=2*L/sqrt(L*C);

a=R/(2*L);

Ut=(t-t1)/(L*C)*exp(-a*(t-t1));

Us=sin(w*t1);

UU=Ut*Us;

Uc=int(UU,t1,t,0);

It=C*diff(Uc,t);

IIt=subs(It,{L,C,w},{0.5,0.0001,100*pi});

UUc=subs(Uc,{L,C,w},{0.5,0.0001,100*pi});

UUU=subs(UUc,t,[0:0.0001:0.1]);

III=subs(IIt,t,[0:0.0001:0.1]);

tt=[0:0.0001:0.1];

plot(axes1,tt,UUU);

plot(axes11,tt,III);

ylim(axes11,[-0.04 0.04]);

text1=text('position',[0.020,0.2,0],'String','临界阻尼情况下U(t)随时间t变化情况','parent',axes1);

text2=text('position',[0.020,0.02,0],'String','临界阻尼情况下I(t)随时间t变化情况','parent',axes11);

end

end

RLC串联电路的零状态响应 matlab

相关推荐