利用 MATLAB GUI进行动态电路可视化分析

在学习完电路的动态电路知识后,作为物联网专业的大二萌新(嗯嗯嗯,对对对),思考如何将电路知识与专业相结合,更加直观的分析电路呢?这里选择利用MATLAB的GUI界面,来设计程序对一阶/二阶动态电路进行分析。

预期目标:

1、实现一个良好交互界面的应用程序;
2、输入一阶电容电路参数,分析零状态、零输入响应过程;
3、输入一阶电感电路参数,分析零状态、零输入响应过程;
4、输入二阶动态电路参数,进行全响应分析;
5、生动的展现各种分析结果。
6、实现对电路元件、电路结构的建模;
7、对建模电路进行自动暂态过程分析。

开发环境:

开发环境:windows 10,64位
使用工具:MATLAB R2019b


设计思路

第一步

分析要求(产品经理nb~),理清具体要求,由于电路类型多,情况复杂,在同一界面下完成比较困难,可把不同电路分成几幅图,设计一个首页,调用不同的图;
通过下拉选择框,进行选择不同电路类型,即在popupmenu1_Callback下,构造一个全局变量JM(自己随便定义的),用来记录选择的内容值,并把值传给pushbutton_Callback,在按下“确认”键之后,根据不同的JM值,来选择需要打开的动态电路分析模型

第二步

子菜单设计,根据要求分为了七个模块,即一阶RL/RC零输入,零输入,全响应,二阶全响应;对于每一个菜单栏进行设计,根据动态电路,设计需要的模块,例如,对于一阶RL电路,用静态文本框,显示了初始电压,电感,电阻,时间常数等名称,在用可输入文本框作给赋值,或者值得传递;再设计坐标轴,画出电感两端电流值随时间的变化情况;
button_Callback

str2=get(handles.edit2,'string');%获取输入框的值
str3=get(handles.edit3,'string');
str4=get(handles.edit4,'string');
global U to %定义全局变量
R=str2double(str2);
U=str2double(str3);
C=str2double(str4);
to=R*C;
str1=num2str(to);
set(handles.edit1,'string',str1);
t=0:0.01:5;
Uc=U*exp(-t/to);
plot(handles.axis1,Uc);
title('一阶RC零输入');
ylabel('电容两端电压U/V');
xlabel('时间T/s');
%hold on %如果希望保持上次作图界面,注释去掉
grid on
第三步

获取某一时刻的电压/电流值,调用矩形拖动框,在slider1_Callback
下,调用刚才全局变量参数,用get(handles.slider1,'value');获取拖动框对应的值,在根据比例,转化为对应的时间t(用edit框显示出来),根据时间t,算出该时刻的电压/电流值,set(handles.edit8,'string',str8);传输到界面显示;

global U to
t0=get(handles.slider1,'value');
set(handles.edit9,'string',t0);
u=U*exp(-t0/to);
str8=num2str(u);
set(handles.edit8,'string',str8);
第四步

其他,一阶电路设计基本思路类似,只是参数和微分方程变化。
对于二阶而言,需要解微分方程组(虽然有解的公式,但是,这更简单粗暴,更具普适性)

syms uc(t) il(t);
conduc = uc(0) == Us;
condil = il(0) == I;
ode1=diff(uc)==il/C;
ode2=diff(il)==-uc/L -R*il/L +Us/L;
odes=[ode1;ode2];
conds=[conduc;condil];
[ua(t),ia(t)]=dsolve(odes,conds);
ui(t)=Us-R*ia-ua;  %计算电感两端电压
fplot(handles.axis1,t,ua);
 hold on
fplot(handles.axis1,t,ui);
title('二阶全响应');
ylabel('电压U/V');
xlabel('时间T/s');
grid on
legend('电容电压','电感电压','Location','best')

🆗,大概基本完成可以进行调试了;
结果图如下:
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值