完成以下四个目标
1、输入一阶电容电路参数,分析零状态、零输入、全响应过程;
2、输入一阶电感电路参数,分析零状态、零输入、全响应过程;
3、输入二阶动态电路参数,进行全响应分析;
4、用人机交互界面实现以上;

首先,我用的实现人机交互界面的开发工具是Matlab的GUI
我们先建立一个GUI界面
通过点击这个界面的七个选项,选择进入相应的交互界面
接下来我们分别建立这七个选项的GUI界面

以一阶RC零输入响应为例,我们建立静态文本表述可编辑文本框应该输入的数据,用滑动条滑动改变时间,在坐标轴绘出电容的电压曲线,建立两个文本框分别输出时间常数和指定时间的电压。
接下来给出代码

实现从第一个选择界面跳转到指定界面的一个按钮

function pushbuttonRC1_Callback(hObject, eventdata, handles)
h=gcf;
untitled15;%这里是你写的对应GUI代码的名称
close(h);

实现一阶RC零输入响应的GUI运行按钮(这里具体写一下代码对应GUI界面的操作)

str1=get(handles.editU,'String');%把输入U的文本框的tag改成editU,下面同理
str2=get(handles.editR,'String');
str3=get(handles.editC,'String');
str4=get(handles.editt1,'String');
str5=get(handles.editt2,'String');
str6=get(handles.editt3,'String');
U=str2double(str1);
R=str2double(str2);
C=str2double(str3);
t1=str2double(str4);
t2=str2double(str5);
t3=str2double(str6);
to=R*C;
str7=num2str(to);
set(handles.edit4,'String',str7);
t=t1:t3:t2;
Uc=U*exp(-t/to);
plot(handles.axes1,t,Uc);
title('一阶RC零输入响应');
ylabel('U/V');
xlabel('t/s');
t0=get(handles.slider5,'Value');%记得在GUI界面中把滑动条的max改成30,tag改成slider5
set(handles.editt,'String',t0);
u=U*exp(-t0/to);
str8=num2str(u);
set(handles.edit10,'string',str8);

实现任何一个按钮的停止命令

close

实现一阶RC零状态响应的GUI运行按钮

str1=get(handles.editU,'String');
str2=get(handles.editR,'String');
str3=get(handles.editC,'String');
str4=get(handles.editt1,'String');
str5=get(handles.editt2,'String');
str6=get(handles.editt3,'String');
U=str2double(str1);
R=str2double(str2);
C=str2double(str3);
t1=str2double(str4);
t2=str2double(str5);
t3=str2double(str6);
to=R*C;
str7=num2str(to);
set(handles.edit8,'String',str7);
t=t1:t3:t2;
Uc=U-U*exp(-t/to);
plot(handles.axes1,t,Uc);
title('一阶RC零状态响应');
ylabel('U/V');
xlabel('t/s');
t0=get(handles.slider5,'Value');
set(handles.edit11,'String',t0);
u=U*exp(-t0/to);
str8=num2str(u);
set(handles.edit10,'string',str8);

实现一阶RC全响应的GUI运行按钮

str1=get(handles.editUc,'String');
str2=get(handles.editUs,'String');
str3=get(handles.editR,'String');
str4=get(handles.editC,'String');
str5=get(handles.editt1,'String');
str6=get(handles.editt2,'String');
str7=get(handles.editt3,'String');
Uc=str2double(str1);
Us=str2double(str2);
R=str2double(str3);
C=str2double(str4);
t1=str2double(str5);
t2=str2double(str6);
t3=str2double(str7);
to=R*C;
str8=num2str(to);
set(handles.edit4,'String',str8);
t=t1:t3:t2;
U=Uc*exp(-t/to)+Us*(1-exp(-t/to));
plot(handles.axes1,t,U);
title('一阶RC全响应');
ylabel('U/V');
xlabel('t/s');
t0=get(handles.slider5,'Value');
set(handles.editt,'String',t0);
u=Uc*exp(-t0/to)+Us*(1-exp(-t0/to));
str9=num2str(u);
set(handles.edit10,'string',str9);

实现一阶RL零输入响应的GUI运行按钮

