Simulink 自动代码生成电机控制:优化Simulink生成的代码提升代码运行效率

16 篇文章 60 订阅
订阅专栏
15 篇文章 8 订阅
订阅专栏

目录

优化需求

优化方法

从模型配置优化

优化结果对比

从算法层优化

优化结果对比

总结


优化需求

本次优化的目的是提升FOC代码执行速度,以普通滑模观测器为例,优化前把速度环控制放到2ms的周期单独运行,把VOFA+上位机通信代码放到主循环而不是中断里,然后通过优化对比ADC中断里代码执行的速度。目标是尽量缩短ADC中断负载。

优化方法

从模型配置优化

 

 带感叹号的就是会影响效率的,如下有6项可能会影响运行效率,按照提示进行优化即可

  调整完后,显示都通过

优化结果对比

以普通滑模代码生成为例,模型优化配置前FOC+SMO 速度闭环控制17.33us:

 优化后:15.2us

从算法层优化

1. 尽量不要用Simulink自带的模块,如PI等,尽可能自己搭

2. 除法尽量转换成乘法,如除以\pi可以改写成乘(1/\pi

3. Clark变换采用等幅值变换可以减少一定计算量

4. SVPWM 采用谐波注入的方式,不需要判断扇区和矢量

....

一顿操作后

优化结果对比

时间又减少了一些

编译器配置优化选项

编译器选择Version 6

优化等级选择O2, 并勾选 Link-Time Optimizatior

优化结果对比

最后,FOC+SMO 闭环控制8.9us

总结

优化前代码执行速度17us, 优化后8.9us, 效率提升了将近一倍,从优化过程可以看出,要提高代码运行效率需要从三个方面入手:

1.模型的搭建和配置

2.模型算法的优化

3. 编译器的优化也至关重要

编译器的优化有时候会影响到程序的正常执行,测试过程中都是保证电机能正常工作,具体以实际工程需要进行优化,这里仅供参考

Matlab分享系列 - 3 - Matlab_Simulink代码生成优化 .pdf
10-28
Matlab分享系列 - 3 - Matlab_Simulink代码生成优化 a. 嵌入式代码生成介绍 b. 演示代码生成及配置参数/信号/模块名/函数名 c. 模型与数据分离配置 d. 数据字典 e. 示例与实践 f. 代码生成向导使用 g. 更多自定义配置 h. 代码优化方法 i. 示例与实践
Simulink自动生成代码的常见优化方法
02-24
一、建立系统框图为了方便起见,在这里我们实现一个的简单算法,我们在simulink中建立系统框图如下所示:在生成代码之前,给k输入一个数,在命令行输入k=3,如下所示:然后配置一些参数,ctrl+E调出ConfigurationParameters,首先设置Solver标签页,如下所示:然后设置CodeGeneration标签页,如下所示:然后在Report子标签页,配置允许生成报告,如下所示:再按ok,如下:二、代码生成当参数配置完成以后,我们就可以利用ctrl+B快捷键生成代码:不巧,产生错误了,这个只需要更改一下文件保存路径就好了,我们将红框中的路径更改为要保存文件的地址,我就放在桌面,
Simulink代码生成优化操作
我陪你走的博客
08-25 1214
上一次我们介绍了simulink代码生成的基础操作,具体见:https://blog.csdn.net/weixin_43879841/article/details/108076055 今天来介绍一下一些优化操作。 1 固定变量名 在Model Explorer界面,选择在工作区添加信号。 添加信号名为变量名,变量类型为mpt.Signal。依次添加a,b,pro,div。 然后在simulink模型中关联信号线与变量名。选择信号线右键,在属性内命名并勾选Signal name must resol
Simulink自动代码生成:数据字典的建立及代码优化
freedom_qqcom的博客
06-22 4795
  在上一节《Simulink自动代码生成生成代码的基本设置》的基础上,我们来对模型进行优化,使得生成代码更能满足实际的需求,没看过我上一篇文章的可以点开如下链接: Simulink自动代码生成生成代码的基本设置   本节我们我们首先来学习如何建立数据字典,然后通过所建立的数据字典对模型进行优化。 目录一. 未经优化代码二. 数据字典的建立三. 数据字典与模型进行关联 一. 未经优化代码   在上一节生成代码中,打开Calculation.c和Calculation.h文件可以发现在不经过处理的
Simulink仿真入门到精通(十七) Simulink代码生成技术详解
热门推荐
DY2230641的博客
04-24 1万+
目录 17.1基于模型的设计 17.1.1需求文档 17.1.2根据需求进行设计 17.1.3需求与设计的挂接 17.1.4模型的仿真 17.1.5模型的性能分析及修正 17.1.6模型效率分析与优化 17.1.7模型代码生成 17.1.8模型生成代码优化 17.1.9代码的有效性验证 17.2Simulink代码生成流程及技...
永磁同步电机FOC控制Simulink从零开始建模到代码生成开发板演示
03-22
02:27:39:生成代码配置及优化代码可读性 02:36:00:数据字典创建及参数导入 02:52:51:软件集成配置 03:02:00:角度转速度计算 03:11:06:上位机代码集成和通信 硬件运行演示 03:17:06:开发板运行演示
基于MATLAB_Simulink的TMS320F28335代码自动生成及其应用.pdf
06-23
随着工业技术的发展,控制系统的开发流程要求更低的成本和更短的周期,而MATLAB/Simulink配合TI公司的DSP正好为此提供一个很好的代码自动生成开发平台。缩短开发周期,提高可靠性,简化在调试过程中对参数的修改。用户...
无传感滑模观测器建模仿真到代码生成开发板运行模型
03-29
滑模观测器建模 0:03:14反电动势观测 0:30:40LPF低通滤波器建模 0:41:23角度计算 0:50:24速度计算 0:58:28自适应滤波器 1:02:46角度补偿 ...2:09:00生成代码调试成功启动 2:28:00速度响应
感应电机磁场定向控制仿真模型(可正常运行).slx
最新发布
03-18
在目标硬件上生成代码运行FOC算法。使用一个主体和一个目标模型。主机型号是控制器硬件板的用户界面。可以在主机上运行主机模型。使用主机模型的先决条件是将目标模型部署到控制器硬件板上。主机模型使用串行通信...
【转载自行歌er】simulink生成代码优化
qq_37822788的博客
05-20 228
**原文链接:**https://blog.csdn.net/weixin_41695564/article/details/80761795 **主要内容:**simulink代码生成中数据对象的使用 前言:       上一篇文章详细学习了如何通过Simulink建立系统模型,进而生成嵌入式代码。本文通过实例进一步加深对代码自动生成的理解和应用。 一、建立系统框图       &nb
Matlab 多目标优化
03-30
Matlab 多目标优化 遗传算法 源程序 很好的应用案例 基于MATLAB
matlab开发-利用进化算法进行多目标优化
11-15
matlab开发-利用进化算法进行多目标优化。基于进化算法NSGA-II的多目标优化实例
多目标优化粒子群算法MATLAB
04-22
多目标粒子群算法是一种十分有效的多目标寻优算法,关键是gbest和pbest的更新机制问题,希望能给大家带来帮助。
NSGA2优化算法Matlab求解多目标优化问题
03-30
NSGA2优化算法Matlab求解多目标优化问题,遗传算法优化+帕累托排序,有效地解决了多目标优化问题,算例可行有效。
Simulink自动代码生成3——优化生成代码(optimizing generated code)
IHTY_NUI的博客
12-06 4585
使用simulink代码生成之后,如果需要进一步对执行效率或者内存优化,可以看下面提到的方法。 代码优化综述 可从以下几个方面考虑对代码进行优化优化掉不必要的代码:数据初始化、中止、 的 标题 static code metric 用来统计生成代码的概况,如:代码行数、全局变量、入口函数等。 remove initialization code 用来把I/O初始化和内部变量初始化等代码优化掉。 优化前 该优化项的影响: removing termination code 优化前: 优
simulink代码生成优化详细方法
weixin_51872215的博客
11-07 295
Simulink是一种用于建立动态系统模型的工具,它可以帮助用户快速开发原型,并在实验室中进行验证。同时,Simulink还可以生成C代码,以便用户将模型部署到实时嵌入式系统中。总之,Simulink代码生成优化是一种快速高效的方法,使用户可以从系统原型到运行在实时嵌入式系统上的过程中,实现快速且经济高效的开发。Simulink可以自动模型转换为生成代码,用户只需选择要生成的目标语言和代码生成工具,然后点击生成按钮。在Simulink中创建模型,将系统建模为块之间的相互连接,然后将其配置为单独实现。
基于鲸鱼优化算法的Simulink仿真模型参数优化
AI_Optimization的博客
03-16 5380
前言:我们在用simulink进行仿真模型的时候,通常会遇到一些参数需要手动调节,如PID参数、模糊PID参数等,非常耗时,且难以得到最优的参数,得到最优的仿真效果。本文将以鲸鱼优化算法(WOA)优化PID仿真模型为例,阐述如何利用智能优化算法联合simulink仿真模型进行仿真模型的参数优化,其他的算法和模型可以以此类推。 1.鲸鱼优化算法(WOA) 2.如何用matlab .m文件脚本调用simulink模型并传入参数 3.如何设计优化算法的目标函数 ITAE、 ...
Matlab/Simulink 自动代码生成 基于模型设计学习教程(16)---- 生成代码优化(建立数据字典)
微行创新
03-25 5530
我们先来建立一个数据字典 我们看到新建立一个sldd文件,模型当中也会出现箭头所示的。 我们把箭头那点开,我们就看到右边那个 命名好信号线,并把右边...
simulink代码生成 bldc
12-08
Simulink代码生成是一种通过使用Simulink模型进行建模和仿真,然后将其自动生成为嵌入式系统代码的工具。而BLDC(Brushless DC)即无刷直流电机的驱动控制。 首先,我们可以在Simulink中建立一个BLDC驱动的模型,包括控制系统、电机模型和输入输出接口等。然后,通过仿真验证模型的正确性和性能。接着,使用Simulink代码生成工具,将模型转换为可在目标处理器上运行的C或C++代码。 在生成代码的过程中,我们可以对模型进行参数配置,选择目标处理器平台和实时操作系统等。同时,代码生成工具会自动优化生成代码,以满足实时性能和资源利用的需求。生成代码可以直接部署到嵌入式系统中,实现对BLDC驱动的控制。 Simulink代码生成工具不仅能够加速嵌入式系统开发的速度,还能够保持模型代码的一致性,降低了开发的复杂度和风险。通过Simulink代码生成,我们可以快速、可靠地实现BLDC驱动控制系统的开发,并将其部署到实际的嵌入式系统中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 用Simulink仿真电路并得到其传递函数方法 23057
  • Simulink取最大(小)值方法总结 13118
  • STM32 VOFA+串口调试助手提升电机控制调试效率(下位机代码和上位机操作演示) 12454
  • Simulink代码生成:Autosar模型及代码生成 11585
  • Keil调试显示波形方法 11507

分类专栏

  • 调试技巧 15篇
  • 双向交错CCM图腾柱无桥单相PFC学习仿真到硬件实现 3篇
  • 电源控制Simulink代码生成 10篇
  • Simulink 29篇
  • 电机控制Simulink代码生成 42篇
  • STM32 代码生成 16篇

最新评论

  • Simulink 自动代码生成电机控制:方波高频注入仿真到代码生成开发板演示

    QQ874176706: 老师这个帖子的资料淘宝上没有看到卖怎么办

  • Simulink 自动代码生成电机控制:非线性磁链观测器

    卡洛斯伊: 直接积分是有的,但是用这种非线性的观测方法没有这种现象。

  • Simulink 自动代码生成电机控制:非线性磁链观测器

    weixin_51111049: 大佬,想请教一下,非线性磁链观测器也有积分过程,它不会引起直流偏置或积分漂移吗

  • Simulink 窄带陷波滤波器(Notch filter)仿真到代码生成

    卡洛斯伊: 离散化

  • Simulink 窄带陷波滤波器(Notch filter)仿真到代码生成

    weixin_55239754: 请教一下,构建差分方程模型那里G_z的表达式与方程推导那里的G_z表达式为什么不一样,请问是怎么推导的?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Ozone V3.32a Jlink显示变量波形
  • Ozone V3.32a使用总结
  • 三相PFC电网电压不平衡的危害和解决办法
2024年7篇
2023年33篇
2022年34篇
2021年3篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡洛斯伊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司潮州百姓网标王推广价格济宁企业网站设计报价宜昌网站seo优化哪家好庆阳百度标王公司安庆关键词排名哪家好淮安百姓网标王多少钱天水百度竞价推荐菏泽seo排名价格娄底网站搭建价格文山百度竞价益阳网络推广公司盘锦网站推广工具多少钱鞍山SEO按天收费公司海西百姓网标王盐田设计公司网站价格天津至尊标王张家界网站推广系统报价恩施网站制作设计报价昌吉百姓网标王推广推荐广安网站搜索优化海西网站制作哪家好临汾网络营销报价宝鸡百姓网标王大丰SEO按效果付费价格丹竹头百度关键词包年推广推荐金昌关键词排名多少钱铜陵seo网站推广沙井网站推广方案推荐凉山企业网站改版龙华网站seo优化哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化