Simulink 自动代码生成电机控制:关于无传感控制开环启动控制的仿真和开发板运行

news2024/11/21 0:15:30

目录

开环启动原理

开环启动建模实现

开环启动仿真

代码生成和验证

总结


开环启动原理

永磁同步电机开环三步启动是比较传统也是比较常用的启动方式,典型的启动有:

对齐:也说是说的转子预定位,就是通过手动给定一个初始角度和一个初始的Iq,让转子固定在一个初始的位置。负载大Iq就可以给大一些,保证转子初始位置固定。

开环:这里模型仿真用的是IF模式,就是通过给定一个转速目标转速,和开环时间,计算出给定转速的步长,再通过转速计算出给定的角度。通过开环把电机拉到设定的转速。满足一定的条件(如强拉角和估算角误差小于某一个值,估算转速达到某一个值)

闭环:这个环节电机已经切换到估算角控制,且Iq通过速度环输出(恒转速控制)

但是实际应用中强制切换可能会有角度跳变的影响。因此在开环和闭环之间增加了一个切换的状态。在切换过程中强拉角向估算角靠齐达到切换的过程中没有角度突变的情况发生,提高开环启动的性能。由于开环角在切换过程中不断接近真实角,给定的Iq也会在此期间减小,减小范围可根据实际负载进行优化。本方通过建模的方式实现上述功能,并通过实际的电机运行验证生成代码和仿真的可靠性。

开环启动建模实现

如下开环启动过程的建模,通过stateflow构建一个状态机,实现开环启动状态间的切换。

 这里状态机功能比较简单,从待机状态,接收到启动指令后进入对齐状态,对齐时间500ms,对齐给定Iq随着时间的增加慢慢增加直到达到设定值。

 开环状态给定Iq等于对齐状态最终的Iq值,角度通过给定时间和给定的目标转速计算得到

 切换状态,计算出角度误差,根据误差进行开环给定角的补偿,直到开环强拉解接近估算角且观测器的估算速度达到目标切换转速。

开环启动仿真

常规开环启动波形,如下图所示蓝色和黄色是估算角度和实际角度,黄色是开环强拉角度,切换点直接换成了估算角。

切换点角度和相电流波形,可以看到切换的瞬间电角度跳变,相电流也发生了短暂的畸变。另外由于开环给定的Iq固定没有切换过程缓冲,转速瞬间变大。

 优化后的启动过程

蓝色估算,黄色强拉,强拉角靠近估算角

 完整启动过程

启动对齐,电机转子固定。 

 切换点,切换后PI输出控制Iq,转速升高,电流变大。相比于没有切换状态过程的仿真效果,电流没有明显的畸变。电流变大是闭环状态没有达到目标转速2000,速度环控制。

代码生成和验证

模型参数按照实际电机的测量参数建模,暂不需要改参数就可以直接运行

 没有增加切换状态的启动相电流波形,空载启动。

 带载启动(手动加载,负载不均匀)

 增加切换状态,切换点Iq减小

 加负载后,会有Iq减小的过程,切换后速度环会有调节

总结

开环启动也是应用比较广泛的,启动参数的优化需要根据实际负载特性进行优化。有些应用启动到闭环的过程会出现负载变化的情况,也需要根据实际情况进行调整,这里通过仿真记录总结了所使用的方法,并生成代码到开发板运行。另外很多应用考虑启动到闭环过程的平滑度,和速度环PI也有一定的关系。

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

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

相关文章

mybatis 初始化加载xml解析

一、标题解析xml 的三大对象:XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder XMLConfigBuilder 会把mybatis-config.xml所有元素进行解析。当碰到mappers时,会进行遍历。mappers中有几个mapper,就会创建几个XMLMapperBuilder 去进…

【Day3】链表理论基础、203移除链表元素、707设计链表、206反转链表

【Day3】链表理论基础、203移除链表元素、707设计链表、206反转链表链表理论基础链表的类型链表的存储方式链表的定义链表的操作203 移除链表元素设置虚拟头节点无虚拟头节点707设计链表206反转链表双指针法递归法while和for链表理论基础 链表是一种通过指针串联在一起的线性结…

C++版Android实时投屏软件系统源码,安卓手机投屏软件源码,无需root权限