str1=get(handles.editI,'String');
str2=get(handles.editR,'String');
str3=get(handles.editL,'String');
str4=get(handles.editt1,'String');
str5=get(handles.editt2,'String');
str6=get(handles.editt3,'String');
str7=get(handles.edit7,'String');
Io=str2double(str1);
R=str2double(str2);
L=str2double(str3);
t1=str2double(str4);
t2=str2double(str5);
t3=str2double(str6);
to=L/R;
t=t1:t3:t2;
I=Io*exp(-t/to);
t0=str2double(str7);
I1=Io*exp(-t0/to);
set(handles.edit8,'String',I1);
u=R*Io*exp(-t/to);
plot(handles.axes1,t,I);
plot(handles.axes2,t,u,'r');
title('蓝线为电感电流曲线,红线为电感电压曲线')

实现一阶RL零状态响应的GUI运行按钮

str1=get(handles.editI,'String');
str2=get(handles.editR,'String');
str3=get(handles.editL,'String');
str4=get(handles.editt1,'String');
str5=get(handles.editt2,'String');
str6=get(handles.editt3,'String');
str7=get(handles.edit7,'String');
Io=str2double(str1);
R=str2double(str2);
L=str2double(str3);
t1=str2double(str4);
t2=str2double(str5);
t3=str2double(str6);
to=L/R;
t=t1:t3:t2;
I=Io-Io*exp(-t/to);
t0=str2double(str7);
I1=Io-Io*exp(-t0/to);
set(handles.edit8,'String',I1);
u=R*Io*exp(-t/to);
plot(handles.axes1,t,I);
plot(handles.axes2,t,u,'r');
title('蓝线为电感电流曲线,红线为电感电压曲线')

实现一阶RL全响应的GUI运行按钮

str1=get(handles.edit1,'String');
str2=get(handles.editIs,'String');
str3=get(handles.editR,'String');
str4=get(handles.editL,'String');
str5=get(handles.editt1,'String');
str6=get(handles.editt2,'String');
str7=get(handles.editt3,'String');
str8=get(handles.edit8,'String');
Io=str2double(str1);
Is=str2double(str2);
R=str2double(str3);
L=str2double(str4);
t1=str2double(str5);
t2=str2double(str6);
t3=str2double(str7);
to=L/R;
t=t1:t3:t2;
I=Io*exp(-t/to)+Is-Is*exp(-t/to);
t0=str2double(str8);
I1=Io*exp(-t0/to)+Is-Is*exp(-t0/to);
set(handles.edit9,'String',I1);
plot(handles.axes1,t,I);
title('一阶RL全响应');

二阶全响应

str1=get(handles.editU,'String');
str2=get(handles.editR,'String');
str3=get(handles.editC,'String');
str7=get(handles.editI,'String');
str8=get(handles.editL,'String');
Us=str2double(str1);
R=str2double(str2);
C=str2double(str3);
I=str2double(str7);
L=str2double(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.axes1,t,ua);hold on
fplot(handles.axes1,t,ui);
title('二阶全响应');
ylabel('U/V');
xlabel('t/s');
grid on
legend('电容电压','电感电压','Location','best')

我的公众号:北屿南诗,欢迎关注,干货不断!

