当前位置:首页 > MATLAB
  • 改动寥寥几行代码:AMD锐龙Matlab性能暴涨最多258%

    改动寥寥几行代码:AMD锐龙Matlab性能暴涨最多258%

    我们知道,一款硬件产品性能如何,不仅仅取决于硬件本身的设计,也要看驱动、软件的支持与优化,很多时候一些简单的优化调整就可以带来意想不到的效果。 比如说流行、权威的数学计算环境Matlab,就针对Intel处理器有一项特殊优化,检测到是Intel处理器后就会利用Intel MKL(路径内核库),并调用AVX2指令集,获得理想性能。 而对于非Intel处理器,比如说检测到是AMD,Matlab就只会使用古老的SSE指令集,结果就是性能天差地别。 Reddit网友Nedflanders1976研究后发现,AMD锐龙、线程撕裂者处理器在Matlab上也能开启AVX2指令集,从而获得性能暴涨! 根据这位网友给出的教程,方法非常简单。Windows系统下可以创建一个只有如下四行代码的bat批处理文件,AMD处理器用户通过它启动Matlab,就可以开启AVX2指令集。 @echo off set MKL_DEBUG_CPU_TYPE=5 call "%MKLROOT%binmklvars.bat" MKL_DEBUG_CPU_TYPE=5 matlab.exe 以上是临时方法,如果想永久生效,只需在高级系统属性里找到MKL_DEBUG_CPU_TYPE,将这个环境变量的值改为5,但注意任何使用MKL的程序都会受到影响。 Linux用户也很简单,临时方法是输入以下命令并启动Matlab,永久方法则是编辑配置脚本并加入以下命令: export MKL_DEBUG_CPU_TYPE=5 根据实测,AMD锐龙处理器经过这样一番修改后,Matlab性能可以提升少则17%,多则258%!

    时间:2019-12-19 关键词: 芯片 AMD matlab 锐龙

  • 改动寥寥几行代码:AMD锐龙Matlab性能暴涨最多258%

    改动寥寥几行代码:AMD锐龙Matlab性能暴涨最多258%

    我们知道,一款硬件产品性能如何,不仅仅取决于硬件本身的设计,也要看驱动、软件的支持与优化,很多时候一些简单的优化调整就可以带来意想不到的效果。 比如说流行、权威的数学计算环境Matlab,就针对Intel处理器有一项特殊优化,检测到是Intel处理器后就会利用Intel MKL(路径内核库),并调用AVX2指令集,获得理想性能。 而对于非Intel处理器,比如说检测到是AMD,Matlab就只会使用古老的SSE指令集,结果就是性能天差地别。 Reddit网友Nedflanders1976研究后发现,AMD锐龙、线程撕裂者处理器在Matlab上也能开启AVX2指令集,从而获得性能暴涨! 根据这位网友给出的教程,方法非常简单。Windows系统下可以创建一个只有如下四行代码的bat批处理文件,AMD处理器用户通过它启动Matlab,就可以开启AVX2指令集。 @echo off set MKL_DEBUG_CPU_TYPE=5 call "%MKLROOT%binmklvars.bat" MKL_DEBUG_CPU_TYPE=5 matlab.exe 以上是临时方法,如果想永久生效,只需在高级系统属性里找到MKL_DEBUG_CPU_TYPE,将这个环境变量的值改为5,但注意任何使用MKL的程序都会受到影响。 Linux用户也很简单,临时方法是输入以下命令并启动Matlab,永久方法则是编辑配置脚本并加入以下命令: export MKL_DEBUG_CPU_TYPE=5 根据实测,AMD锐龙处理器经过这样一番修改后,Matlab性能可以提升少则17%,多则258%!

    时间:2019-12-17 关键词: AMD matlab 指令集 锐龙 撕裂者 avx2

  • MathWorks 公司获得《控制工程》中文版杂志 2019 年度编辑推荐奖

    MathWorks 公司获得《控制工程》中文版杂志 2019 年度编辑推荐奖

    中国北京 – 2019 年 12月 11 日 – MathWorks公司今日宣布,Simulink 获得《控制工程》中文版杂志 2019 年度“编辑推荐奖”。Simulink 凭借其电力电子器件控制设计解决方案斩获“工业软件和平台”类大奖殊荣。这一奖项由《控制工程》中文版杂志全球编辑团队评选得出。 一年一度的《控制工程》中文版杂志评奖是中国工业控制、自动化和仪器仪表领域最具权威性的产品评选活动。2019 年,来自国内外的厂商共提交了 200 多项产品参与本奖项的角逐。其中有 26 个产品获得《控制工程》中文版杂志颁发的“编辑推荐奖”,并一展独特风采。  “我们非常荣幸能获得‘工业软件和平台年度大奖’这项殊荣”, MathWorks 中国区总经理曹新康说,“我们相信,对于使用 Simulink 为可再生能源、工业自动化和电动汽车领域开发电力电子器件控制系统的工程师们而言,这一奖项正是对他们所给予评价的准确印证。” Simulink提供一个用于动态系统建模、仿真以及综合分析的集成环境。电力电子工程师使用 MATLAB®和 Simulink®开发电机、功率变流器和电池系统的数字控制系统,并可以轻松实现如下工作流程: •         使用 Simulink 对调度和闭环控制算法进行仿真并生成代码,与传统手工编码和在硬件上测试相比,缩短项目时间 50%。•         访问成千上万随时可用的电气建模元件和用于桌面仿真的例程。•         使用附加工具箱进行控制设计、定点设计、信号处理和认证。•         获得对 Speedgoat 和其他实时硬件平台的实时仿真支持。•         为主流微控制器、FPGA 和 SoC 生成 ANSI C 和处理器优化的 C 和 HDL 代码。

    时间:2019-12-11 关键词: mathworks matlab simulink

  • matlab的BP神经网络例子程序

    1. BP神经网络的设计实例     例1. 采用动量梯度下降算法训练BP 网络。  训练样本定义如下:  输入矢量为      p =[-1 -2 3  1;-1  1 5 -3]  目标矢量为   t = [-1 -1 1 1]  解:本例的 MATLAB 程序如下:   close all   clear   echo on   clc   % NEWFF——生成一个新的前向神经网络   % TRAIN——对 BP 神经网络进行训练   % SIM——对 BP 神经网络进行仿真   pause          %  敲任意键开始   clc   %  定义训练样本   % P 为输入矢量   P=[-1,  -2,    3,    1;       -1,    1,    5,  -3];  % T 为目标矢量   T=[-1, -1, 1, 1];   pause;   clc   %  创建一个新的前向神经网络   net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm') %  当前输入层权值和阈值   inputWeights=net.IW{1,1}   inputbias=net.b{1}   %  当前网络层权值和阈值   layerWeights=net.LW{2,1}   layerbias=net.b{2}   pause   clc   %  设置训练参数   net.trainParam.show = 50;   net.trainParam.lr = 0.05;   net.trainParam.mc = 0.9;   net.trainParam.epochs = 1000;   net.trainParam.goal = 1e-3;   pause   clc   %  调用 TRAINGDM 算法训练 BP 网络   [net,tr]=train(net,P,T);   pause   clc   %  对 BP 网络进行仿真   A = sim(net,P)   %  计算仿真误差   E = T - A   MSE=mse(E)   pause   clc   echo off  例2. 采用贝叶斯正则化算法提高 BP 网络的推广能力。在本例中,我们采用两种训练方法,即 L-M 优化算法(trainlm)和贝叶斯正则化算法(trainbr),用以训练 BP 网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样本数据可以采用如下MATLAB 语句生成:  输入矢量:P = [-1:0.05:1];   目标矢量:randn(’seed’,78341223);   T = sin(2*pi*P)+0.1*randn(size(P));   解:本例的 MATLAB 程序如下:   close all   clear   echo on   clc   % NEWFF——生成一个新的前向神经网络   % TRAIN——对 BP 神经网络进行训练  % SIM——对 BP 神经网络进行仿真   pause          %  敲任意键开始   clc   %  定义训练样本矢量   % P 为输入矢量   P = [-1:0.05:1];   % T 为目标矢量   randn('seed',78341223); T = sin(2*pi*P)+0.1*randn(size(P));  %  绘制样本数据点   plot(P,T,'+');   echo off   hold on;   plot(P,sin(2*pi*P),':');          %  绘制不含噪声的正弦曲线   echo on   clc   pause   clc   %  创建一个新的前向神经网络   net=newff(minmax(P),[20,1],{'tansig','purelin'});   pause   clc   echo off   clc  disp('1.  L-M 优化算法 TRAINLM'); disp('2.  贝叶斯正则化算法 TRAINBR');   choice=input('请选择训练算法(1,2):');   figure(gcf);   if(choice==1)                       echo on               clc               %  采用 L-M 优化算法 TRAINLM       net.trainFcn='trainlm';               pause               clc               %  设置训练参数               net.trainParam.epochs = 500;               net.trainParam.goal = 1e-6;               net=init(net);              %  重新初始化                 pause               clc  elseif(choice==2)               echo on               clc               %  采用贝叶斯正则化算法 TRAINBR               net.trainFcn='trainbr';               pause               clc               %  设置训练参数               net.trainParam.epochs = 500;               randn('seed',192736547);               net = init(net);              %  重新初始化                 pause               clc           end       例2. % 调用相应算法训练 BP 网络  [net,tr]=train(net,P,T);  pause  clc  % 对 BP 网络进行仿真  A = sim(net,P);  % 计算仿真误差  E = T - A;  MSE=mse(E)  pause  clc  % 绘制匹配结果曲线  close all;  plot(P,A,P,T,'+',P,sin(2*pi*P),':');  pause;  clc  echo off          通过采用两种不同的训练算法,我们可以得到两种拟合结果。图中的实线表示拟合曲线,虚线代表不含白噪声的正弦曲线,“+”点为含有白噪声的正弦样本数据点。显然,经 trainlm 函数训练后的神经网络对样本数据点实现了“过度匹配”,而经 trainbr 函数训练的神经网络对噪声不敏感,具有较好的推广能力。            值得指出的是,在利用 trainbr 函数训练 BP 网络时,若训练结果收敛,通常会给出提示信息“Maximum MU reached”。此外,用户还可以根据 SSE 和 SSW 的大小变化情况来判断训练是否收敛:当 SSE 和 SSW 的值在经过若干步迭代后处于恒值时,则通常说明网络训练收敛,此时可以停止训练。观察trainbr 函数训练 BP 网络的误差变化曲线,可见,当训练迭代至 320 步时,网络训练收敛,此时 SSE 和 SSW 均为恒值,当前有效网络的参数(有效权值和阈值)个数为 11.7973。  例3 采用“提前停止”方法提高 BP 网络的推广能力。对于和例 2相同的问题,在本例中我们将采用训练函数 traingdx 和“提前停止”相结合的方法来训练 BP 网络,以提高 BP 网络的推广能力。 解:在利用“提前停止”方法时,首先应分别定义训练样本、验证样本或测试样本,其中,验证样本是必不可少的。在本例中,我们只定义并使用验证样本,即有  验证样本输入矢量:val.P = [-0.975:.05:0.975]  验证样本目标矢量:val.T = sin(2*pi*val.P)+0.1*randn(size(val.P))          值得注意的是,尽管“提前停止”方法可以和任何一种 BP 网络训练函数一起使用,但是不适合同训练速度过快的算法联合使用,比如 trainlm 函数,所以本例中我们采用训练速度相对较慢的变学习速率算法 traingdx 函数作为训练函数。 本例的 MATLAB 程序如下:  close all  clear  echo on  clc  % NEWFF——生成一个新的前向神经网络  % TRAIN——对 BP 神经网络进行训练  % SIM——对 BP 神经网络进行仿真  pause  % 敲任意键开始  clc  % 定义训练样本矢量  % P 为输入矢量  P = [-1:0.05:1];  % T 为目标矢量  randn('seed',78341223);  T = sin(2*pi*P)+0.1*randn(size(P));  % 绘制训练样本数据点  plot(P,T,'+');  echo off  hold on;  plot(P,sin(2*pi*P),':'); % 绘制不含噪声的正弦曲线  echo on  clc  pause  clc  % 定义验证样本  val.P = [-0.975:0.05:0.975]; % 验证样本的输入矢量  val.T = sin(2*pi*val.P)+0.1*randn(size(val.P)); % 验证样本的目标矢量  pause  clc  % 创建一个新的前向神经网络  net=newff(minmax(P),[5,1],{'tansig','purelin'},'traingdx'); pause  clc  % 设置训练参数  net.trainParam.epochs = 500;  net = init(net);  pause  clc  % 训练 BP 网络  [net,tr]=train(net,P,T,[],[],val);  pause  clc  % 对 BP 网络进行仿真  A = sim(net,P);  % 计算仿真误差  E = T - A;  MSE=mse(E)  pause  clc  % 绘制仿真拟合结果曲线  close all;  plot(P,A,P,T,'+',P,sin(2*pi*P),':');  pause;  clc  echo off           下面给出了网络的某次训练结果,可见,当训练至第 136 步时,训练提前停止,此时的网络误差为 0.0102565。给出了训练后的仿真数据拟合曲线,效果是相当满意的。 [net,tr]=train(net,P,T,[],[],val);  TRAINGDX, Epoch 0/500, MSE 0.504647/0, Gradient 2.1201/1e-006  TRAINGDX, Epoch 25/500, MSE 0.163593/0, Gradient 0.384793/1e-006  TRAINGDX, Epoch 50/500, MSE 0.130259/0, Gradient 0.158209/1e-006  TRAINGDX, Epoch 75/500, MSE 0.086869/0, Gradient 0.0883479/1e-006  TRAINGDX, Epoch 100/500, MSE 0.0492511/0, Gradient 0.0387894/1e-006  TRAINGDX, Epoch 125/500, MSE 0.0110016/0, Gradient 0.017242/1e-006  TRAINGDX, Epoch 136/500, MSE 0.0102565/0, Gradient 0.01203/1e-006  TRAINGDX, Validation stop.

    时间:2019-07-10 关键词: matlab bp神经网络

  • MATLAB 2017a \b、2016a\b等高版本,打开函数帮助文档需要登录MATHworks账户且需要绑定产品

    MATLAB 2017a \b、2016a\b等高版本,打开函数帮助文档需要登录MATHworks账户且需要绑定产品

    我们MATLAB 2017a b、2016ab等高版本,打开某些函数帮助文档时,在帮助浏览器界面会跳出需要登录MATHworks账户的提示:“To access this documentation, you must be associated with a license or trial.To view this documentation, log in to your MathWorks Account.”登录MATHworks账户之后,且需要绑定产品许可证号,如下图:解决方法:1、点击帮助浏览器设置按钮:2、选择文档位置  安装在本地即可

    时间:2019-07-08 关键词: matlab

  • 如何使用Matlab产生对称矩阵

    有时候做实验需要使用对称矩阵,这里介绍如何使用Matlab产生随机的对称矩阵。用例子说明一下:我要产生4X4的随机矩阵,要求是对称矩阵。产生对称矩阵A = rand(4); B = tril(A,-1)+triu(A',0);方法一:B是A的下三角矩阵改造的对称矩阵A = rand(4); B = triu(A,0) + tril(A',-1);方法二:B是A的上三角矩阵改造的对称矩阵验证对称矩阵只需要这样验证:sum(sum(B==B'))==numel(B)只要上面的代码输出结果是1就对了附带一个5X5的实对称正定矩阵    2.1012,0.1300,-1.6081,-1.1935,0.3851,     0.1300,0.6209,-0.2666,-0.3431,-0.5251,     -1.6081,-0.2666,2.6402,1.0969,-0.5009,     -1.1935,-0.3431,1.0969,3.3753,-0.6894,     0.3851,-0.5251,-0.5009,-0.6894,1.5310

    时间:2019-07-08 关键词: matlab 对称矩阵

  • Matlab:如何查找给定目录下的文件

    我们有很多目录,每个目录下都有些有用的文件,比如图像文件,如何自动的扫描这些文件呢?可以使用dir函数来完成这个任务。比如假设给定目录 baseDir,它是一个字符串,包含的是某个目录,例如'./Data/'现在我们的问题转化成了,如何扫描Data目录下的文件。假设Data目录下有N001.m和N002.m,还有其它目录baseDir = './Data/'; contains = dir(baseDir); for k = 1:length(contains)     if (contains(k).isdir)         continue;     end     disp(contains(k).name); end执行上面的程序,就会看到了,只有那两个文件显示。了解更多:> doc  dir

    时间:2019-07-08 关键词: matlab

  • [Matlab]技巧笔记

    1、将字符串作为Matlab命令执行md = 'dir'; eval(md);2、将字符串作为系统命令执行md = 'dir'; system(md);3、使显示图像的坐标轴使用相同的度量单位axis equal这个网址可以看到axis equal,axis image, axis fill等的区别。4、使得显示的图形中没有坐标显示set(gca, 'xtick', []); set(gca, 'ytick', []);5、使用不同的颜色索引doc colormap6、设置坐标显示范围axis([0 2 0 2]);7、将figure保存成eps图像时,带彩色saveas(gcf, 'ttt.eps', 'psc')使用 doc saveas 查看更多关于eps颜色设置的说明。8、生成多维高斯随机向量序列R=mvnrnd(MU,SIGMA)

    时间:2019-07-08 关键词: matlab

  • Matlab:如何读取CSV文件以及如何读取带有字符串数据项的CSV文件

    CSV,逗号分开的文件,如果能快速的读取这些文件中的数据,无疑会帮助我们解决很多问题。 1、 只有数据的CSV文件,CSV file that includes only numbers. As an example, create a text file, named as 'data.csv' if you prefer, which includes the following data with any editor you like.1,  2,  3,  4 5,  6,  7,  8 9,  0,  1,  2   1) Read all the data into a 3X4 matrix.Mat = csvread('data.csv'); disp(Mat);  2) Read part of the data with specification of the start index. What is important is the data is accessed from index 0 in the direction of row and column.Mat = csvread('data.csv', 1, 2); disp(Mat);Result showing below.7     8 1     2  3) Read only the specified range. Mat = csvread('data.csv', 0, 1, [0,1,2,2]); disp(Mat);Note the starting index you specified in the second and third parameters is the same with the first two arguments in the fourth parameter matrix. 2、 How to read a CSV file containing string data items. Create a file, named as 'datastr.csv' if you like. Add the following data. 1, 2, 3, Mine 4, 5, 6, Yours 7, 8, 9, HisOne who try to use csvread shall encounter frustration. :( I propose another solution to solve this case. fid = fopen('datastr.csv'); dcells = textscan(fid, '%f, %f, %f, %s'); fclose(fid); dcellneeds = dcells(1:3); Mat = cell2mat(dcellneeds); disp(Mat);The result showing below.1     2     3 4     5     6 7     8     9Try it and good luck. :)

    时间:2019-07-08 关键词: matlab csv

  • MATLAB做两个figure

    MATLAB做两个figure

    matlab使用figure(1), figure(2)...可以作出多幅图。示例如下:1 2 3 4 5 6theta=linspace(0,2*pi,400);rou=4*sin(2*theta);figure(1)polar(theta,rou);figure(2);ezplot('x^(2/3)+y^(2/3)-2^(2/3)')

    时间:2019-07-04 关键词: matlab

  • NI推出LabVIEW新特性和新功能,进一步推动创新加速

    新闻发布—2019年6月17日-NIWeek-NI作为一家软件定义平台供应商,致力于帮助用户加速自动化测试和自动化测量系统的开发及性能,今日宣布推出最新版 LabVIEW 2019和LabVIEW NXG。这些新版本表明NI一直持续投入到下一代 LabVIEW 和系统工程软件的研发中。NI仍将继续致力于优化关键领域的测试和测量流程,这些领域包括测试开发集成、高效自动化测试以及数据和系统访问等。最新版 LabVIEW 2019 提供更好的IDE可视性、强大的调试增强功能以及新的图形化语言数据类型,旨在帮助开发人员进一步提高工作效率。此外,LabVIEW 2019 还解决了工程师的一个关键痛点:采用分散的非标准化方法来克服代码部署过程中的常见挑战——依赖关系管理和版本控制。借助LabVIEW 2019 软件包安装程序的新发布选项,用户现在可以使用软件固有的版本管理和自动依赖关系管理功能,标准化程序发布方法,从而自信地复制和共享系统软件。最新版 LabVIEW NXG 简化了自动化测试和测量应用中最耗时的任务,比如更快速部署和发布代码、导入和导出MATLAB® 数据(.mat)以提高与第三方软件的互操作性,同时新增的Web VI功能使用户能够更好地操作和控制其应用程序。这些增强功能可让工程师快速设置和连接仪器,可与其他编程语言和工具包之间互操作,避免了过去与第三方IP的集成瓶颈,并通过增强网络支持方便了对重要数据的访问。“借助WebVI,我们可以随时随地为用户提供测试管理数据库接口,而且我们只需要使用核心LabVIEW技能就能够开发Web界面。 不仅我们节省了开发时间,而且用户也可以即时查看数据或更改测试标准。”GSystems公司工程团队主管Jeremy Marquis说道。NI已在软件方面持续投入超过30年,未来这些 LabVIEW 版本仍将持续更新,以进一步将其工程能力从设计扩展到测试领域。 无论是第一次购买 LabVIEW,还是多年的老用户,都可以轻松使用 LabVIEW 2019 和 LabVIEW NXG,而且将看到立竿见影的效果。

    时间:2019-06-17 关键词: LabVIEW matlab ide

  • matlab  的plot

    matlab 的plot

    1.    plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线例如:此处用  x=0:pi/20:2*pi;  y1=sin(x);  plot(x,y1); 2.       1, plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。   2,plot(x,y1,x,y2,…)以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘制多条曲线。 x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2); 3.    可以在画的图像中添加栅格,用命令grid on,这样可以方便你对齐某条线或是对比比较方便,看下图可以上图对比,看下有什么不同,测试代码如下: x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2); grid on 4.    添加坐标轴信息,这样做可以很快的让人明白你在做什么,测试代码如下 x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2); grid on xlabel('变量 X') ylabel('变量 Y1 & Y2') 5.    除了坐标轴信息外还可以添加其它的信息,如所画曲线的信息等:测试代码如下 x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2); grid on xlabel('变量 X') ylabel('变量 Y1 & Y2') title('正弦余弦波形')    %添加图像标题 text(1.5,0.3,'cos(x)')   %将cosx这个注解加到坐标中的某个位置 gtext('sin(x)')      % 用鼠标的光标定位,将sinx这个注解放在你鼠标点击的地方功能二维曲线绘图语法plot(Y) plot(X1,Y1,…) plot(X1,Y1,LineSpec,…) plot(…,’PropertyName’,PropertyValue,…) plot(axes_handle,…) h = plot(…) hlines = plot(‘v6’,…)描述plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线;如果Y是复数,则plot(Y)等效于plot(real(Y),imag(Y));其它使用情况下,忽略坐标数据中的虚部。plot(X1,Y1,…)如果X和Y都是数组,按列取坐标数据绘图,此时它们必须具有相同的尺寸;如果X和Y其中一个是向量另一个为数组,X和Y中尺寸相等的方向对应绘制多条曲线;如果X和Y其中一个是标量另一个为向量,那么将绘制垂直X或者Y轴离散的点。  plot(X1,Y1,LineSpec,…)通过参数LineSpec指定曲线的曲线属性,它包括线型、标记符和颜色。plot函数支持同时绘制任意组图形plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,…)此时完全等效于plot(X1,Y1,LineSpec1,…)hlod allplot(X2,Y2,LineSpec2,…)MATLAB中提供的线型属性有:  需要说明的是,LineSpec中设置曲线线型、标识符和颜色三项属性时,控制符的顺序不受限制并可以省略或者部分省略。也就是说’r-.*’、’-.r*’、’*-.r’等形式是等效的,都表示使用红色点划线连接各个节点,各节点使用“*”标识。plot(…,’PropertyName’,PropertyValue,…)设置由plot创建的所有曲线句柄对象的属性,Line对象属性和属性值参见附录,具体设置参考下面的实例,当然可以使用set/get进行设置。plot(axes_handle,…)指定坐标系,也就是在axes_handle坐标系中绘图,在没有指定时默认为gca。h = plot(…)返回由plot创建的所有曲线句柄对象的句柄。每条曲线对应一个句柄,如果有n条曲线,则h为n×1的数组。注意在同时绘制多条曲线时,如果没有指定曲线属性,plot按顺序循环使用当前坐标系中ColorOrder和LineStyleOrder两个属性。默认情况,MATLAB在每次调用plot函数时将ColorOrder和LineStyleOrder自动重置为DefaultAxesColorOrder和DefaultAxesLineStyleOrder。Default**属性我们可以自定义,有效期至MATLAB关闭,Matlab下次启动时将Default**属性重置为厂家设置(Factory)set(0,’DefaultAxesColorOrder’,’r|g|b|k’,…’DefaultAxesLineStyleOrder’,’-|-.|–|:’)使用holdall命令可以阻止调用plot函数时自动重置ColorOrder和LineStyleOrder属性,而是循环使用。注意hold on只是使多次绘制的图形叠加(相当于NextPlot),但不能阻止属性重置。另外我们可以通过下面四个属性设置标识符的颜色和大小LineWidth——指定线宽MarkerEdgeColor——指定标识符的边缘颜色MarkerFaceColor——指定标识符填充颜色MarkerSize——指定标识符的大小注意上面四个属性是针对当前坐标系中所有曲线的实例X=1:10; % 两个都是数组,必须具有相同的尺寸 X1=[X;X;X]’;%10×3 Y1=rand(10,3)+1;%10×3% 其中一个为向量,另一个为数组,自动匹配尺寸相等方向 X2=1:0.1:10;%1×91 Y2=[sin(X2);cos(X2)]’;%91×2% 其中一个是标量,另一为矢量,绘制垂直坐标轴的离散点 X3=1:10; Y3=-0.5; fh=figure(‘numbertitle’,’off’,’name’,’PLOT Usability Demo’);%创建figure对象 ah=axes;%创建axes对象 h=plot(…%返回所有曲线句柄 ah,…%指定坐标系,可以省略,此时默认gca X1,Y1,…%坐标数据 ‘-.^’,…%曲线属性,可以省略或部分省略,此时自动选择 X2,Y2,… ‘m-‘,… X3,Y3,… ‘o’,…%注意此组数据设置线型和颜色无效,因为默认绘制离散点 ‘LineWidth’,2,…%线宽 ‘MarkerEdgeColor’,’k’,…%标识符边缘颜色 ‘MarkerFaceColor’,’r’,…%标识符填充颜色 ‘MarkerSize’,8)%标识符大小

    时间:2019-06-14 关键词: matlab

  • MATLAB Support Package for Arduino Hardware 安装当中的一些问题

    纠结于matlab和arduino的联姻已经好久了,下面介绍两种办法。 第一种: 第一种相对比较简单。直接下载一个arduino和matlab的兼容包,名字叫做ArduinoIO,http://pan.baidu.com/s/1qYQlLQO,解压之后里面有readme和几个文件夹,英文比较好的可以稍微看一下,里面有对这个兼容包的介绍,英文不好的也没关系,主要有用的就是下面这一部分: The following sketches are provided with the package: -) adio.pde     : analog and digital IO, plus basic serial commands only -) adioe.pde    : adio.pde + encoders support -) adioes.pde   : adioe.pde + servo support -) motor_v1.pde : adioes.pde + afmotor v1 shield -) motor_v2.pde : adioes.pde + afmotor v2 shield 由上往下走功能依次提升,对速度没有要求的可以直接烧写第三个就行,直接第五个也ok,(我用的是第三个,因为目前还不玩儿舵机),把adioes.pde通过arduinoIDE烧进arduino里面,插上usb,打开matlab然后定义接口,a=arduino('COM3');其中'COM3'为接口的名字,可以根据自己的电脑接口的不同而改变。matlab当中显示串口成功连接之后就可以直接在matlab之中进行编程,把arduino当做执行机进行操作了。 第二种: 第二种是在matlab当中直接下载Support Package for Arduino Hardware安装包,然后进行安装。其中在2011a-2013b之间的版本里面只有针对simulink forardunio的安装包,2014a以上的就有matlab和simulink的两种的兼容安装包。 如果你的网速比较好而且能够直接翻墙国外网站的话那就比较简单了,直接参考视频http://v.youku.com/v_show/id_XMTMxNzk1MDU3Mg==.html就能解决您的问题。或者直接下载这个兼容包安装引导程序,直接拖进matlab的命令窗口就行了,链接:http://pan.baidu.com/s/1cwmkjG 密码:ptye。如果您的网速不好(硬伤),或者不会翻墙的,也没关系,这里提供2015b的安装包,里面有matlab和simulink的,在网盘上下载就行了,链接:http://pan.baidu.com/s/1jH64X9c 密码:ofrn。把download文件放到matlab的安装文件夹下面,然后再窗口选择get hardware package 就可以进行下一步的操作了,接下来选择downloads文件夹,如果说找不到则可以依次选择arduino_download,,arduinoio_download分别进行安装。  总结:安装的过程中会有好多的小问题,要有耐心,慢慢的就会了,如果有什么问题可以及时的进行交流。 这里有一个网络安装不成功的帖子,有兴趣的同志可以看一下,有问题也欢迎交流! 

    时间:2019-06-11 关键词: Arduino matlab

  • 电路仿真软件哪个好? 7款主流电路仿真软件优缺点大比拼

      微电子及集成电路技术发展日新月异,离不开EDA电子电路仿真软件的支持。每天不知有多少电路设计及验证者,使用着各种电路仿真软件工具。俗话说,工欲善其事必先利其器,如何挑选合适的电路仿真软件工具?是决定工作效率的一个关键。对于市场上各类电路仿真软件工具,工程师至少要做到知己知彼,什么样的电路仿真软件工具适合什么样的电路设计?各种电路仿真软件工具的优点及不足?本文为大家整理了常用的几款电路仿真软件工具,并对这些电路仿真软件工具的优缺点做了简单比较。 一、Cadence Cadence 公司是老牌的EDA工具提供商,采用Cadence的软件、硬件和半导体IP,用户能更快速向市场交付产品。Cadence公司创新的"系统设计实现" (SDE)战略,将帮助客户开发出更具差异化的产品——小到芯片大至系统——涵盖移动设备、消费电子、云数据中心、汽车、航空、物联网、工业应用以及其他细分市场。 其电路仿真软件Cadence® Sigrity™ 2018版本包含了最新的3D解决方案,帮助PCB设计团队缩短设计周期的同时实现设计成本和性能的最优化。 独有的3D设计及分析环境,完美集成了Sigrity工具与Cadence Allegro®技术,较之于当前市场上依赖于第三方建模工具的产品,Sigrity™ 2018版本可提供效率更高、出错率更低的解决方案,大幅度缩短设计周期的同时、降低设计失误风险。 此外,全新的3D Workbench解决方案弥补了机械和电气领域之间的隔阂,产品开发团队自此能够实现跨多板信号的快速精准分析。 Sigrity 2018最新版可帮助设计人员全面了解其系统,并将设计及分析扩展应用到影响高速互连优化的方方面面:不仅包括封装和电路板,还包括连接器和电缆领域。集成的3D设计及分析环境使PCB设计团队能够在Sigrity工具中实现PCB和IC封装高速互连的优化,然后在Allegro PCB、Allegro Package Designer或Allegro SiP Layout中自动执行已优化的PCB和IC封装互连,无需进行重新绘制。而直至今日,优化结果导回设计软件的流程始终是一项容易出错、需要仔细验证的手动工作。通过自动化该流程,Sigrity 2018最新版能够降低设计出错风险,免去设计人员花费数小时重新绘制和重新编辑工作的时间,更能避免在原型送到实验室之后才发现错误而浪费掉数天的时间。这不仅大大减少了原型迭代次数,更通过避免设计返工和设计延期而为设计项目节省大量的资金。 Cadence的电路仿真软件的一个小缺点是,操作较为复杂,比较适合复杂板的开发。   二、Altium Designer Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件使电路设计的质量和效率大大提高。 Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。 由于Altium Designer 在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。 目前最高版本为:Altium Designer 19.0.12 。 Altium Designer 的缺点是对复杂板的设计不及Cadence。   三、Proteus Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件,支持电路图设计、PCB布线和电路仿真。Proteus支持单片机应用系统的仿真和调试,使软硬件设计在制作PCB板前能够得到快速验证,不仅节省成本,还缩短了单片机应用的开发周期。Proteus 是单片机工程师必须掌握的工具之一。 Proteus软件分为ARES和ISIS模块,ARES用来制作PCB,ISIS用来绘制电路图和进行电路仿真。 Proteus的缺点是,对电路的数据计算方面不足。   四、 Multisim Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的电路仿真软件工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。 在模电、数电的复杂电路虚拟仿真方面,Multisim是当之无愧的一哥。它有形象化的极其真实的虚拟仪器,无论界面的外观还是内在的功能,都达到了的最高水平。它有专业的界面和分类,强大而复杂的功能,对数据的计算方面极其准确。在电子竞赛的学生中拥有广泛 的粉丝,尤其是模拟电路时,用得最多的电路仿真软件就是Multisim。同时,Multisim不仅支持mcu,还支持汇编语言和C语言为单片机注入程序,并有与之配套的制版软件NI Ultiboard10,可以从电路设计到制板layout一条龙服务。 Multisim的缺点是,软件过于庞大,对MCU的支持不足,制板等附加功能比不上其他的专门的软件。   五、Matlab电路仿真软件包Simulink Simulink是MATLAB中的一种可视化电路仿真软件, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。使用MatlabSimulink的好处是:其数据处理十分有效、精细,运行速度较快;其数据的格式兼容性十分好,便于数据的后处理与分析,尤其是控制特性的研究分析。 Matlab的缺点在于Matlab是对理想模型的仿真,不能考虑非理性状态下的情况。   六、TINA-TI TINA 是一款易于使用但功能强大的电路仿真软件,基于 SPICE 引擎。其研发者是欧洲DesignSoft Kft.公司,大约流行四十多个国家,并有二十余种不同语言的版本,其中包括中文版,大约含有两万多个分立或集成电路元器件。 TINA-TI 是由 DesignSoft 专为德州仪器 (TI) 而准备的。 TINA-TI 提供了 SPICE 的所有传统直流、瞬态和频率域分析以及更多。TINA 具有广泛的后处理功能,允许用户按照希望的方式设置结果的格式。虚拟仪器允许选择输入波形、探针电路节点电压和波形。 TINA 的原理图捕捉非常直观 - 真正的"快速入门"。 对于用户来说,Tina的界面简单直观,元器件不算多,但是分类很好,而且TI公司的元器件最齐全,当在Multisim找不到对应的器件时,就会用到Tina来仿真。 Tina-TI的缺点是,功能相对较少,对TI公司之外的元器件支持较少。   七、Infineon Designer Infineon Designer兼具模拟和数字电路仿真软件功能,是一款在线工具,可实现在线仿真,设计产品原型。 Infineon Designer也是基于DesignSoft TINA产品。利用 Infineon Designer,工程师只需一个浏览器,便能为特定应用找到相匹配的器件。整个仿真过程直观、快速,无需安装任何软件或购买许可证。 主要涵盖产品级、应用级和系统仿真三个方面,包括基于参数搜索的产品查找器、应用方案查找器以及系统仿真工具。支持16个产品查找器,适用于7000多款英飞凌产品。 免费简单易用是这类在线仿真工具的优点,缺点是功能不够强大,支持的器件有限。  

    时间:2019-05-28 关键词: cadence altium 电路仿真 matlab 电路仿真软件

  • MATLAB首次支持NVIDIA具有CUDA的GPU

    近日在 GPU 技术大会 (GTC) 上,MathWorks 宣布通过使用 Parallel Computing 或 Distributed Computing 实现在 应用中提供对 图形处理器(GPU) 的支持。这项支持可使工程师和科学家加快多种 计算的速度,而无需执行底层编程。 现在,越来越多的工程师和科学家可以借助MATLAB使用 的 具有支持 CUDA 的 GPU,其中包括基于 Fermi 架构的最新 20 系列 GPU。Parallel Computing 可以使用户无需学习 CUDA 编程或对其应用程序进行重大修改,即可访问 CUDA 库。 MathWorks 公司的并行计算市场部经理 Silvina Grad-Freilich 说:“MATLAB 使用方便, 它使工程和科学界能快速地采用 GPU 进行科学计算。MathWorks 首次支持 NVIDIA 具有 CUDA 的 GPU,这使 MATLAB 用户能利用 GPU 极大地提速其应用程序。Parallel Computing 使 MATLAB 的工程师和科学家只需进行少量编程,即可访问所有开放给他们的计算资源,从本地桌面的多核和 GPU 到集群和网格等等。” GPU 最初设计用于图像密集型视频游戏产业中的图形渲染,但近年来 GPU 不断发展壮大,现可用于更广泛的用途。研究人员可对其进行编程以执行计算和复杂图形效果,用于数据分析、数据可视化,以及金融建模和生物建模等应用。 NVIDIA 公司 产品部高级经理 Sumit Gupta 说:“MATLAB 是工程师和科学家工具箱中的基本工具。使用 GPU 可使 MATLAB 用户加速其各种应用,这为工程与科学应用领域中的突破性创新提供了基础。” MATLAB用户可以使用MathWorks提供的Parallel Computing Toolbox在GPU上轻松实现具有GPU计算特色的代码加速。

    时间:2019-04-19 关键词: NVIDIA matlab GPU 嵌入式处理器 首次

  • Matlab的孤立逆变源的设计方案

    Matlab的孤立逆变源的设计方案

      基于Matlab软件平台,采用双环控制策略设计的逆变源,利用Matlab-Simulink-SimPowerSystems的工具箱进行建模仿真,验证了本文所设计方案的可行性和有效性。  引言  随着太阳能、风能等可再生能源的发展,分布式发电以其环境污染少、能源综合利用率高、供电可靠等优点,逐渐成为了各国家竞相研究的热点,在美国、欧洲等技术成熟的国家和地区,以将其广泛应用在微电网中。逆变电源作为一种有效的电力供应源,成为了微电网的重要组成部分,并在微电网的研究和实施中得到了广泛的应用。  本文设计的基于PWM的孤立逆变电源,其控制模型采用电压外环和电流内环双环控制策略,电压外环和电流内环均采用PI控制方式。应用Matlab软件建立实验模型进行仿真,通过仿真验证了控制系统设计方案的合理性,以及双环控制策略的应用效果,分析仿真结果证明了系统设计方案的合理性和有效性。  1、PWM逆变器的电路结构和工作原理  在交-直-交变频器中,通常要求直流电路采用可控硅整流电路,如图1(a)所示。逆变输出的电压Uo的大小可以通过改变Ud的大小来控制。通过对逆变器触发电路频率的控制,可以改变输出电压Uo的频率。但是,这种变频电路存在有缺陷:如果输出的交流电压为含有较多谐波的矩形波,这无论是对负载或是交流电网都是不利的;如果输出功率用相控方式来调节,就会使输入功率因数降低,同时由于有滤波大电容存在于中间直流环中,使得调节输入功率时惯性较大,系统响应缓慢。  为解决上述缺陷,可以采用如图1(b)所示的变频电路。这种电路通常称为PWM(PulseWidthModula-tion)型变频电路,其基本的工作原理是对逆变电路中开关器件的通断进行有规律的控制,使输出端得到等幅不等宽的脉冲列,并用这些脉冲列来替代正弦波。按要求的规则对脉冲列的各脉冲宽度进行调制,既可改变电路输出电压的大小,又可以改变输出电压的频率。  2、孤立逆变源双环控制策略  如图2所示,为设计的基于PWM孤立逆变源的电压电流双环控制原理图。控制外环为电压控制环,电压Vabc的反馈值由测量模块2测得,并与给定的参考值进行比较,误差信号经过PI控制器调节后作为电流内环基准;控制内环为电流控制环,由测量模块1测得的反馈的电流值Iabc1与电流基准进行比较产生的误差信号,经过PWM发生器离散化之后产生PWM控制信号。  PI控制器是具有比例-积分控制规律的控制器,其框图如图3所示,其控制规律是指控制器的输出信号u(t)既反映输入信号e(t),又反映e(t)对t的积分,即:  式中:kP为可调比例系数,TI为可调积分时间常数。  在控制工程实践中,PI控制器主要用来改善控制系统的稳态性能。PI参数的准确设置,对控制效果至关重要,可调积分时间常数TI会影响系统达到稳定的时间和稳定性,可调比例系数kP会对系统的响应时间产生影响。在本文设计的孤立逆变源中,利用工程整定的方法,对外环电压反馈值vabc进行调节的PI调节器,其参数整定值为:kP=0.25,TI=300;对内环电流反馈Iabc1进行调节的PI调节器,其参数整定值为:kP=1.25,TI=1.  3、仿真结果  根据控制方案,设计的孤立逆变源的建模仿真使用Matlab-Simulink-SimPowerSystems软件平台来完成。仿真时间设定为0.3s,仿真数据均采用标幺值,仿真模型如图5所示。设计的电压外环和电流内环的PI控制模型分别如图6、图7所示。  模型仿真的主要参数如表1所示。  3.1逆变源仿真结果  根据表1的参数设置进行建模仿真,仿真开始后,逆变电源在很短暂的时间就达到了稳态运行,经测量模块2测量输出的电流Iabc和电压Vabc,测量模块1测量输出的电流Iabc1,以及调制系数m的输出波形如图7、图8所示。  逆变电源运行达到稳态后,由图7输出的电压和电流波形分析可知,逆变电源达到稳后的运行状态非常稳定,达到了预期的效果。由图8可知,调制系数m在经过短暂的震荡之后收敛到0.85~0.9稳定的区间,表明了调制控制的稳定性。  3.2电压控制PI仿真结果  逆变电源运行达到稳态后,电压外环控制模块的PI调节的输入信号及经过PI调节后的输出信号如图9所示。由图9的输出波形可知,输入到PI的Vd,Vq信号经过短暂的波动收敛到0,并输入到PI调节器中,经PI调节器调节后输出较为稳定的误差信号,作为电流内环控制的基准信号,保证了电流内环控制的稳定性。  3.3电流控制PI仿真结果  逆变电源运行达到稳态后,电流内环控制模块经过PI调节后的输出Vd,Vq和电压Uabc的波形如图10所示。  在电流内环调节中,电流经d-q变换得到信号与经电压外环控制后输入的基准信号作比较,比较结果作为电流控制环的PI调节输入信号,经PI调节后输出稳定的控制信号Vd,Vq,如图10所示,输出信号经过短暂的震荡收敛到了一个稳定的状态,表明了电流内环控制系统稳定性。输出的电压Uabc作为PWM发生器的输入信号,经过PWM发生器离散化之后产生PWM控制信号,形成一个闭环控制系统,保证了整个控制系统的稳定运行。  4、结语  本文通过分析分布式发电作为高效、清洁的发电方式,以其具有投资少、可与环境兼容等优点,及其在微电网中得到了广泛的应用。逆变电源作为微电网的重要组成部分,其设计运行的稳定性、有效性和可行性,直接会影响到整个微电网供电的电能质量。方案设计的电压外环和电流内环双环控制的逆变电源,电压外环可以增加系统的稳定性和消除静态误差,电流内环可以提高系统的快速性和动态特性。采用PI控制策略,利用Matlab软件建立了实验仿真平台。仿真结果表明,本方案所设计的逆变电源具有很好的稳态性能和动态性能,控制系统设计合理稳定,参数的选择合理有效。

    时间:2019-03-26 关键词: matlab 电源技术解析 孤立逆变源

  • 基于Matlab GUI的整流电路仿真

    基于Matlab GUI的整流电路仿真

    整流电路是电力电子电路中出现最早的一种,它的作用是将交流电能变为直流电能供给直流用电设备,整流电路的应用十分广泛。在整流电路的设计过程中,需要对设计电路及有关参数选择是否合理、效果好坏进行验证。如果通过实验来验证,需要经过反复多次的元件安装、调试、重新设计等步骤,这样使得设计耗资大,效率低,周期长。现代计算机仿真技术为电力电子电路的设计和分析提供了崭新的方法,可以使复杂的电力电子电路、系统的分析和设计变得更加容易和有效。Matlab是一种计算机仿真软件,它是以矩阵为基础的交互式程序计算语言。Simulink是基于框图的仿真平台,它挂接在Matlab环境上,以Matlab的强大计算功能为基础,用直观的模块框图进行仿真和计算。其中的电力系统(Power System)工具箱是专用于RLC电路、电力电子电路、电机传动控制系统和电力系统仿真用的模型库。它具有丰富的器件模型和齐全的分析功能,且操作方便。随着对仿真和程序设计通用性及可视化需求的日益增加,Matlab的图形用户界面(GUI)应用也越来越广泛,功能越来越强大。以Matlab 7.1为设计平台,利用Simulink中的Power System工具箱来搭建整流电路仿真模型,并通过Matlab GUI设计整流电路的分析界面。1 整流电路仿真模型整流电路又称交-直流变流器,在整流的同时还对直流电压电流进行调整,以符合用电设备的要求。按不同的分类方式,整流电路的种类非常多,其中单相桥式全控整流电路和三相桥式全控整流电路最为典型。以单相桥式全控整流电路为例,说明其仿真模型的建立。1.1 单相桥式全控整流电路构成单相桥式全控整流电路(纯电阻负载)如图1所示,电路由交流电源u1、整流变压器T 、晶闸管VT1~VT4 、负载电阻R以及触发电路组成。在变压器次级电压u2的正半周触发晶闸管VT1和VT3;在u2的负半周触发晶闸管VT2和VT4,则负载上可以得到方向不变的直流电,改变晶闸管的控制角可以调节输出直流电压和电路的大小。图1 单相桥式全控整流电路原理图1.2 单相桥式全控整流电路模型建立根据单相桥式全控整流电路原理图,在Simulink的Power System工具箱里提取交流电源、晶闸管、RLC 串联电路、脉冲发生器、变压器、示波器等元器件。在Simulink操作平台上连接这些模块,构成单相桥式全控整流电路模型,如图2所示。图2 单相桥式整流电路仿真模型图1.3 模型参数设置双击仿真模型中的各个模块弹出参数设置对话框,就可进行参数设置。在整流电路中,改变晶闸管触发角a,输出直流电压和电流的大小就得到改变。因此触发角a的设置是电路参数中的重要一项。晶闸管的触发采用脉冲触发器(Pulse Generator)产生,脉冲发生器的脉冲周期Td必须和交流电源u2同步,晶闸管的控制角a以脉冲的延迟时间t来表示,t=aTd/360 °。其中,Td=1/f,f为交流电源频率。仿真算法选择ODE23TB算法,当电路带阻感性负载时,应保证触发脉冲具有足够的宽度。2 整流电路GUI界面开发整流电路仿真模型参数的选择十分关键,它直接影响到仿真结果和仿真质量,从而进一步影响到整流电路的设计。为了满足整流电路更高的性能指标,在仿真过程中,就需要不断地修改和设置参数而*费大量时间。另外,还需要反复地打开示波器察看仿真结果,不仅过程繁琐,且效率很低。因此,本文借助Matlab GUI建立了一个整流电路仿真界面,通过此界面,用户可以很方便地在中文名称环境下来设置参数,选择模型等,仿真结果也会直接在界面上显示出来,不仅方便快捷,且大大提高了仿真效率。2.1Matlab GUI的实现方法Matlab可视化界面的设计方法一般有2种:一是直接通过Matlab的脚本文件来实现GUI;另一种是通过Matlab图形用户界面开发环境GUIDE来实现图形界面。Matlab软件GUIDE为用户提供了一个方便高效的集成环境,所有GUI支持的用户控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。一般而言,由于界面中的控件对象属性、行为,既可以在界面中实现,也可以在生成的M文件中用m语言代码在相应的代码段中实现。因此,使用第2种方法实现图形用户界面虽然会给编程人员在修改和重新编辑界面时带来一定的麻烦,但是,其设计过程较为直观、简单,开发周期短。在此,采用第2种方法来实现整流电路的仿真界面。2.2 仿真界面的开发整流电路仿真界面由选择界面和主界面两部分组成,选择界面如图3所示。在选择界面中,把整流电路分为单相桥式全控整流电路、三相桥式全控整流电路和带容性负载的三相不可控桥式整流电路3种。每种电路有相应的电路说明,点击“电路说明”会弹出该电路的工作原理、特性等内容,点击每种电路后的“进入”按钮,即可进入相应电路的主界面。为了保持界面风格的一致性,三类整流电路的主界面设计相似,如点击单相桥式全控整流电路的“电路说明”,弹出其电路说明图如图4所示,单击“进入”,弹出其主界面图如图5所示。电路仿真的主界面分为电路原理图显示区、参数设置区、波形显示区、功能按钮区以及相应的菜单区。图3 整流电路选择界面图4 电路说明界面图5 仿真主界面2.3 仿真主界面的实现打开控件的各个属性进行设置,包括控件的背景色、前景色、Tag值、String值、Value值等。编写相应控件的程序代码,以实现相应的功能。(1)电路原理图的显示。电路原理图是用一个数轴显示的,程序代码为:imread函数用于读取电路原理图图片,显示图片用' image '函数,代码' axis off '的作用是将数轴的坐标去掉。(2)模型参数的设置。参数设置包括负载参数以及仿真时间、电源电压和脉冲发生器的参数设置。设置参数后,点击“仿真”按钮,仿真波形在显示窗口动态显示出来,如同示波器一样。电阻值的设置先用' get '函数来读取电阻值文本框中的数值,再用'set _ param' 函数将读取的数值写入Simulink电阻模块中。仿真时间的设置既可用滑动条又可用编辑文本框。移动滑动条上的滑块位置就可改变滑动条提供的数值,文本框中的参数也会随之改变,反之亦然。文本框和滑动条之间的数据传递用语句:ldT = get(handles. Sli,'Value');set(hObject,'String',OldT)实现。电源电压和脉冲发生器参数的设置采用调用模块封装界面的方法来实现,利用'open_system' 函数,打开模块参数进行设置。(3)仿真波形在主界面的显示。在Simulink模型中,把要显示的波形数据导入workspace当中,再利用plot(tout ,yout)命令画出图形,显示在主界面上。为了在界面指定的坐标轴中输出图形,只要在plot命令执行前添加axes(h_ax es)代码即可。(4)辅助功能的实现。为了优化仿真界面的功能,系统设有一些辅助功能,如栅格开关,显示其他图形、返回和退出等。"栅格开关"是对显示区域的栅格控制,栅格的开与关分别对应'grid on '的选中与否。相关代码为:单击"显示其他波形",即可进入其他波形显示界面,如图6所示。能显示晶闸管的电压、电流波形和触发脉冲的波形,这样既可节省仿真主界面的空间,又可加强仿真界面的层次感。图6 显示其他波形界面(5)菜单的实现。菜单的实现采用的是GUI的uimenu菜单设计,包括"文件"、"负载类型"、"其他"三项。其中"文件"和"其他"菜单的下拉菜单的功能是对界面功能的同一表现,"负载类型"的下拉菜单包括电阻负载和阻感负载,界面的关闭和打开分别用到delete和figure函数。即如果选择阻感负载,系统会关闭纯电阻负载变流电路的仿真界面figure(bisheshiyan4),打开阻感负载的仿真界面figure(danxiangzugan)。由主界面仿真图来看,从对各项参数的设置到仿真运行再到结果显示整个过程操作方便,加上辅助工具的使用,使仿真结果一目了然,对比清晰。如果对仿真结果不满意,可以重新设置参数继续进行仿真。仿真结束后,可以选择"退出"按钮退出当前界面。界面友好,操作简单。3 结语计算机仿真技术是研究电力电子技术的有效手段,它可以辅助工程设计、分析和研究, 也可以辅助教学。本文利用仿真软件Matlab的Simulink和Power System工具箱对应用广泛的整流电路进行建模,并利用Matlab GUI功能建立了整流电路的仿真界面,该界面集参数设置、电路说明、模型修改、模型查看、仿真操作、结果显示和结果显示辅助工具等为一体,大大减化了仿真操作流程,极大提高仿真测试效率。整流电路仿真界面既为实际系统的元件参数选择提供帮助,也为其他变流电路系统界面的开发提供参考。作者:安树 赵霞 徐小华 来源:《现代电子技术》2011年04期

    时间:2019-02-27 关键词: 电路设计 电路 matlab gui

  • 基于Matlab的无失真模拟滤波器设计

    基于Matlab的无失真模拟滤波器设计

      O 引 言  模拟滤波器的设计一般包括两个方面:根据技术指标即滤波器的幅频特性确定滤波器的传递函数H(s);设计实际网络实现这一传递函数。设计滤波器H(s)的关键是找到逼近函数,目前已有多种逼近函数。然而,不论哪种逼近函数都需要进行非常繁琐的计算,还要根据计算结果进行查表。  Matlab语言是一种简单、高效的高级语言,是一种内容丰富、功能强大的分析工具,其应用范围几乎覆盖了所有的科学和工程计算领域。Matlab中提供了丰富的用于模拟滤波器设计的函数,通过编程可以很容易实现低通、高通、带通、带阻滤波器,并能画出滤波器的幅频、相频特性曲线,大大简化了模拟滤波器的设计。在此介绍了用Matlab设计实现一个无失真模拟滤波器,并给出了幅频、相频特性的仿真结果和信号通过无失真滤波器后的眼图。  1 基于Matlab的无失真滤波器设计  设计要求:一个频率为8 kHz数字基带信号经过数/模(D/A)转换后得到一个模拟信号,将该模拟信号输入无失真滤波器,要求在8 kHz频率处衰减为~6 dB;在16 kHz频率(截止频率)之后衰减达到一60 dB以上。这样做的目的是使该模拟信号经过无失真滤波器后,抑制谐波干扰,减小截止频率后波形的起伏。  无失真滤波器由三部分组成,依次为低通滤波器、带阻滤波器、相移电路。其中低通滤波器的作用是通过8 kHz以内的低频信号;带阻滤波器的作用是抑制16 kHz信号,它与前面低通滤波器级联后能使16 kHz之后信号的衰减达到一60 dB以上,有效地抑制各次谐波干扰,并减小16 kHz之后波形的起伏;相移电路的作用是补偿前面两级电路的相位偏移,使得整个无失真滤波器的相位特性成为一条直线。  1.1 低通滤波器设计  低通滤波器采用巴特沃斯型滤波器,因为它具有较平坦的幅频特性,相频特性线性较好,常作为滤波器的初级。在Matlab中,用[b,a]=butter(n,wn,‘s’)语句来实现巴特沃斯滤波器的设计。其中,[6,a]是滤波器传递函数多项式的系数;n为滤波器的阶数;wn为3 dB处的角频率;‘s’表示模拟滤波器的。  在该设计中,采用8阶巴特沃斯滤波器,一3 dB处的频率为8 kHz。主要程序如下:   最终画出低通滤波器的幅频、相频特性如图1(a)所示。实际电路采用由Max291芯片来实现巴特沃斯滤波器,它相当于8阶巴特沃斯滤波器,如图1(b)所示。   1.2 带阻滤波器设计  带阻滤波器(又称陷波器)的作用是抑制某一频率信号而通过其他频率的信号。在Matlab中用[b,a]=butter(n,Wn,′stop′,′s′)语句来实现带阻滤波器,其中[b,a]是滤波器传递函数多项式的系数;n为滤波器的阶数;wn=[fl*2*pi fu*2*pi]分别为阻带低端一3 dB和高端一3 dB处的角频率;′s′表示模拟滤波器的。主要程序如下:   与求低通滤波器的幅频、相频特性类似,带阻滤波器的幅频、相频特性如图2(a)所示。在该设计中,实际电路采用的是VCVS型二阶带阻滤波器如图2(b)所示。电阻R1,R2,R3,电容C1的取值需要确定,它们的计算公式可以通过Matlab编程来得到,最终根据计算结果选择相应的标称值。 点击看原图  1.3 低通滤波器与带阻滤波器的级联  将前面设计的低通与带阻滤波器进行级联,使得级联以后电路的幅频特性能满足设计要求,即在8 kHz频率处的衰减为一6 dB;16 kHz频率(截止频率)之后的衰减达到一60 dB以上。若不能达到要求,则根据仿真结果,不断修改带阻滤波器中的Q值,直到满足设计要求为止。在Matlab中,通过conv函数来实现两个电路的级联。主要程序如下:  %b3、a3为低通和带阻滤波器级联后传递函数多项式系数与求低通滤波器的幅频、相频特性类似,级联电路的幅频、相频特性如图3所示。可见,当Q取O.7时,幅频特性满足设计要求,但相频特性在8 000一Hz以内不是一根直线,为了使输出信号不至于失真,必须加上一级相移滤波器,使总的相移特性成为一条直线。   1.4 相移滤波器设计及无失真滤波器的相频特性  在该设计中,采用的是一阶反相增益全通滤波电路,它的传输函数为:  电路图如图4所示。将低通、带阻、相移电路进行级联构成无失真滤波器。在Matlab中,可以通过编程的方法得到相移、无失真滤波器的相频特性曲线。   主要程序如下:   %b,a为无失真滤波器的传递函数多项式系数,其中b3,a3为低通和带阻滤波器级联后传递函数多项式系数最终求出的相位曲线如图5所示。可以看出,无失真滤波器的相频特性为一条直线。  将各部分的实际电路进行级联,得到无失真滤波器的实际电路,该无失真滤波器的输入模拟信号和输出信号眼图如图6所示。从图中可以看出,眼图迹线清晰。眼睛大且端正,眼睛之间的交点清晰。说明该无失真滤波器的幅频、相频特性良好,可以达到设计要求。   2 结 语  使用Matlab设计模拟滤波器,既简单方便,又避免了复杂的运算和查表。通过仿真可以很直观地看出参数修改后的频率响应曲线,该设计可以满足系统设计的要求,避免了硬件电路反复调整的麻烦,大大提高了工作效率,且Matlab不但可以用于模拟滤波器的设计,还可以用于FIR,IIR等数字滤波器的设计,是一个在滤波器设计方面很有力的工具。

    时间:2019-02-11 关键词: matlab 嵌入式开发 滤波器

  • MathWorks 使用 MATLAB 和 Simulink 加快航空航天设计

    全新飞行分析和可视化功能,加快飞行原型开发 今天,MathWorks 宣布面向航空航天设计领域推出了 MATLAB 和 Simulink 的全新飞行分析和可视化功能。在 2018b 版中,Aerospace Blockset 新增了飞行控制分析工具,协助分析航空航天飞行器的飞行品质;Aerospace Toolbox 增添了座舱飞行仪器用户界面的自定义功能,用于可视化和分析航空航天飞行器的运动和行为。现在,工程师可以制定从早期飞行器设计和开发阶段到飞行原型开发的连续工作流程,从而缩短从设计到测试所需的时间。 航空航天设计需要满足严格的设计和监管要求,以确保符合 MIL-F-8785C、DO-178 B 和 DO-178 C 等标准,工程团队通常会借助 Simulink 和 DO Qualification Kit 来实现这一目标。工程师之前使用内部或第三方工具执行飞行可视化和分析,现在可以直接在 Simulink 环境中进行飞行仿真、可视化和分析。得益于在设计工作流程早期使用基于模型的设计和 Simulink,团队可以更轻松地维护模型和代码。另外,工程师还可以与其他团队以及供应商分享模型,确保满足所有要求。 MathWorks 设计自动化市场总监 Paul Barnard 表示:“建模、仿真、分析和可视化功能对高度管制的航空航天行业至关重要。因此,Simulink 成为了这些工程师的首选设计环境。现在,由于这些团队能够执行迭代,因此可在数周内完成原型设计,而无需花费数月时间,从而进一步缩短了设计所需的时间。这样一来,工程师便可在预定期限内完成开发工作,同时还可保证高精度,并满足相关标准的要求。” Aerospace Blockset 能帮助工程师快速对航空航天飞行器动力学进行建模、仿真和分析。飞行控制分析工具是 2018b 版本中的新增功能,能对航空航天飞行器的动态响应执行高级分析。该工具包含模板和函数,前者可以帮助用户快速入门,后者则可用于计算和分析在 Simulink 中搭建的飞机模型的飞行品质。 Aerospace Toolbox 包含工具和函数,能帮助通过参考标准和模型来分析和可视化航天航空飞行器的运动。飞行仪表是 2018b 版本中的新增功能,可以通过标准座舱仪表显示测量结果。

    时间:2019-01-17 关键词: mathworks matlab simulink 航空航天

  • 贝加莱Matlab/SIMULINK开发工具的建模与实现

    贝加莱Matlab/SIMULINK开发工具的建模与实现

    今天,无论是OEM机械制造业还是大型过程控制项目对于机器自动化程度的需求在不断提高,对于自动化系统的开发需求也越来越苛刻。除了产品系列的变化,还包括功能需求的变化以及适用生产范围的变化,而这些变化有时候往往跨度较大,工程师们必须面对各种变化的需求设计开发出不同的产品和系统方案。 如何使得机器的设计更加自动化?这是一个非常值得探讨的问题。目标、对象、方法与工具是能够更好完成项目的关键,谁能够提供这样的自动化功能并用实际的应用来证明?什么方式更为清晰?什么工具更为有效?——这些如何与自动化更好的结合,使机器的设计更加自动化?V型模式 V型模式是由需求分析、规范说明、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试等多个环节构成,并且在V字型的横向上一一对应,如:验收测试对应与需求分析阶段的内容,系统测试则对应于规范说明单元的内容,集成测试对应于概要设计的内容。 V型开发模式提供了一个很好的软件项目开发与测试的模型,使整个项目更为清晰有序地进行,并且严格地控制了软件项目的质量。 自上世纪80年代后期V型开发模式开始被广泛使用。在德国,采用V型模式做为软件开发与测试的标准模式,在奥地利与瑞典等国家,V型模式同样作为一个重要的标准与规范而广为使用。目前,V型模式已经广泛应用于汽车制造业、电力行业的水轮机、汽轮机设计与风力发电机组、大型变压器、工程机械与港口机械以及军事领域的太空探测器、雷达、定位系统等。MATLAB/SIMULINK集成在V型开发模式中 目前,由Mathworks公司提供的MATLAB/SIMULINK是最为广泛使用的建模与软件测试工具。B&R系统同样也支持Matlab/SIMULINK仿真模型的导入,它将仿真模型导入到Automation Studio这个开发工具中,使仿真系统可以在B&R控制器上进行硬件的仿真及系统功能的测试。 Matlab/SIMULINK可按系统内在的物理关联设计完整的复杂系统,可使传感器、控制器、机械单元、操作机构等构成一个整体。系统的各个组成部分在Matlab/SIMULINK中是以模块化的方式来构建的,可调用各种标准控制模型或自定义控制模型。各模型间相互关联成为一个整体,并通过仿真过程得到优化的系统参数。通过自动代码生成的功能,Matlab/SIMULINK的仿真模型可生成工程实例的代码,这种代码的效率可与人工代码相媲美,这就是为什么Matlab/SIMULINK被广泛使用的原因。带来的益处1.自动代码生成,节省开发周期 对于复杂算法的设计,自动代码生成是比较具有吸引力的。因为复杂的算法必须是一个经过测试的算法模型,通过人工编写的代码,可能需要反复的调试才能使用,而通过Matlab/SIMULINK生成的代码是使用经过无数次测试的代码生成器得出的代码,具有极高的可用性,并且通过MATLAB/SIMULINK提供的代码只需要较少的调试时间。2.系统仿真测试可直接应用于控制器 如果仿真的结果不能直接连到控制器中进行测试,而需要重新编写代码,就会造成人工的巨大浪费。而如果控制器可以直接接收来自MATLAB/SIMULINK的测试代码,那么就可以节省很多时间。3.系统测试可以降低实际机器调试的成本 对于机械系统而言,尤其是新机型的开发,如印刷机的调试,需要使用很多纸张或印刷材料。像包装机械、轮胎机械,都意味着需要巨大的调试成本。但通过仿真后的测试则会大量地降低调试成本,更重要的是,有些测试不仅仅是需要巨大的成本,还需要有时机——例如:在风力发电项目中遇到恶劣天气而引发的Safety动作,这个时机指的是现场并非随时都能获得25级风力,这就是为什么F1要投入巨大的费用在风洞测试上。4.机器的改型设计更加简单 对于MATLAB/SIMULINK而言,新机器的更高性能或者机器的新增功能将无需再进行复杂的测试,就可以快速的实现,这样对于新机型的设计来说,就可以很好的利用原有模型,而只增加一些新的电气开关或者传感器,或提升性能等级。对于那些需要开发机器的系列产品和机器的长远规划来说,这种方式就非常简单了。 因此,B&R对于MATLAB/SIMULINK的支持有着巨大的优势,特别是在机械设计领域,这意味着客户可以建立更为有效的自身的开发平台。Automation Studio——集成开发环境是关键 集成开发环境是一个很关键的因素,它能够将所有的控制对象完整的集成在一个开发平台上,否则,所谓的集成开发就是空洞的。而B&R Automation Studio很好的满足了这一关键需求,能够面向整个控制系统的硬件对象——HMI、PLC、I/O、Motion、Hydraulic、Safety等等,这样就包括了整个机器控制所需的对象,并能够接收仿真的结果去实现机器的功能。Automation Studio支持MATLAB/SIMULINK工具箱 下面列出了AS软件所支持的SIMULINK工具箱,都是机械设备领域控制系统开发所需的工具包软件,也都很常用。l Stateflow工具箱——用于生成代码l C-MEXs函数箱l 控制系统工具箱l 信号处理工具箱l 嵌入式m-filesl 模糊控制工具箱l 更多 总之,对于开发者来说,Matlab/SIMULINK是一个非常强大的开发工具,可以使机器的设计更加自动化。

    时间:2018-12-12 关键词: 开发工具 建模 matlab 嵌入式开发 贝加莱

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章

技术子站

更多

项目外包

更多

推荐博客