matlab编程怎么和simulink交互?

我用simulink画了一个框图,很简单,就是一个正弦信号输入和一个scope显示输出波形,文件名为sinewave.mdl
我关掉simulink之后,怎么通过matlab编程代码,来控制sinewave.mdl里正弦信号的参数(频率等),并且让sinewave.mdl自动运行后显示输出波形?

也就是说,达到的效果就是:我在程序界面输入一个函数及其参数频率,然后程序会自动运行sinewave.mdl并且显示scope波形(其中正弦信号是我输入的频率)。
(1)就是不用自己打开sinewave.mdl,而是在编程界面输入一个命令,然后可以运行出sinewave.mdl中scope的波形。如果直接输入sinewave.mdl的话,确实可以弹出mdl的框图,但是没有scope的波形。我希望输入一个命令后,能运行sinewave.mdl并显示scope的波形。
(2)就是频率,其他的参数我可以类推。我是打算编一个函数,而这个函数的参数用来直接修改sinewave.mdl中sine wave的频率。

1、Simulink中新建“New Model”,按如下电路搭建模型。

2、其中,电源模块和测量模块的参数设置如下。

3、锁相环参数设置如下图所示。

4、运行后,示波器波形如下图所示,可看到精确的锁相。

注意事项:

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-05-21

基本思路

 

1、运行Simulink模型可以使用sim函数,仿真结果可以通过以下几种方式导出:

(1)设置Scope模块的Save data to workspace

(2)模型中加入Outport模块,并设置模型的Workspace I/O

(3)使用To Workspace模块项工作区导入数据。

 

2、参数的修改可以使用以下方法:

(1)使用工作区变量作为模块参数,例如,Sine Wave模块的Frequency不直接输入数据,而是使用变量名f,并在仿真之前给f赋值。

(2)使用set_param函数直接修改模块参数。

 

需要楼主明确一下要求

(1)所谓【让sinewave.mdl自动运行后显示输出波形】,是指打开模型,在Scope中显示波形,还是自己创建绘图窗口进行绘图?

(2)要修改的有哪些参数?除频率外,还要改什么?

(3)这句话:【在程序界面输入一个函数及其参数频率】,“函数”是指什么?是指准备编写的程序吗?

 

做了一个简单的例子,请参见附件。

直接运行m文件即可,或者指定频率,例如:

zd2138230940810538948(5)

追问

由于字数限制,我写在问题补充里了。

反正就是说:现在我只有一个sinewave.mdl,我编一个程序,比如control ( f ) 然后我在界面执行 control (50) 之后,自动运行sinewave.mdl并且弹出scope的波形,此时sine wave的平率为50。

我就是不知道这个control (f) 怎么写……(再加50分)

追答

把我给的附件中的zd2138230940810538948.m改成control.m就可以了。

哦对了,模型或者使用我提供的那个,或者把你的模型中Sine Wave模块的Frequency参数改成f

追问

我去……大神你太给力了!
最后最后,还想问一下,m文件里第一行和最后一行我知道,是创建函数和打开SCOPE,不过这三行分别是啥意思啊?

if ~nargin, f = 1; end

assignin('base','f',f);

sim('sinewave')

追答

if ~nargin, f = 1; end
用于为频率提供默认值(如果在调用函数时没有提供输入参数,比如直接在编辑器里面按F5运行)。


assignin('base','f',f);
把指定的频率值传递到基本(base)工作区。Simulink模型只能使用基本工作区中的变量。

 

sim('sinewave')

运行指定的Simulink模型。与通过GUI运行不同的是,使用sim函数运行在仿真结束前是不能干预的。

本回答被网友采纳
第2个回答  2014-09-08
大家没有什么兴趣啊,我后来发现了一个院长关于GUI的帖子,觉得用GUI的界面设计,面向对象的编程技术应该可以实现人机互动,不知道GUI界面能否调用simulink程序
以上回答你满意么?

matlab编程怎么和simulink交互?
1、Simulink中新建“New Model”,按如下电路搭建模型。2、其中,电源模块和测量模块的参数设置如下。3、锁相环参数设置如下图所示。4、运行后,示波器波形如下图所示,可看到精确的锁相。注意事项:MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比...

各位大神,MATLAB中如何将编写M函数文件与Simulink之间相互调用,小弟...
先按照m函数编程规范和要求,编写好自己所需的函数。特别关注好函数的输入,输出变量以及函数名。然后在simlink环境中,在simlink编辑菜单中选择加入函数功能框,在添加函数框中输入已编好的函数名即可。注意前后连接时的输入和输出变量的对应关系。这样即可实现在simlink中调用m函数。伟敏 ...

使用Matlab Function为simulink设置输入量,并获取返回值
首先,你可以在m函数中创建一个function,明确输入和输出的设定。由于目前没有直接调用Simulink并进行数据交互的内置函数,你需要通过一层m脚本作为数据传递的中间桥梁。m函数的主要职责是接收function传递的参数,利用set_param或其他方式设置Simulink模型的参数,然后启动Simulink进行计算。计算完成后,Simulink的...

怎样将MATlab中的simulink与程序结合起来用?
就是在simulink中用‘to workplace’这个模块,来进行参数设置啊,然后再在matlab的命令窗口写代码就行。

matlab m文件中如何调用simulink模块
1、打开Simulink在Simulink库中选择”Simulink“库,在其下的子库”User-Defined Functions“中选择 ”MATLAB Function“并添加到Simulink仿真框图中。2、打开m文件:如下图所示,双击MATLAB Function 即可打开编辑环境。3、m语言编辑:在打开Function函数后即可进行语言编辑。4、变量的定义:确定输入输出函数,...

matlab m文件中如何调用simulink模块
1、首先,打开Simulink,在Simulink库中选择“ Simulink”库,在子库“ User-Defined Functions”中选择“ MATLAB Function”,然后将其添加到Simulink仿真框图中,如下图所示。2、其次,打开m文件,双击“MATLAB Function”打开编辑环境,如下图所示。3、接着,m语言编辑:打开Function函数后即可进行语言编辑...

MatlabM文件与simulink连接问题
先运行M文件,然后就可以使用Simulink模型了。如果是脚本文件,变量会保存在基本工作区,Simulink模型可以直接使用。如果是函数M文件就比较麻烦一些,需要把相关变量使用evalin函数传递到基本工作区。如果希望打开或运行Simulink模型时自动运行M文件,可以设置模型的回调函数PreLoadFcn、PostLoadFcn或InitFcn。如果...

simulink模型怎么导入到matlab里面
软件:WIN10软件版本:3.2免费 操作软件:matlab 1、首先在电脑中找到并打开matlab,点击工具栏快捷图标,即可启动simulink。2、然后输入:simulink, 按回车键。3、回车键之后如图,成功启动simulink。4、还可以在matlab页面中,点击文件file。5、选择new——model,成功进入simulink界面了。

如何在Matlab中使用Simulink库?
1、第一步,打开Matlab软件的Simulink库,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,依次单击“File”-->“New”-->“Model”选项,创建一个新的模型界面,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,绘制传递函数,使用Inport和Outport,见下图,转到下面的步骤。4...

如何把MATLAB中的数据读入到SIMULINK中
导入simulink 在similink里面有个 From File模块 你把你的.m文件名输入到那模块 运行Simulink模型可以使用sim函数,仿真结果可以通过以下几种方式导出:(1)设置Scope模块的Save data to workspace;(2)模型中加入Outport模块,并设置模型的Workspace I\/O;(3)使用To Workspace模块项工作区导入数据。

相似回答