matlab编程怎么和simulink交互? 200
我关掉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模型可以使用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。
以上回答你满意么?