精华内容
下载资源
问答
  • Matlab sim函数的用法

    万次阅读 多人点赞 2016-11-26 20:50:37
    最近用Simulink做仿真的时候,需要在m文件里运行Simulink模型,而且需要传递一些参数,所以要用到sim函数。查看了help文档,并百度到了一些关于sim的用法的答案,但并没能达到我要的效果,大多数答案都是描述sim函数...

    一、引言

    最近用Simulink做仿真的时候,需要从m文件里运行Simulink模型,而且需要在m文件中传递一些参数到Simulink模型,也需要将Simulink模型的运行结果发送回m文件,所以要用到sim函数。

    查看了sim函数的help文档,并百度到了一些关于sim的用法的答案,但并没能达到我要的效果,大多数答案都是描述sim函数的参数,并没有说Simulink模型中应该使用什么模块以及如何设置,所以在尝试的时候经常出错。

    通过不断尝试,终于达到了我想要的效果:在m文件中向Simulink模型传递参数,并运行模型,得到模型运行的结果数据。

    二、Simulink模型

    下面以一个简单的PID控制仿真模型为例,Simulink模型如下:

    模型中,PID控制器模块的参数应该设置成如下形式:

    模型中,In是PID控制的期望输入,Kp,Ki,Kd分别是PID控制参数,这四个参数都要从m文件传递给Simulink模型。out是Simulink模型运行得到的结果。

    模型中,To Workspace模块将仿真结果传递给m文件,可以在m文件中直接调用。

    三、m文件

    如果要在m文件中运行这个模型,则m文件程序可以写成这样:

    clear all;
    close all;
    ts = 1e-4;
    In = 5;
    Kp = 60;
    Ki = 1;
    Kd = 3;
    simOut = sim('sim_test');
    for k = 1:1:length(out)
        time(k) = k * ts;
    end
    figure(1);plot(time,out);grid on;

    可以看到在m文件中,给In, Kp, Ki, Kd都进行了赋值。ts表示仿真模型的控制周期。out是Simulink模型的仿真结果,在m文件中可以直接调用。‘sim_test’就是Simulink模型的名字,要与m文件同路径,如果不同需要带上路径。

    四、结果

    通过运行m文件就可以运行Simuliink模型,并且可以将模型结果通过plot画出来。

    仿真结果如下图所示:

    黑实线表示期望输入In,绿实线表示模型仿真结果,也就是Simulink中的参数out。

    这样就能通过m文件对Simulink模型进行传递参数、运行模型并获取结果的操作。

    展开全文
  • MatlabMatlab中常用的函数、案例详细攻略目录常用函数1、与文件相关2、MATLAB GUI不同控件函数间变量传递方法常用函数Matlab中的bwmorph函数解释 bwmorph:对二值图像的形态学操作。 BW2 = bwmorph(BW,operation) ...

    Matlab:Matlab中常用的函数、案例详细攻略

    目录

    常用函数

    1、与文件相关

    2、MATLAB GUI不同控件函数间变量传递方法


    常用函数

    Matlab中的bwmorph函数解释
    bwmorph:对二值图像的形态学操作。
    BW2 = bwmorph(BW,operation)
    BW2 =bwmorph(BW,operation,n)
    BW2 = bwmorph(BW,operation)对二值图像应用形态学操作。
    BW2 = bwmorph(BW,operation,n)应用形态学操作n次,n可以是Inf,这种情况下该操作被重复执行直到图像不再发生变化为止。
    
    Operation是以下的字符串:
    Operation Description
    'bothat'是形态学上的“底帽”变换操作,返回的图像是原图减去形态学闭操作处理后的图像(闭操作:先膨胀再腐蚀)
    'bridge'连接断开的像素。也就是将0值像素置1如果他有两个非零的不相连(8邻域)的像素,比如:
    1 0 0                                            1 1 0
    1 0 1   经过bridge连接后变为  1 1 1
    0 0 1                               0 1 1
    'clean'
    移除孤立的像素(被0包围的1)。比如下面这个模型的中心像素:
                  0 0 0
                  0 1 0
                  0 0 0
    'close'执行形态学闭操作(先膨胀后腐蚀)
    'diag'
    利用对角线填充来消除背景中的8连通区域。比如:
    0 1 0                                 1 1 0
    1 0 0      经过diag变成   1 1 0
    0 0 0                                 0 0 0
    'dilate'利用结构ones(3)执行膨胀操作。
    'erode'利用结构ones(3)执行腐蚀操作。
    'fill'
    填充孤立的内部像素(被1包围的0),比如下面模型的中心像素:
                    1 1 1
                    1 0 1
                    1 1 1
    'hbreak'移除H连通的像素,例如:
    1 1 1                          1 1 1
    0 1 0            变成          0 0 0
    1 1 1                          1 1 1
    'majority'将某一像素置1如果该像素的3×3邻域中至少有5个像素为1;否则将该像素置0
    'open'执行形态学开操作(先腐蚀后膨胀)
    'remove'移除内部像素。该选项将一像素置0如果该像素的4连通邻域都为1,仅留下边缘像素。
    'shrink'n = Inf时,将目标缩成一个点。没有孔洞的目标缩成一个点,有孔洞的目标缩成一个连通环。
    'skel'n = Inf时,移除目标边界像素,但是不允许目标分隔开,保留下来的像素组合成图像的骨架。
    'spur'移除刺激(孤立)像素。比如:
    0  0  0  0                   0  0  0  0
    0  0  0  0                   0  0  0  0
    0  0  1  0    变成       0  0  0  0
    0  1  0  0                   0  1  0  0
    1  1  0  0                   1  1  0  0
    'thicken'n = Inf时,通过在目标外部增加像素加厚目标直到这样做最终使先前未连接目标成为8连通域。
    'thin'n = Inf时,减薄目标成线。没有孔洞的目标缩成最低限度的连通边;有孔洞的目标缩成连通环。
    'tophat'执行形态学“顶帽”变换操作,返回的图像是原图减去形态学开操作处理之后的图像(开操作:先腐蚀再膨胀)。

    306a6ef6479f78a84e84292427c102c9.png

    bw = bwareaopen(bw, threshold) %函数作用是删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域

    306a6ef6479f78a84e84292427c102c9.png

    1、与文件相关

    [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)%该函数是创建标准的对话框并通过交互式操作取得文件名 FileName:返回的文件名 PathName:返回的文件的路径名 FilterIndex:选择的文件类型 FilterSpec:文件类型设置 DialogTitle:打开对话框的标题 DefaultName:默认指向的文件名

    306a6ef6479f78a84e84292427c102c9.png

    2、MATLAB GUI不同控件函数间变量传递方法

    在GUI中一个控件函数结束后,会将在这个函数中使用的变量全部删除,如果想在另一个控件中使用,则必须想办法将这个变量保存传递,方法有以下几种:

    T1、使用globe定义全局变量

    这种方法不是很好,一方面是要在使用变量的函数里面要先对变量进行声明,另一方面,在一个函数里面对变量进行操作就会对所有函数起作用,这样不是太方便,但毕竟是一种解决方法。
    function btn1_callback(hObject,userdata,handles)
    global var1
    %对var1的处理
    function btn2_callback(hObject,userdata,handles)
    global var1
    %对var1的引用T2、使用guidata函数

    使用方法是:
    handles.X=str2double(get(hObject,'String'));
    guidata(hObject,handles);
    在别的函数中只要使用handles.X就可以得到str2double(get(hObject,'String'))数值。
    这种方法的好处是,在改变了控件的Tag后,方便使用相应控件传递来的数据,缺点是要改变控件的句柄handles值,这样似乎不是很安全。T3、使用空间的userdata属性保存数据

    使用方法如下:
    set(handles.X,'userdata',a);
    这里a就是要传递的变量,现在暂时保存在这个控件的userdata中,需要取出时:
    a=get(handles.X,'userdata');
    即可将a传递到新函数中,如果要传递的是多个变量,可以使用结构数组进行传递
    这种方法是最安全且自由度高的传递犯法,推荐!!!

    展开全文
  • Matlabsim函数的用法

    万次阅读 2018-11-21 16:46:58
    Simulink做仿真的时候,需要在m文件里运行Simulink模型,而且需要传递一些参数,所以要用到sim函数。在m文件中向Simulink模型传递参数,并运行模型,得到模型运行结果。  以一个简单的PID控制仿真模型为例,如果要...

    Simulink做仿真的时候,需要在m文件里运行Simulink模型,而且需要传递一些参数,所以要用到sim函数。在m文件中向Simulink模型传递参数,并运行模型,得到模型运行结果。

        以一个简单的PID控制仿真模型为例,如果要在m文件中运行这个模型,则m文件程序可以写成这样:

    clear all;
    close all;
    ts = 1e-4;
    In = 5;
    Kp = 60;
    Ki = 1;
    Kd = 3;
    simOut = sim('sim_test');
    for k = 1:1:length(out)
        time(k) = k * ts;
    end
    figure(1);plot(time,out);grid on;

    其中,In是PID控制的期望输入,Kp,Ki,Kd分别是PID控制参数,都要从m文件中传递给Simulink模型。out是Simulink模型运行得到的结果。

        Simulink模型框图如下:

    其中,PID模块的参数应该如下图所示:

    To Workspace模块将仿真结果传递给m文件,可以在m文件中直接调用。

        通过运行m文件就可以得到模型的仿真结果如下图所示:

        这样就能通过m文件对Simulink模型进行传递参数、运行模型并获取结果的操作。
    --------------------- 
    作者:Hugoool 
    来源:CSDN 
    原文:https://blog.csdn.net/u014170067/article/details/53355033 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • MATLABsim函数的用法

    千次阅读 2019-03-23 10:51:57
    Starting with R2009b, the sim command was enhanced to provide greater compatibility with parallel computing. The improved single-output format saves all simulation results to a single object, simplify...

    Starting with R2009b, the sim command was enhanced to provide greater compatibility with parallel computing. The improved single-output format saves all simulation results to a single object, simplifying the management of output variables.

    For backward compatibility with R2009a or earlier releases, use the backward-compatible syntax:

    [T,X,Y] = sim('model',Timespan, Options, UT)
    [T,X,Y1,...,Yn] = sim('model',Timespan, Options, UT)
    If you specify only the model argument, Simulink automatically saves the time, state, and output to the specified output arguments.

    If you do not specify any output arguments, Simulink determines what data to log based on the settings for the Configuration Parameters > Data Import/Export pane. Simulink stores the simulation output either in the current workspace or in the variable ans, based on the setting for Save simulation output as a single object parameter.

    Backward-Compatible Syntax Input and Output Arguments
    Argument    Description

    T

    The time vector returned.

    X

    The state returned in matrix or structure format. The state matrix contains continuous states followed by discrete states.

    Y

    The output returned in matrix or structure format. For block diagram models, this variable contains all root-level blocks.

    Y1,...,Yn

    The outports, which can only be specified for diagram models. Here, n must be the number of root-level blocks. Each outport will be returned in the Y1,...,Yn variables.

    'model'

    The name of the model to simulate.

    Timespan

    The timespan can be TFinal[TStart TFinal], or [TStart OutputTimes TFinal]. Output times are time points returned in T, but in general, T includes additional time points.

    Options

    Optional simulation parameters created in a structure by the simset command using name-value pairs.

    UT

    Optional external inputs. For supported expressions, see Load Data to Root-Level Input Ports.

    展开全文
  • 神经网络模型在数学建模中的应用神经网络是机器学习的...Matlab中神经网络相关介绍:1.在MATLAB中运用神经网络时主要分为三步:设计、训练、测试:设计包括:设计每层神经元数目(输入层,隐含层,输出层)设定转...
  • 如果在m脚本中调用sim(),基本都不会有什么问题; 可是如果在function中调用sim(),则会遇到错误,...可是这样运行之后,base workspace里面会有很多变量,在运行之后没有被删除,这时候需要在函数内将base workspac...
  • MATLAB——神经网络sim仿真函数

    千次阅读 2019-03-10 23:16:00
    转载于:https://www.cnblogs.com/long5683/p/10508012.html
  • 前言Simulink作为MATLAB中最为强大的APP,相信用的人不会少,不过MATLAB里的sim()函数,你们又知道多少呢?用过Simulink的同学应该不会对这个界面感到陌生吧。图形界面的好处是直观,学习成本低,使用方便,但是当你...
  • 【作者吐槽】辗转反侧解决C#调用matlab调用神经网络工具箱的问题,一致报错...未定义与 'struct' 类型的输入参数相对应的函数 'sim'。 Error in => testSim.m at line 8. ... Matlab M-code Stack Trace ....
  • matlab神经网络常用函数 sim–对训练好的的网络进行仿真 clear all; net=newp([-2,2;-2,2],1); P=[0,0,1,1;0,1,0,1]; T=[0,0,1,1]; net=train(net,P,T); Y=sim(net,P); Y=net(P) hardlim、hardlims–感知器传输...
  • 系统中的ADAS场景搭建以及仿真建模是使用的Prescan软件,Prescan是西门子旗下的自动驾驶场景搭建软件,是基于matlab/simulink使用的。Prescan安装后桌面会出现三个图标,分别是Prescan GUI,Prescan sim,Prescan ...
  • C# matalb混合编程/matlab神经网络工具箱无法编译/C#调用matlab工具箱函数“未定义与 'struct' 类型的输入参数相对应的函数 'sim'” - Emra - 博客园 https://www.cnblogs.com/Erma/p/9349185.html 贝叶斯网络...
  • 新版Matlab中神经网络训练函数Newff的详细讲解-新版Matlab中神经网络训练函数Newff的使用方法.doc 本帖最后由 小小2008鸟 于 2013-1-15 21:42 编辑 新版Matlab中神经网络训练函数Newff的详细讲解 一、 ...
  • 这个程序的目的是通过matlab本身的GA函数来优化模糊控制中的隶属度函数的参数,模糊控制的模型大体如图(标签一直没找到matlab与simulink) <p style="text-align:center"><img alt="" height=...
  • matlab神经网络newff函数的用法

    万次阅读 多人点赞 2016-10-29 20:23:34
    转自:matlab神经网络newff函数的用法,保存在此以学习。 设[P,T]是训练样本,[X,Y]是测试样本; net=newrb(P,T,err_goal,spread); %建立网络 q=sim(net,p); e=q-T; plot(p,q); %画训练误差曲线 q=sim...
  • 比例加权函数(称为ECSF)已被优化以更好地复制心理物理数据颜色的外观,和适当的尺寸中心环绕抑制窗口已被确定通过对眼睛固定数据训练高斯混合模型,从而避免了特别的参数选择。 论文:Saliency Estimation Using a...
  • Matlab基础知识: 1.这里涉及的知识是工作空间。 function使用的是Caller workspace,跟Command Windows使用的Base Workspace不是一个工作空间,它是在函数进入执行前开辟,函数调用结束时进行释放。 2. 除了声明...
  • 课程设计做个一个CDMA系统模拟!并非采用sim工具箱!纯matlab矩阵运算函数编制而成。 运行速度快!课运行任意长度的信源随机比特。 运行结果:提供误码率、BPSK频谱分析等…
  • sim 仿真运行一个simulink模块 sldebug 调试一个simulink模块 simset 设置仿真参数 simget 获取仿真参数 线性化和整理命令 linmod 从连续时间系统中获取线性模型 linmod2 也是获取线性模型,采用高级方法 dinmod 从...
  • sim

    千次阅读 2018-09-22 19:50:36
    matlab2016a中sim函数的应用: 用处:对神经网络进行仿真(simulink的简写) 句法:[Y,Pf,Af,E,pref]=sim(net,P,Pi,T) [Y,Pf,Af,E,pref]=sim(net,{Q TS},Pi,Ai,T) [Y,Pf,Af,E,pref]=sim(net,Q,Pi,Ai,T) ...
  • matlab里m文件中用sim函数启动simulink后,to workspace模块的数据没存到workspace中,怎么解决?m文件出现的问题:解决办法 m文件 在matlab中,m文件里用以下语句运行simulink模型,将输出结果保存在to workspace...
  • matlab开发-备用淹没模型。matlab函数用于将tunami n2-浅水非线性模型强制为sim独立应用程序
  • MATLAB实现神经网络

    千次阅读 2019-03-30 20:24:27
    一 BP神经网络实现不使用MATLAB神经网络工具箱 问题 分析 MATLAB实现代码 运行结果 绘制的图像 二 使用MATLAB的神经网络工具箱简易实现BP网络 ...sim函数 MATLAB实现代码 运行结果 绘制的图像 ...
  • 点图sec 正割sech 双曲正割semilogx X轴对数刻度坐标图semilogy Y轴对数刻度坐标图series 串联连接set 设置图形对象属性setfield 设置...函数sim 运行SIMULINK模型simget 获取SIMULINK模型设置的仿真参数simple 寻找...
  • 我建立了一个有1个隐层(10个神经元) 输入向量11 输出向量11 隐层输出层转移函数分别**‘tansig’,‘purelin’** 的简单BP神经网络用来拟合y = sinx 为了弄清楚其拟合结果的计算公式 将这个net训练后 我根据其权值...
  • Grating coupler - Matlab-driven optimization (2D) Main函数 %添加Lumerical Matlab API path(path,'C:\Program Files\Lumerical\FDTD\api\matlab'); %将Lumerical API路径...sim_file_path=('C:\Learning\Matlab ...
  • 2.2.1 神经网络仿真函数sim 2.2.2 神经网络训练及学习函数 2.2.3 神经网络初始化函数 2.2.4 神经网络输入函数 2.2.5 神经网络传递函数 2.2.6 其他重要函数 2.3 感知器的神经网络工具箱函数 2.3.1 感知器创建...
  •  嵌入式 MATLAB 子集包括了众多的 MATLAB 功能,有 270 多个 MATLAB 运算符和函数以及90 多个定点工具箱(Fixed-Point Toolbox)函数。嵌入式MatlabMatlab编程语言的一个子集,支持多种MCU、DSP和CPU。用户可以...

空空如也

空空如也

1 2 3 4 5
收藏数 94
精华内容 37
关键字:

matlab函数sim

matlab 订阅