Simulink 自动代码生成电机控制:关于无传感控制开环启动控制的仿真和开发板运行
创始人
2024-05-12 05:59:48
0

目录

开环启动原理

开环启动建模实现

开环启动仿真

代码生成和验证

总结


开环启动原理

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

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

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

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

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

开环启动建模实现

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

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

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

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

开环启动仿真

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

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

 优化后的启动过程

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

 完整启动过程

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

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

代码生成和验证

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

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

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

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

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

总结

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

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...