simulink如何使用

simulink如何使用,第1张

MATLAB使用Simulink 进行建模与仿真方法

1、打开MATLAB软件,点击左上角的新建,

2、然后选择simulink Model,如下图所示

3、此时将进入如下图所示的Simulink界面,点击工具栏中的Library Browser,如下图所示。

4、此时将打开Simulink的库浏览器,这里存放着用于建立仿真模型的设备及器件等模块,如下图所示。

5、选择上述模型库中小模块,拖动到Simulink仿真模型窗口中,

6、基本的仿真模型需要信号发生装置,可以选择如下图所示的各种信号发生器,如正弦波信号发生器,将其拖动到仿真模型框图。

7、有了信号发生装置,作为一个合理的仿真模型则必有信号接收与显示装置,如下图所示,可以选择Scope进行波形显示。

8、选择好基本的输入输出装置后,如下图所示,

9、在仿真模型框图中布局好装置位置并进行连线。

10、仿真模型连线完毕后,检查无误后就可以按下Run按钮,运行的仿真程序了,如下图所示,

11、可以在显示器件中观察仿真结果,并进行模型调整与修改。

方法/步骤

菜单:工程→ 属性 选择配置属性下的 VC++ 目录。在包含目录栏目中添加matlab相关的include文件。我的matlab装在F盘中,只要把F:\MatLab\extern\include\win64和F:\MatLab\extern\include两个目录配置上去就好,这里注意下要是win64的vs所建立的工程必须是x64的,否则会出错,比较低的版本则没有win64,只有win32 这样是建立一个x86或win32工程即可

在 库目录栏目中添加matlab相关的lib文件。例如:F:\MatLab\extern\lib\win32\microsoft;F:\MatLab\extern\lib\win32;F:\MatLab\extern\lib\win64\microsoft;F:\MatLab\extern\lib\win64;

注意这里是针对于不同的工程和机器位数,最好全部加上去,以免出错。

菜单:工程 属性 选择配置属性下的 连接器→ 输入。

在 附加依赖项 栏目中输入项目需要引用matlab的的lib文件库。

libmatlib libenglib libmxlib

菜单:工程 属性 选择配置属性下的 连接器→ 常规。

在 附加库目录 栏目中,添加库所在的目录名称。如:F:\MatLab\bin\win64

这一步相当的重要,不然的话,各种dll文件找不到,lib文件找不到之类的报错。

测试:从网上随便找一个代码

#include <iostream>#include <iomanip>using namespace std;#include <engineh>#include <stringh>

void main(){ // 定义循环变量 int i = 0, j = 0;

// 状态变量

int nStatus = 0; // 定义MATLAB引擎指针 Engine ep;

// 定义mxArray变量指针 mxArray A, B;

// 定义矩阵数组

// 注意:VC中矩阵的行列次序与MATLAB正好时相反,需要转置。 double arData[3][3] = {{75,163,96},{132,89,123},{96,54,137}}; double arResData[3][3];

// 输出原矩阵 cout<<"原矩阵为:"<<endl; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { cout<<setw(10)<<arData[i][j]<<" "; } cout<<endl; } // 打开MATLAB引擎 ep = engOpen(NULL); if(ep == NULL) { cout<<"无法打开MATLAB引擎。"<<endl; exit(EXIT_FAILURE); }

// 是否显示MATLAB窗口:true-显示;false-隐藏。

nStatus = engSetVisible(ep, false);

if(nStatus != 0)

{

cout<<"设置MATLAB显示属性失败。"<<endl;

exit(EXIT_FAILURE);

}

// 为mxArray变量分配空间 A = mxCreateDoubleMatrix(3,3,mxREAL); B = mxCreateDoubleMatrix(3,3,mxREAL); if(A == NULL || B == NULL) { cout<<"为mxArray变量分配空间失败。"<<endl;

exit(EXIT_FAILURE); }

// 将数组中的数据写入到mxArray空间中

memcpy((void)mxGetPr(A),(void)arData,sizeof(arData));

// 将矩阵变量A写入到MATLAB引擎空间

nStatus = engPutVariable(ep,"A",A);

if(nStatus != 0)

{

cout<<"矩阵变量写入MATLAB引擎空间失败。"<<endl;

exit(EXIT_FAILURE);

}

// 执行引擎命令求矩阵A的逆矩阵

nStatus = engEvalString(ep,"B=inv(A)");

if(nStatus != 0)

{

cout<<"执行MATLAB引擎命令失败。"<<endl;

exit(EXIT_FAILURE);

}

// 从MATLAB引擎空间中读取执行结果

B = engGetVariable(ep,"B");

// 将矩阵变量B复制到数组arResData中

memcpy((void)arResData,(void)mxGetPr(B),sizeof(arResData));

// 释放矩阵变量空间

mxDestroyArray(A);

mxDestroyArray(B);

// 关闭MATLAB引擎

engClose(ep);

// 输出计算结果

cout<<"逆矩阵为:"<<endl;

for(i = 0; i < 3; i++)

{

for(j = 0; j < 3; j++)

{

cout<<setw(10)<<arResData[i][j]<<" ";

}

cout<<endl;

}

// 暂停程序,查看结果

system("pause");

}

Simulink是一个对动态系统(包括连续系统、离散系统和混合系统)进行建模、仿真和综合分析的集成软件包,是Matlab的重要组成部分。

总结一下Simulink建模与仿真步骤:

画出系统框图,将需仿真的系统根据功能划分为子系统,然后选用模块搭建每个子系统

2 拖拽模块库中所需模块到空白模型窗口中,按系统框图的布局摆好并连接各模块

3 若系统比较复杂,可将同一功能模块封装成一个子系统

4 设置各模块的参数和仿真有关的各种参数

5 保存模型,运行仿真,观察结果

6 调试并修改模型,直到结果符合要求为止

Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。

Simulink提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标 *** 作,就可构造出复杂的系统。

参考资料:

百度百科—SIMULINK

matlab m文件中调用simulink模块的方法和详细的 *** 作步骤如下:

1、首先,打开Simulink,在Simulink库中选择“ Simulink”库,在子库“ User-Defined Functions”中选择“ MATLAB Function”,然后将其添加到Simulink仿真框图中,如下图所示。

2、其次,打开m文件,双击“MATLAB Function”打开编辑环境,如下图所示。

3、接着,m语言编辑:打开Function函数后即可进行语言编辑,如下图所示。

4、然后,变量的定义:确定输入和输出函数,并在确定输入和输出变量后编辑函数头,如下图所示。

5、随后,m文件正文部分的编辑:m文件正文部分是重要的功能实现部分,可以实现所需的功能,如下图所示。

6、最后,m文件模块的外观:编辑m文件后,可以将其封装并连接到整个功能系统中,以实现所需的仿真功能,如下图所示。

以上就是关于simulink如何使用全部的内容,包括:simulink如何使用、如何将c文件在matlab simulink中混编、MATLAB中的simulink是做什么的说的通俗简单点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9848366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存