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

news/2024/11/22 20:48:11/

目录

开环启动原理

开环启动建模实现

开环启动仿真

代码生成和验证

总结


开环启动原理

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

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

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

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

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

开环启动建模实现

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

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

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

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

开环启动仿真

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

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

 优化后的启动过程

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

 完整启动过程

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

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

代码生成和验证

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

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

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

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

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

总结

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


http://www.ppmy.cn/news/12138.html

相关文章

javascript模块那些事儿:commonJS和ES module

前言 模块定义,包管理,以及加载问题是所有编程语言不得不面临的问题,死生存亡之地,不可不察也。 什么是一个模块? 一个模块就是一个js/ts文件,可以定义函数、类、数据,并export出来让外部可见…

分布式文件系统

常见的文件系统:FAT16/FAT32、NTFS、HFS、UFS、APFS、XFS、Ext4等 。 通过概念可以简单理解为:一个计算机无法存储海量的文件,通过网络将若干计算机组织起来共同去存储海量的文件,去接收海量用户的请求,这些组织起来的…

【数据结构】优先级队列(堆)

文章目录1.优先级队列1.1概念2.优先级队列的模拟实现2.1堆的存储方式2.2堆的创建2.3建堆的复杂度2.4堆的插入和删除3.常用接口介绍1.优先级队列 1.1概念 队列是一种先进先出的数据结构。但有些情况下,操作的数据可能带有优先级,一般出队列时&#xff0…

乐鑫 2022 提前批面试题

一面 自我介绍在这简历的四个项目中你最熟悉哪一个?整体介绍一下,画整体框图。在这个项目中你主要负责哪个部分?详细讲一下接收到图像数据之后你的算法工作。为什么帧数选取是 512 帧?为什么选用两种方法进行估计?系统的精确度?你觉得在什么样的情况下输出的准确度会降低…

redis基本数据结构使用与场景

string(字符串)用法使用场景list(列表)用法使用场景set(不可重复,乱序的集合)用法使用场景zset (相对于set集合 增加了score属性,score可用于排序)用法使用场…

2022年度总结,迎接2023

目录 我和CSDN的2022 初次见面: 你我的成长: 博客: 比赛: 我和CSDN的2023 我和CSDN的2022 初次见面: CSDN你好啊!我跟你的初次见面在于2022年4月2日!!! 这这半年内…

redis哨兵模式,自动主备切换,springBoot配置连接

redis哨兵模式,自动主备切换,springBoot配置连接 步骤(4个redis实例,为例) 安装redis把4个redis实例,配置成一主三从启动4台redis启动redis-sentinel(redis自带的哨兵,健康检测&am…

Linux第一个小程序-进度条

目录 \r&&\n 行缓冲区概念 倒计时程序 进度条代码 \r&&\n 回车概念换行概念 \n[rootVM-12-17-centos lesson8]# touch test.c [rootVM-12-17-centos lesson8]# touoch Makefile bash: touoch: command not found [rootVM-12-17-centos lesson8]# touch Mak…