1. 实验内容与任务实验内容: 编程实现可分析动态电路暂态响应过程的程序 任务包含:1、实现一个良好交互界面的应用程序;2、输入一阶电容电路参数,分析零状态、零输入响应过程;3、输入一阶电感电路参数,分析零状态、零输入响应过程;4、输入二阶动态电路参数,进行全响应分析;5、生动的展现各种分析结果。2.实验方法运行环境:MATLABb原理简介实验的交互界面:利用MATLAB中的guide引出设计交互界面。首先引出主界面,其中主界面用按钮分引出开不同的模块,包含一阶RC电路的零输入,零状态,全响应,一阶RL电路的零输入,零状态,全响应,二阶电路的零输入,零状态,全响应。如图 一阶RC电路的零输入:新打开一个guide函数,将其命名为rc1,在其界面上实现初始电容电压U0,电阻R,电容C的输入。文本框时间常数以及图像实现时间常数的输出以及图表的绘制。再通过按钮将其callback对其界面实现进一步的操作。(m为时间常数)str1=get(handles.edit1,'String');U0=str2num(str1);%实现对数值的读入str3=num2str(m);set(handles.edit3,'String',str3);%实现对数值的输出t=0:0.5:4*m;U=U0*exp(-t/m);plot(handles.tu,t,U,'b');set(handles.tu,'XGrid','on','YGrid','on');xlabel(handles.tu,'时间/(S)');ylabel(handles.tu,'电容两端的电压/(V)');title(handles.tu,'一阶RC零输入响应');%实现表格的输出其结果如图 设置电容电压为10V,电阻为1Ω,电容C为1F,输出时间常数为1s。一阶RC电路的零状态:与上述内容类似,零状态需要给出外加电压源,电容原状态电压为零,实现对RC电路相关内容的读入。利用函数U=U0*(1-exp(-t/m))实现对电容两端电压的求值。并将其时间常数与图像输出。如图 输入电压源电压为10v,电阻R为1Ω,电容为1F,输出时间常数为1s一阶RC全响应:结合上述两种状态,实现对全响应电路的设计。输入电压源电压U0,电阻R,电容原电压U,电容C的值。利用函数U=(U1-U0)*exp(-t/m)+U0求出相关电压值的改变函数。将求得的时间常数与图像输出。如图 电压源电压U0=10v,电阻R=1Ω,电容原电压U=2v,电容C=1F。输出时间常数1s一阶RL电路的零输入:与RC电路相同,只不过RL电路中将电容换成了电感,输入初始电路中的电流为I0,电阻R,电感L。求出电路中的电流I随时间的变化以及时间常数L/R。将求的时间常数与图像输出。如图 初始电路中的电流为I0=10A,电阻R=1Ω,电感L=1H,输出时间常数t=1s。一阶RL电路的零状态:初始时经过电感的电流为0,给电路加上电流源,电流为I0,其余不改变。输入电流源电流,电阻R,电感L。求出电路中的电流I随时间的变化以及时间常数L/R。将时间常数与图像输出。如图 初始电路中的电压源电流为I0=10A,电阻R=1Ω,电感L=1H,输出时间常数t=1s。一阶RL电路的全响应:结合一阶RL电路的零状态与零输入响应,分析全响应电路。全响应电路中应包含初始状态流经电感的电流,以及开关合上时的电流源。输入电流源电流I,流经电感初始电流I0,电感L,电阻R。根据公式解出电流随时间的改变以及电路中的时间常数。将时间常数与电流随时间变化图像输出。如图 初始电路中的电压源电流为I0=10A,初始电感电流I=1A,电阻R=1Ω,电感L=1H,输出时间常数t=1s。二阶电路的零输入:在二阶电路中,包含电容与电感。零输入电路电容两端电压为U0,流经电感的电流为I0。根据电路书上的相关内容,用if语句分别区分R与2√L/C的关系,控制分别进行不同状态下的计算。输入初始电容电压U0,流经电感电流I,电阻R,电容C,电感L。计算得电容两端电压随时间的改变,流经电感电流随时间的改变。利用函数plot(handles.axes1,t,Uc,'b',t,i,'r');set(handles.axes1,'XGrid','on','YGrid','on');xlabel(handles.axes1,'时间/(S)');ylabel(handles.axes1,'通过电感的电流/(A)','通过电容的电压/(V)');legend(handles.axes1,'电感电流随时间变化','电容电压随时间变化')title(handles.axes1,'二阶零输入响应')实现输出图像中的两条曲线。如图: 初始电容电压U0=10v,流经电感电流I=1A,电阻R=10Ω,电容C=2F,电感L=2H。二阶零状态电路:零状态电路中外加电流源提供电流,流经电感初始电流为0,电容两端的初始电压为0(即电感电流的一阶导数),输入电流源电流I0,电阻R,电容C,电感L。根据MATLAB本身具有的优点,列出零状态时的方程求解流经电感电流的表达式,并将其求导进一步求得电容电压的变化。带入相关的表达式中,画出电感电流与电容电压随时间的变化图像。不需要考虑具体的非振荡放电,振荡放电与临界情况,在MATLAB中,下面函数已经包涵这三种情况。i=I0 - (I0*exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*(L*(L - 4*C*R^2))^(1/2)) + (I0*exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*(L*(L - 4*C*R^2))^(1/2));u=L*((I0*exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2))*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2)) - (I0*exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2))*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2)));如图 初始电流源电流I=10A,电阻R=2Ω,电容C=3F,电感L=4H。二阶全响应电路:根据二阶零状态电路的思路,二阶全响应电路中不同的是流经电感两端的初始电流值不为零,电容两端的电压存在。在用MATLAB解所得方程时,要将初始值带入。输入电流源电流I,电阻R,电容原电压U0,电感初始电流I0,电容C,电感L。i=I- (exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L*I0 - I*L +I*(L*(- 4*C*R^2 + L))^(1/2) - I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(2*(L*(L - 4*C*R^2))^(1/2)) + (exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L*I0 - I*L - I*(L*(- 4*C*R^2 + L))^(1/2) + I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(2*(L*(L - 4*C*R^2))^(1/2));y3=(exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L + (L*(- 4*C*R^2 + L))^(1/2))*(L*I0 - I*L + I*(L*(- 4*C*R^2 + L))^(1/2) - I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2)) - (exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2))*(L*I0 - I*L - I*(L*(- 4*C*R^2 + L))^(1/2) + I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2));u=L*y3;输出电感电流随时间变化以及电容电压随时间的变化。如图 初始电流源电流I=10A,电阻R=2Ω,电容C=1F,电感L=10H,电容原电压4v,电感原电流2A编程流程图性动态电路可视化分析
1.实验内容与任务
实验内容: 编程实现可分析动态电路暂态响应过程的程序
任务包含:
1、实现一个良好交互界面的应用程序;
2、输入一阶电容电路参数,分析零状态、零输入响应过程;
3、输入一阶电感电路参数,分析零状态、零输入响应过程;
4、输入二阶动态电路参数,进行全响应分析;
5、生动的展现各种分析结果。
2.实验方法
运行环境:MATLABb
原理简介
实验的交互界面:
利用MATLAB中的guide引出设计交互界面。首先引出主界面,其中主界面用按钮分引出开不同的模块,包含一阶RC电路的零输入,零状态,全响应,一阶RL电路的零输入,零状态,全响应,二阶电路的零输入,零状态,全响应。
如图
一阶RC电路的零输入:
新打开一个guide函数,将其命名为rc1,在其界面上实现初始电容电压U0,电阻R,电容C的输入。文本框时间常数以及图像实现时间常数的输出以及图表的绘制。再通过按钮将其callback对其界面实现进一步的操作。(m为时间常数)
str1=get(handles.edit1,'String');
U0=str2num(str1);
%实现对数值的读入
str3=num2str(m);
set(handles.edit3,'String',str3);
%实现对数值的输出
t=0:0.5:4*m;
U=U0*exp(-t/m);
plot(handles.tu,t,U,'b');
set(handles.tu,'XGrid','on','YGrid','on');
xlabel(handles.tu,'时间/(S)');
ylabel(handles.tu,'电容两端的电压/(V)');
title(handles.tu,'一阶RC零输入响应');
%实现表格的输出
其结果如图
设置电容电压为10V,电阻为1Ω,电容C为1F,输出时间常数为1s。
一阶RC电路的零状态:
与上述内容类似,零状态需要给出外加电压源,电容原状态电压为零,实现对RC电路相关内容的读入。利用函数U=U0*(1-exp(-t/m))实现对电容两端电压的求值。并将其时间常数与图像输出。
如图
输入电压源电压为10v,电阻R为1Ω,电容为1F,输出时间常数为1s
一阶RC全响应:
结合上述两种状态,实现对全响应电路的设计。输入电压源电压U0,电阻R,电容原电压U,电容C的值。利用函数U=(U1-U0)*exp(-t/m)+U0求出相关电压值的改变函数。将求得的时间常数与图像输出。
如图
电压源电压U0=10v,电阻R=1Ω,电容原电压U=2v,电容C=1F。输出时间常数1s
一阶RL电路的零输入:
与RC电路相同,只不过RL电路中将电容换成了电感,输入初始电路中的电流为I0,电阻R,电感L。求出电路中的电流I随时间的变化以及时间常数L/R。将求的时间常数与图像输出。
如图
初始电路中的电流为I0=10A,电阻R=1Ω,电感L=1H,输出时间常数t=1s。
一阶RL电路的零状态:
初始时经过电感的电流为0,给电路加上电流源,电流为I0,其余不改变。输入电流源电流,电阻R,电感L。求出电路中的电流I随时间的变化以及时间常数L/R。
将时间常数与图像输出。
如图
初始电路中的电压源电流为I0=10A,电阻R=1Ω,电感L=1H,输出时间常数t=1s。
一阶RL电路的全响应:
结合一阶RL电路的零状态与零输入响应,分析全响应电路。全响应电路中应包含初始状态流经电感的电流,以及开关合上时的电流源。输入电流源电流I,流经电感初始电流I0,电感L,电阻R。根据公式解出电流随时间的改变以及电路中的时间常数。将时间常数与电流随时间变化图像输出。
如图
初始电路中的电压源电流为I0=10A,初始电感电流I=1A,电阻R=1Ω,电感L=1H,输出时间常数t=1s。
二阶电路的零输入:
在二阶电路中,包含电容与电感。零输入电路电容两端电压为U0,流经电感的电流为I0。根据电路书上的相关内容,用if语句分别区分R与2√L/C的关系,控制分别进行不同状态下的计算。
输入初始电容电压U0,流经电感电流I,电阻R,电容C,电感L。计算得电容两端电压随时间的改变,流经电感电流随时间的改变。
利用函数
plot(handles.axes1,t,Uc,'b',t,i,'r');
set(handles.axes1,'XGrid','on','YGrid','on');
xlabel(handles.axes1,'时间/(S)');
ylabel(handles.axes1,'通过电感的电流/(A)','通过电容的电压/(V)');
legend(handles.axes1,'电感电流随时间变化','电容电压随时间变化')
title(handles.axes1,'二阶零输入响应')
实现输出图像中的两条曲线。
如图:
初始电容电压U0=10v,流经电感电流I=1A,电阻R=10Ω,电容C=2F,电感L=2H。
二阶零状态电路:
零状态电路中外加电流源提供电流,流经电感初始电流为0,电容两端的初始电压为0(即电感电流的一阶导数),输入电流源电流I0,电阻R,电容C,电感L。根据MATLAB本身具有的优点,列出零状态时的方程求解流经电感电流的表达式,并将其求导进一步求得电容电压的变化。带入相关的表达式中,画出电感电流与电容电压随时间的变化图像。
不需要考虑具体的非振荡放电,振荡放电与临界情况,在MATLAB中,下面函数已经包涵这三种情况。
i=I0 - (I0*exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*(L*(L - 4*C*R^2))^(1/2)) + (I0*exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*(L*(L - 4*C*R^2))^(1/2));
u=L*((I0*exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2))*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2)) - (I0*exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2))*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2)));
如图
初始电流源电流I=10A,电阻R=2Ω,电容C=3F,电感L=4H。
二阶全响应电路:
根据二阶零状态电路的思路,二阶全响应电路中不同的是流经电感两端的初始电流值不为零,电容两端的电压存在。在用MATLAB解所得方程时,要将初始值带入。
输入电流源电流I,电阻R,电容原电压U0,电感初始电流I0,电容C,电感L。
i=I- (exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L*I0 - I*L +I*(L*(- 4*C*R^2 + L))^(1/2) - I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(2*(L*(L - 4*C*R^2))^(1/2)) + (exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L*I0 - I*L - I*(L*(- 4*C*R^2 + L))^(1/2) + I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(2*(L*(L - 4*C*R^2))^(1/2));
y3=(exp(-(t*(L + (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L + (L*(- 4*C*R^2 + L))^(1/2))*(L*I0 - I*L + I*(L*(- 4*C*R^2 + L))^(1/2) - I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2)) - (exp(-(t*(L - (L*(- 4*C*R^2 + L))^(1/2)))/(2*C*L*R))*(L - (L*(- 4*C*R^2 + L))^(1/2))*(L*I0 - I*L - I*(L*(- 4*C*R^2 + L))^(1/2) + I0*(L*(- 4*C*R^2 + L))^(1/2) + 2*C*R*U0))/(4*C*L*R*(L*(L - 4*C*R^2))^(1/2));
u=L*y3;
输出电感电流随时间变化以及电容电压随时间的变化。
如图
初始电流源电流I=10A,电阻R=2Ω,电容C=1F,电感L=10H,电容原电压4v,电感原电流2A
禁止转载
如果觉得《一阶电路暂态响应的结果分析。_线性动态电路可视化分析》对你有帮助,请点赞、收藏,并留下你的观点哦!