QtScrcpy QtScrcpy 可以通过 USB / 网络连接Android设备,并进行显示和控制。无需root权限。 同时支持 GNU/Linux ,Windows 和 MacOS 三大主流桌面平台。 完整代码下载地址:C版Android实时投屏软件系统源码 它专注于: 精致 (仅显示设备屏幕…

sentence-transformers(SBert)中文文本相似度预测(附代码)

前言 训练文本相似度数据集并进行评估:sentence-transformers(SBert)预训练模型:chinese-roberta-wwm-ext数据集:蚂蚁金融文本相似度数据集前端:Vue2elementuiaxios后端:flask 训练模型 创建网络:使用Sb…

c语言公司考勤系统

1.要求 考勤系统是公司人事管理重要环节,用于记录员工迟到、早退、缺席、请假等出勤情况,并能提供数据统计功能。系统需求如下: 认证用户,如密码方式; 设置上下班时间,并能判断是否迟到、早退; 记录出勤状况,能记录每日…

基础IO(2)--文件描述符以及输入输出重定向

文件描述符fd 文件操作的本质是进程和被打开文件的关系。 进程可以打开多个文件&#xff0c;这些被打开的文件由OS管理&#xff0c;所以操作系统必定要为文件创建对应的内核数据结构标识文件–struct file{}【与C语言的FILE无关】 通过如下程序 #include <stdio.h> #…

uni-app在真机调试下兼容ethers的方法

目录 一、安装ethers 二、renderjs 三、注意事项 uni-app开发跨平台应用程序&#xff0c;项目搭建主要前端框是Uni-app Vue3 TS Vite&#xff0c;项目搭建参考文章Uni-app Vue3 TS Vite 创建项目 Hbuilderx版本是3.6.17 一、安装ethers yarn add ethers 如果像ether…

【Python】用xpath爬取2022热梗保存到txt中并生成词云

本文收录于《python学习笔记》专栏&#xff0c;这个专栏主要是我学习Python中遇到的问题&#xff0c;学习的新知识&#xff0c;或总结的一些知识点&#xff0c;我也是初学者&#xff0c;可能遇到的问题和大部分新人差不多&#xff0c;在这篇专栏里&#xff0c;我尽可能的分享出…

MySQL 索引 学习

索引 主键索引&#xff08;PRIMARY KEY&#xff09; 唯一标识&#xff0c;主键不可重复&#xff0c;只能有一个主键 唯一索引&#xff08;UNIQUE KEY&#xff09; 索引列 常规索引&#xff08;KEY/INDEX&#xff09;全文索引&#xff08;FullText&#xff09; 可以快速定位数据…

excel拆分技巧:如何快速对金额数字进行分列

金额数字分列&#xff0c;相信是做财务的小伙伴们经常遇到的问题。网上关于金额数字分列的方法很多&#xff0c;但用到的公式大都比较复杂。今天我们就来分享一个最简单的公式&#xff0c;仅用LEFT、RIGHT和COLUMN三个函数&#xff0c;就能达到效果&#xff01;在财务工作中&am…

Tapdata Cloud 场景通关系列:将数据导入阿里云 Tablestore,获得毫秒级在线查询和检索能力

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata Cloud 自去年发布云版公测以来&#xff0c;吸引了近万名用户的注册使用。应社区用户上生产系统的要求&#xff0c;Tapdata Cloud 3.0 将正式推出商业版服务&#xff0c;提供对生产系统的 SLA 支撑。Tapdata 目前专注在实时数…

【论文阅读 CIKM2014】Extending Faceted Search to the General Web

文章目录ForewordMotivationMethodQuery facet generation:Facet feedbackEvaluationForeword This paper is from CIKM 2014, so we only consider the insightsI have read this paper last month and today i share this blogThere are many papers that have not been sha…

Docker网络原理详解

文章目录理解Docker0Docker 是如何处理容器网络访问的&#xff1f;Docker0网络模型图容器互联--Link自定义网络网络连通理解Docker0 查看本机IP ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00…

application.properties的作用

springboot这个配置文件可以配置哪些东西 官方配置过多了解原理 这个properties文件其实是可以删掉的&#xff0c;官方是不推荐使用这个文件的&#xff0c;可以将其换成安排application.yaml。名字不能变&#xff0c;因为SpringBoot使用的是一个全局的配置文件 application.…

linux系统中使用QT实现CAN通信的方法

大家好&#xff0c;今天主要和大家分享一下&#xff0c;如何使用QT中的CAN Bus的具体实现方法。 目录 第一&#xff1a;CAN Bus的基本简介 第二&#xff1a;CAN通信应用实例 第三&#xff1a;程序的运行效果 第一&#xff1a;CAN Bus的基本简介 从QT5.8开始&#xff0c;提供…

C语言-柔性数组与几道动态内存相关的经典笔试题(12.2)

目录 思维导图&#xff1a; 1.柔性数组 1.1柔性数组的特点 1.2柔性数组的使用 1.3柔性数组的优势 2.几道经典笔试题 2.1题目1 2.2题目2 2.3题目3 2.4题目4 写在最后&#xff1a; 思维导图&#xff1a; 1.柔性数组 1.1柔性数组的特点 例&#xff1a; #include <…

javaEE 初阶 — java对于的操作文件

文章目录1. File 类概述2. 代码示例2.1 示例1&#xff1a;以绝对路径为例&#xff0c;演示获取文件路径2.2 示例2&#xff1a;以相对路径为例&#xff0c;演示获取文件路径2.3 示例3&#xff1a;测试文件是否存在、测试是不是文件、测试是不是目录2.4 示例4&#xff1a;创建文件…

27.函数指针变量的定义, 调用函数的方法,函数指针数组

函数指针变量的定义 返回值类型&#xff08;*函数指针变量名&#xff09;&#xff08;形参列表&#xff09;; int( *p )( int , int );//定义了一个函数指针变量p&#xff0c;p指向的函数必须有一个整型的返回值&#xff0c;有两个整型参数。 int max(int x, int y) { } int m…

AMR-IE:一种利用抽象语义表示(AMR)辅助图编码解码的联合信息抽取模型

Abstract Meaning Representation Guided Graph Encoding and Decoding for Joint Information Extraction 论文&#xff1a;2210.05958.pdf (arxiv.org) 代码&#xff1a;zhangzx-uiuc/AMR-IE: The code repository for AMR guided joint information extraction model (NAAC…

【学习笔记】【Pytorch】七、卷积层

【学习笔记】【Pytorch】七、卷积层学习地址主要内容一、卷积操作示例二、Tensor&#xff08;张量&#xff09;是什么&#xff1f;三、functional.conv2d函数的使用1.使用说明2.代码实现四、torch.Tensor与torch.tensor区别五、nn.Conv2d类的使用1.使用说明2.代码实现六、卷积公…