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

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

这是我第一次尝试写博客,我试着给出电路课上要求的电路实验编程。但是电路的类型有点儿多,所以我只以二阶动态电路RCL,进行全响应分析

这儿就不给大家多说电路的相关知识了。哈哈。

害 我还是小白,这是我第一回用app designer,很多东西都是为了作业现学的,还有很多地方需要提高。希望大家一起进步!

介绍界面使用方法

利用MATLAB自带的app designer制作工具进行开发,使用了可输入文本,选项卡组,坐标轴,单选按钮组等。

用MATLAB app designer设计人机交互界面——二阶线性动态电路可视化分析的研究_第1张图片
点击初始化后,在电路类型中选择我们所要进行动态分析的电路类型。

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

电容电路,电感电路,二阶电路和上面的时间常数,初始电容电压,初始电感电压输入所要输入的电路的参数,点击运行,在图像中会展示二阶电路动态变化曲线。

用MATLAB app designer设计人机交互界面——二阶线性动态电路可视化分析的研究_第3张图片
时间中输入时间,会输出该时刻的电容电压电感电流

关键代码展示

这儿只贴出了二阶RCL电路部分的代码。

elseif app.RadioButton5.Value == 1%对选择的按钮组的选择进行判断
        r = str2double(app.Req3.Value);%对数据的读取
        l = str2double(app.L2.Value);
        c = str2double(app.C2.Value);
        us = str2double(app.U2.Value);
        uc0 = str2double(app.Uc.Value);
        il0 = str2double(app.Il.Value);
        ttt = str2double(app.T.Value);
                
        if app.RadioButton6.Value == 1%选择RCL电路
                syms uc t
                s = dsolve('l*Di+r*i-uc = us','i = -c*Duc','i(0) = il0','uc(0) = uc0','t');%讲二阶电路的微分方程,分解成两个微分方程,并进行求解
                ul = us - s.i*r + s.uc
        
                h = 1;
                for t=0:0.001:r*c*7/l*5
                    ill(h) = eval(s.i);
                    ucc(h) = eval(s.uc);
                    ull(h) = eval(ul);                    
                    h=h+1;
        		end
                t = 0:0.001:r*c*7/l*5;
                
                plot(app.UIAxes,t,ill,'r',t,ucc,'g-',t,ull,'b-.')%绘制图像
                title(app.UIAxes,'二阶RLC串联电路动态特性分析')                
                xlabel(app.UIAxes,'时间 t')
                ylabel(app.UIAxes,'Il(r)/Uc(g)/Ul(b)')%MATLAB2016 app designer里面不能用legend函数,所以只好用括号里面的字母来表示图线的对应颜色了
                
                if(~isnan(ttt))
                    t = ttt;
                    qqq = eval(s.i);
                    ppp = eval(s.uc);
                    app.dispIs.Value = num2str(qqq);
                    app.dispUc.Value = num2str(ppp);
                end        
        end
end

感觉app designer的人机交互页面跟gui一样,主要还是对输入数据的读取和使用,其他的跟MATLAB的使用方法基本上一样了。甚至我觉得app designer使用更简单一点。

小白们刚开始时,要注意的是对组件浏览器的使用吧。我在那里迷糊了好久,后来才搞清楚。而且要分清楚不同组件是如何读取value的。
在MATLAB2016中,比如app.T.Value,就可以读取T文本框中的值了。还要注意的是使用编辑字段还是数值或者文本的,然后进行相应的转换。
此外,我把所有的函数都放在了运行的回调函数里面。

哈哈,还有就是,如果编代码的时候,有其他什么不懂的地方,上网搜吧。

加油嗷!

你可能感兴趣的:(matlab学习笔记,MATLAB,app,designer,二阶电路动态分析可视化,人机交互,matlab)