利用Matlab实现线性动态电路的可视化研究相关推荐

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

    Matlab实现 线性动态电路可视化分析 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 编程思路 这个编程总体采用面向过程的编程思想,将人在 ...

  2. 用MATLAB app designer设计人机交互界面——二阶线性动态电路可视化分析的研究

    用MATLAB app designer设计人机交互界面--二阶线性动态电路可视化分析的研究 这是我第一次尝试写博客,我试着给出电路课上要求的电路实验编程.但是电路的类型有点儿多,所以我只以二阶动态电 ...

  3. 13. 线性动态电路的复频域分析

    1. 拉普拉斯变换 1.1 拉普拉斯变换概念 对(0,∞)(0,\infty)(0,∞)上的函数f(t)f(t)f(t),其拉氏变换和拉氏反变换为: 拉式正变换,知道f(t)f(t)f(t),求其F( ...

  4. matlab一阶电路瞬态响应,MATLAB在一阶动态电路特性分析的应用

    MATLAB在一阶动态电路特性分析的应用 MATLAB在一阶动态电路特性分析的应用 (董梦媛 12013241942 2013级通信一班) 摘要: MATLAB具有强大的图形处理功能.符号运算功能和数 ...

  5. 利用matlab实现DMD动态模态分解(在一维信号或二维流场矢量中的应用)

    利用matlab实现DMD动态模态分解(在一维信号或二维流场矢量中的应用) 0 前言 0.1 特征根的计算与含义 1 DMD的基本思路 2 一维DMD算法 3 二维DMD算法 4 总结 (2020年9 ...

  6. matlab 实现高阶动态电路,基于Matlab高阶动态电路自动计算平台的设计与实现

    1引言高阶动态电路在时域内建立的是高阶微分方程,手工几乎无法求解.采用S域法,虽然利用积分变换,将时域的微分方程转化为S域的代数方程,但求解时需要对激励的原函数进行拉氏变换,利用运算电路求出响应的象函 ...

  7. matlab一阶动态电路分析,MATLAB在一阶动态电路特性分析的应用

    MATLAB 在一阶动态电路特性分析的应用 (董梦媛 12013241942 2013级通信一班) 摘要: MATLAB 具有强大的图形处理功能.符号运算功能和数值计算功能.其中系统的仿真工具箱是从底 ...

  8. 利用Matlab进行线性回归分析(1)

    利用Matlab进行线性回归分析 利用 Matlab 进行线性回归分析 回归分析是处理两个及两个以上变量间线性依存关系的统计方法.可以通过软件 Matlab 实现. 1. 利用 Matlab 软件实现 ...

  9. matlab线性回归结果,利用Matlab进行线性回归分析

    利用Matlab进行线性回归分析 回归分析是处理两个及两个以上变量间线性依存关系的统计方法.可以通过软件Matlab实现. 1.利用Matlab软件实现 在Matlab中,可以直接调用命令实现回归分析 ...

  10. 电镀用整流电源设计matlab,基于MATLAB的三相整流电路的仿真研究毕业设计论文

    基于MATLAB的三相整流电路的仿真研究毕业设计论文 西安航空职业技术学院 毕业设计论文西安航空职业技术学院毕 业 设 计(论 文)论文题目:基于 MATLAB 的三相整流电路仿真研究 所属系部:自动 ...

最新文章

  1. Gartner2014年魔力象限(商业智能和分析平台)
  2. iView:一套基于Vue的高质量UI组件库
  3. HMTL/CSS——下拉菜单DEMO
  4. mysql 定时器概念_MySQL 定时器
  5. SQLServer奇偶数的输出
  6. mongodb固定集合(Capped Collection)和大文件管理(GridFS)
  7. Sublime Text3 插件:convertToUTF8
  8. Mutes锁_递归锁_信号量semaphore
  9. 查看服务器虚拟机版本,查看虚拟机版本命令
  10. HashMap 的底层结构和原理
  11. netty权威指南-第三章——netty入门应用
  12. MTK 修改ro.hardware 获取cpu 和固件版本号方法
  13. 二十一世纪大学英语读写教程(第二册)学习笔记(原文)——5 - Holding Onto a Dream(坚持梦想)
  14. SCP不会覆盖已有文件
  15. 关于华硕电脑进入bios
  16. Schema指示器(Indicators)
  17. 学信网的头像下载下来太小的处理方法
  18. 阿里云实人认证生成签名SignNature工具类
  19. 正态性检验的R语言实现
  20. android删除手机照片恢复软件,安卓手机上照片删除如何恢复?

热门文章

  1. 不看绝对血亏!Javastream并行不安全
  2. 【修身养性】那些看不见的教养
  3. 前端程序员和后端程序员哪个工资高?
  4. 测试计划和测试方案区别
  5. 软件测试方案和计划的区别和联系
  6. win10怎么设置无线网连接到服务器,win10wifi自动连接在哪里设置_win10设置自动连接wifi的方法...
  7. lwj_C#_homework get set 属性
  8. 【学点心理学】八本值得反复阅读的心理类书籍推荐
  9. 雅虎邮箱pop服务器,雅虎邮箱pop如何设置
  10. StructedStreaming Kafka 排错(AbstractCoordinator: Marking the coordinator *dead for grou