Matlab实现 线性动态电路可视化分析

Matlab实现 线性动态电路可视化分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

编程思路

这个编程总体采用面向过程的编程思想,将人在处理线性动态电路问题时的一般思路用计算机仿真。本人采用matlab软件实现这一过程,具体思路如下:

  1. 利用合理的gui界面帮助用户选择适合的电路类型,之后将电路各元器件信息逐一输入计算机;
  2. 对于一阶动态电路,响应电压或电流的表达式基本是固定的,运用matlab软件以及输入的参数建立响应电压或电流的函数,并在gui
    界面输出图像,自变量取值范围为0-8T(T为时间常数);
  3. 对于二阶动态电路的全响应(电路结构固定的情况),根据KCL或KVL
    列出的二阶微分方程的形式是一样的,可以利用matlab中的相应函
    数求解方程,并在相应的范围内输出函数图像。

实例演示

有如下电路:
二阶动态电路
打开程序后界面如下图所示:

程序主界面

之后根据电路选择“二阶动态电路全响应”,并依次输入每个元器件的信息,绘制图像:
动态分析界面
在时间一栏输入时间值,即可计算相应的电流。
输入时间计算电流

注意:本程序只能解决固定电路结构的动态电路分析,一阶电路为RC串联电路与RL并联电路,二阶电路为LC并联后与电阻串联的电路,对于别的电路大家可以自己尝试,这里不再赘余。

Matlab源代码

这里只摘出“显示图像”按钮的Callback函数,其他控件函数不显示

一阶RC电路零输入响应:

function pushbutton2_Callback(hObject, eventdata, handles)
str1=get(handles.edit1,'string');
U=str2double(str1);
str2=get(handles.edit3,'string');
R=str2double(str2);
str3=get(handles.edit7,'string');
C=str2double(str3);
axes(handles.axes1);
t=R*C;   %t为时间常数
x=0:0.1:8*t;   %时间取值范围为0到8t
y=U*exp(-x/(R*C));   %   电容电压表达式
plot(x,y);   %画出图像
xlabel('t/s');
ylabel('Uc/V');   %设置坐标
str4=num2str(t);
set(handles.edit9,'string',str4);   %输出时间常数

其他一阶电路与之类似,不再具体列出。
二阶动态电路全响应(电路结构与实例类似):

function pushbutton2_Callback(hObject, eventdata, handles)
str1=get(handles.edit1,'string');
Is=str2double(str1);
str2=get(handles.edit3,'string');
R=str2double(str2);
str3=get(handles.edit7,'string');
C=str2double(str3);
str4=get(handles.edit12,'string');
L=str2double(str4);
str5=get(handles.edit10,'string');
Uc=str2double(str5);
str6=get(handles.edit11,'string');
Il=str2double(str6);
axes(handles.axes1);
f=dsolve('R*L*C*D2y+L*(Dy)+y*R=Is','y(0)=Il','(Dy)(0)*L=Uc','x');  %用matlab自带的函数求解微分方程
g = subs(f);  %将变量具体值带入
fplot(g,[0,0.0900]);  %做出图像,时间取值为0到0.09
xlabel('t/s');
ylabel('Il/A');   %设置坐标轴

参考文献

  1. 电路(第五版)—邱关源,罗先觉 著 -ISBN 978-7-04-19671-9 高等教育出版社.

(第一次写博客,希望能帮到大家!)

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值