首页>资讯 > 正文
每日短讯:MATLAB:自定义库&自定义C MEX S-Function,简单易学
来源: 个人图书馆-新用户3849ayns 发布于:2023-06-21 15:10:46

汽车嵌入式开发中,基于MBD的上层算法开发非常普及。在实际工程中会有这样的需求:做算法的工程师想调用底层接口或者将自定义功能的算法封装成模块,方便模型搭建时使用。

这里有两点需要实现:自定义一个库、在自定义库中创建自定义模块(C MEX S-Function)。


(资料图片)

1自定义库步骤

1、切换matlab自定义工作路径

打开matlab,切换到指定工作目录,本例工作路径:D:\WorkSpace\Matlab,如下所示:将当前工作路径加载到matab搜索路径中:Set Path->Add with Subfolders...->Save->Close。

2、创建Library模型

(1)在Simulink sl_customization.m文件内容如下所示:
;;
ComM.c文件内容如下所示,定义函数ComM_GetCurrentComMode。
{return 0;  }

2、创建lct对应的M脚本(lct_CMEXSFunction.m)

lct_CMEXSFunction.m文件内容如下所示。

注意:def1.OutputFcnSpec语句中有两个输入,分别使用了u1和u2来表示输入的参数,使用y1来标识输出的参数。即用y来表示输出,用u来表示输入,P表示参数,这三个参数的书写形式固定不变,即不能使用其他参数表示。

clc;def1=legacy_code("initialize");def1.SFunctionName = "ComM_GetCurrentComMode";def1.OutputFcnSpec = "uint8 y1 = ComM_GetCurrentComMode(uint8 u1,uint8 u2[1])";def1.HeaderFiles   = {"ComM.h"};def1.SourceFiles   = {"ComM.c"};legacy_code("sfcn_cmex_generate",def1);legacy_code("compile",def1);legacy_code("generate_for_sim", def1);legacy_code("slblock_generate", def1);
在M脚本中,传递指针类型的参数需要使用数组的形式去替代。如下,第二个参数本应传递uint8* u2,由于LCT的局限性,这里使用uint8 u2[1]的形式去替代。准备文件在matlab中的创建如下所示:

3、运行lct_CMEXSFunction.m文件

(1)如下所示,lct_CMEXSFunction.m成功运行,生成自定义的ComM_GetCurrentComMode接口模块。成功生成自定义C MEX S-function以后,在当前路径下会生成ComM_GetCurrentComMode.c、ComM_GetCurrentComMode.mexw64、ComM_GetCurrentComMode.tlc 3个文件,如下所示:

(2)将自定义模块拖曳到Lotus_SupportPacket模型库,并保存,如下所示:

提示:自定义库需要提前打开,且处于解锁状态。3自定义模块库的使用

1、创建模型:LotusModel.slx

在自定义库中将自定义的C MEX S-Function拖曳到模型中,如下所示:

2、配置模型生成代码

(1)在“Model Settings”中完成模型必要配置并保存,如下所示:

(2)代码生成,C CODE->Build->Generate Code(3)生成的代码如下所示,ComM_GetCurrentComMode接口在模型中得以使用。“Embedded Coder”启动如下所示:也可以在当前路径下查看生成的代码,如下所示:

关键词:

猜你喜欢

  • 每日短讯:MATLAB:自定义库&自定义C MEX S-Function,简单易学
  • 护航高校毕业生就业路 毕业生对民营企业关注重视度不断提升-当前热闻
  • 全球资讯:投资人,看不懂大模型
  • 除了吃药外,这个神奇有趣的“芳香疗法”,也可以干预老年痴呆|天天热点
  • 环球热资讯!N致欧首日收盘涨6.81%
  • 简讯:异动快报:必康退(002411)6月21日13点32分触及涨停板
  • 可耐美是一线品牌吗?以一线品质引领涂料新潮流
  • 北大教授姚洋反对中考分流:“就这样否定40%的孩子,这合理吗?”
  • 内存卡电脑上读不出来怎么办_内存卡在电脑读不出来 怎么办|环球报资讯
  • 银行业一季度净息差跌破1.8%后 此次LPR降息对其影响几何?-当前热文
  • 5G融入超六成国民经济大类 网络建设适度超前
  • 温德姆·克拉克问鼎2023美国公开赛 麦克罗伊1杆之差获亚军-焦点讯息
  • 2023年伏羲文化论坛在天水开幕 天天精选
  • 4号旗子多大尺寸_4号旗
  • 热议:ppt无法打开指定的文件怎么解决_ppt无法打开
  • 环球观焦点:太平洋爱无忧庆典版怎么样?防癌险的好处有哪些?
  • 联想lj2205打印机驱动下载_联想lj2200l打印机驱动下载官网 环球快报
  • 近20赛季五大联赛制造进球最多球员:梅西9次霸榜,C罗3次|微头条
  • 每日看点!A-史密斯谈追梦:唐斯拿2.5亿却什么都赢不了 追梦肯定值1个亿
  • 环球快资讯丨证券期货经营机构移动应用软件安全管理工作会举行