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

news2024/9/21 16:49:07

目录

优化需求

优化方法

从模型配置优化

优化结果对比

从算法层优化

优化结果对比

总结


优化需求

本次优化的目的是提升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. 编译器的优化也至关重要

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383818.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mongodb入门到使用(上)

mongodb的安装与使用前言一、linux下载二、mongodb配置三、 mongodb服务管理启动服务查看停止四、远程连接五、SpringBoot整合总结前言 本文主要针对一些项目的部署服务器在使用方面用到了mongodb,参考解决一些部署方面遇到的问题。 一、linux下载 使用wget下载 w…

代数小课堂:向量代数(通过向量夹角理解不同的维度)

文章目录 引言I 计算向量的夹角1.1 毕达哥拉斯定理1.2 余弦定理1.3 计算向量的夹角II 向量夹角的应用2.1 用计算机自动筛选简历(对人进行分类)2.2 计算机进行文本自动分类的原理引言 根据余弦定理计算两个向量的夹角向量夹角的应用: 对文本进行自动分类、自动筛选简历。如果…

【上位机入门常见问题】Visual Studio 2022安装指导

Visual Studio 2022安装指导 这里给大家指导安装Visual Studio 2022 Community版本,也就是我们常说的社区版,这个版本是微软给开发者学习技术专门定制的免费版本,其他的专业版和企业版都是商业收费版本。对于我们学习,大家使用社…

使用Docker、navicat部署和连接GaussDB

一、在CentOS7上安装Docker工具 1.卸载之前老版本的Docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce 2.安装D…

TLS协议

TLS全称传输层安全协议,上一代是安全套接层(SSL,不安全),用途广泛,最知名的是用于http,使http升级为https协议,最新版本为TLSv1.3(推荐使用)。TLS通过建立客户端和服务器…

Vue-router的引入和安装

什么是Vue-Router?Vue路由器是Vue.js的官方路由器,它与Vue.js核心深度集成,使用Vue轻松构建单页应用程序变得轻而易举。功能包括:嵌套路线映射动态路由模块化,基于组件的路由器配置路由参数,查询&#xff0…

常用的hive sql

细节:sql 中有涉及到正则匹配函数的,要注意转义符号 因为在不同语言下正则匹配规则是否需要加转义符号是不同的,举例,regexp_replace 函数,在hive sql的正则匹配规则的 \d 需要前面给它加上转义符号\,而在j…

RocketMQ5.0.0事务消息

目录 一、事务消息概览 二、事务消息实现机制 1. 事务消息发送流程 1):发送事务消息类图 2):生产端发送事务消息 3):Broker存储事务消息 2. 生产者提交或回滚事务消息 1):生产者发送提交或回滚事务请求 2):Broker处…

【谷粒学院】微信扫码支付(224~238)

224.项目第十五天内容介绍 225.课程评论实现过程分析 226.课程支付功能需求分析 1、课程支付说明 (1)课程分为免费课程和付费课程,如果是免费课程可以直接观看,如果是付费观看的课程,用户需下单支付后才可以观看 &am…

CAD轴测图怎么画?

很多新手设计师小伙伴,不知道CAD轴测图怎么画?其实很简单,浩辰CAD中的超级轴测功能,可以方便地将CAD平面图转化为轴侧图,是绘制管线系统图的好帮手。今天就和小编一起来看看在浩辰CAD软件中通过调用超级轴测命令来绘制…

[数据结构]:08-顺序查找(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 顺序查找实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为C语言代码。使用C引用主要是为了简化指针的使用&a…

webpack生产环境配置

3 webpack生产环境配置 由于笔记文档没有按照之前的md格式书写,所以排版上代码上存在问题😢😢😢😢 09 提取css成单独文件 使用下载插件 npm i mini-css-extract-plugin0.9.0 -D webpack配置此时a,b提取成单独文件,并且…

1378:最短路径(shopth)

1378:最短路径(shopth) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 给出一个有向图G(V, E),和一个源点v0∈V,请写一个程序输出v0和图G中其它顶点的最短路径。只要所有的有向环权值和都是正的,我们就允许图的边有…

有趣的小知识(二)浏览器内的秘密:了解Cookie基础知识

一、简介 Cookie是一种小型的文本文件,由Web服务器发送给Web浏览器,并存储在用户的计算机硬盘上。它通常用于记录用户的偏好、登录状态、购物车信息等,以便在用户下次访问该网站时能够提供更好的用户体验。Cookie通常包含网站的名称、Cookie的…

2023年工业自动化,机器人与控制工程国际会议(IARCE 2023)

2023年工业自动化,机器人与控制工程国际会议(IARCE 2023) 重要信息 会议网址:www.iarce.org 会议时间:2023年10月27-29日 召开地点:中国成都 截稿时间:2023年9月21日 录用通知:…

[创业之路-57] :商业计划书BP如何书写?总体框架!

引言:BP (Buiness Plan) ,即商业计划书,本质上还是一份计划,是一份商业计划,即一种关于如何赚钱的计划,是一份通过组建公司,运营项目,进而赚钱的项目计划。什么是商业?商…

【计算机网络】ISO/OSI参考模型与TCP/IP模型

ISO/OSI参考模型与TCP/IP模型 一、ISO/OSI参考模型(七层) 一个理论模型,并未商用。 OSI参考模型有七层,自上而下分别为 应用层 : 所有能产生网络流量的应用程序都属于是应用层 典型协议:FTP&#xff08…

分布式锁详解

文章目录分布式锁是什么基于 Redis 实现分布式锁如何基于Redis实现一个简单的分布式锁为什么要给锁设置一个过期时间?如何实现锁的优雅续期?如何实现可重入锁?Redis 如何解决集群情况下分布式锁的可靠性?分布式锁是什么 java单机…

从客户端的角度来看移动端IM即时通讯的消息可靠性和送达机制

如何确保IM 不丢消息是个相对复杂的话题,从客户端发送数据到服务器,再从服务器抵达目标客户端,最终在 UI 成功展示,其间涉及的环节很多,这里只取其中一环「接收端如何确保消息不丢失」来探讨,粗略聊下我接触…

crmeb商城部署(踩坑及解决方法)

源码地址: https://gitee.com/ZhongBangKeJi/CRMEB 原版是PHP版,我也不懂PHP,但看到功能很全,而且有docker-compose的脚本可以部署,并且教程也很完善,就拿来部署试下。 所以也适用于和我一样,…