永磁同步电机高频注入位置观测

写在前面:本人能力、时间、技术有限,没有对一些细节进行深入研究和分析,也难免有不足和错误之处,欢迎交流和指正。本人写博客主要是学习过程的记录。

1、前言

在这里插入图片描述
在这里插入图片描述
旋转高频注入法、脉振高频正弦注入法和脉振高频方波注入法的信号注入、响应信号提取轴满足下表:
在这里插入图片描述

2、旋转高频注入法

2.1 旋转高频注入法原理分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 旋转高频注入法仿真

在这里插入图片描述
电机参数:

Vdc=311;
Rs=0.33;
Ld=5.2e-3;
Lq=17.4e-3;
flux=0.646;
J=0.008;
B=0.008;
pole=2;
fx=0;
wc=1000;

参数计算脚本:

function fcn(~)

%----------------------------------------基本参数--------------------------------------------------------%
%4V/1000rpm
r=0.33;
Ld=5.2e-3;
Lq=17.4e-3;
Ts=0.0001;
%Ke=4/1000; 
pole=2;
J=0.008;
B=0.008;
flux=0.646;
fx=0;

%----------------------------------------PI等参数计算--------------------------------------------------------%
%由反电动势常数计算磁链
%flux=10*sqrt(6)*Ke/(pi*pole);
% r : 欧姆
% LS:H

%电流环PI计算
A=[Ld/r Lq/r];
wc=2*pi/(min(A));
kcpd=wc*Ld;
kcpq=wc*Lq;
kci=wc*r;
 
%速度环PI计算
wn=wc/20;
Ba_temp=(wn*J-B)/(1.5*pole*flux);
%观察仿真结果,我们可以看出,系统响应速度较快,但是振荡得比较严重,系统不稳定。
%所以我们可以调节有功阻尼增益,减小有功阻尼增益,由表达式可以看出,转速环带宽与阻尼增益成正比。
% 根据自动控制原理可知,带宽越大,系统的快速性越好,稳定变差。B_a=0.13/10 B_a=0.013。PI参数不变。
Ba=Ba_temp/10;
kvp=wn*J/(1.5*pole*flux);
kvi=wn*kvp;

%----------------------------------------数据打印--------------------------------------------------------%
str='wc value is: ';
str=[str,num2str(wc)];
disp(str);

str='kcpd value is: ';
str=[str,num2str(kcpd)];
disp(str);

str='kcpq value is: ';
str=[str,num2str(kcpq)];
disp(str);

str='kci value is: ';
str=[str,num2str(kci)];
disp(str);

str='wn value is: ';
str=[str,num2str(wn)];
disp(str);

str='Ba value is: ';
str=[str,num2str(Ba)];
disp(str);

str='kvp value is: ';
str=[str,num2str(kvp)];
disp(str);

str='kvi value is: ';
str=[str,num2str(kvi)];
disp(str);

计算结果:
在这里插入图片描述
模型总览:
模型下载地址: 永磁同步电机旋转高频注入初始位置辨识simulink仿真
在这里插入图片描述
同步轴高频滤波:
在这里插入图片描述
这里的高频滤波截至频率为
在这里插入图片描述
外差法模块:
在这里插入图片描述
低通滤波器截至频率为:
在这里插入图片描述
位置观测模块:
在这里插入图片描述
这里很多人会问,角度误差经过PI后为什么式负载转矩TL,我的理解就是在离散系统中,单位时间的角度误差为角速度,经过PI后变为角加速度,再乘以J(转动惯量)就变为负载转矩TL。
带通滤波器:
在这里插入图片描述
注入信号:
在这里插入图片描述
仿真结果:
给定速度与实际速度
在这里插入图片描述
观测位置与实际位置
在这里插入图片描述

3、脉振高频正弦注入法

3.1 脉振高频正弦注入法原理分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 脉振高频正弦注入法仿真

在这里插入图片描述
模型总览:
模型下载地址:永磁同步电机脉振正弦注入初始位置辨识simulink仿真
在这里插入图片描述
位置观测部分:
在这里插入图片描述
其中sin参数为:
在这里插入图片描述
信号注入:
在这里插入图片描述仿真结果:
给定速度与实际速度
在这里插入图片描述
观测位置与实际位置
在这里插入图片描述
误差( 1 0 − 3 10^{-3} 103级)
在这里插入图片描述

4、脉振高频方波注入法

4.1 脉振高频方波注入法原理分析

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.2 脉振高频方波注入法仿真

在这里插入图片描述
在这里插入图片描述
电机参数:
在这里插入图片描述
模型总览:
模型下载地址:永磁同步电机脉振方波注入初始位置辨识simulink仿真
在这里插入图片描述
方波生成模块:
在这里插入图片描述
基频提取模块:

在这里插入图片描述高频电流提取模块:
在这里插入图片描述
位置和速度观测模块:
在这里插入图片描述
在这里插入图片描述
观测速度和反馈速度仿真波形:
在这里插入图片描述
观测位置与反馈位置仿真波形(电角度)

在这里插入图片描述
高频电流差值与包络线波形:

在这里插入图片描述

参考

【1】坐标变换的艺术—PMSM高频注入法公式推导
https://blog.csdn.net/qq_50632468/article/details/124513629
【2】无感FOC之高频注入法——永磁同步电机控制
https://blog.csdn.net/qq_2545470942/article/details/125780928
【3】通俗易懂脉振高频注入法
https://zhuanlan.zhihu.com/p/379999313
【4】基于脉振高频电压信号注入法的PMSM无位置传感器控制原理和仿真
https://blog.csdn.net/weixin_44312889/article/details/121799846
【5】袁雷. 现代永磁同步电机控制原理及 MATLAB 仿真[M]. 北京航空航天大学出版社, 2016.
【6】Yoon Y D, Sul S K, Morimoto S, et al. High-bandwidth sensorless algorithm for AC machines based on square-wave-type voltage injection[J]. IEEE transactions on Industry Applications, 2011, 47(3): 1361-1370.
【7】陈亦斌.基于脉振高频电压注入法的SPMSM无位置传感器控制研究[D].浙江理工大学,2023.DOI:10.27786/d.cnki.gzjlg.2023.001206.
【8】基于旋转高频注入法的永磁同步电机无位置传感器控制
https://blog.csdn.net/weixin_44312889/article/details/121583689
【9】张志良.永磁同步电机高频信号注入初始位置自检测及无传感器运行[D].江苏科技大学,2023.DOI:10.27171/d.cnki.ghdcc.2023.000969.
【10】李鹏飞.电动汽车永磁同步电机无位置传感器复合控制研究[D].安徽工程大学,2023.DOI:10.27763/d.cnki.gahgc.2023.000397.
【11】翟继林. 基于高频信号注入的永磁同步电机无位置传感器控制研究[D].兰州交通大学,2024.DOI:10.27205/d.cnki.gltec.2023.000720.
【12】刘鸿钰. 基于改进的高频方波注入的IPMSM无位置传感器控制研究[D].长安大学,2023.DOI:10.26976/d.cnki.gchau.2023.000315.
【13】基于高频方波电压信号注入的永磁同步电机无传感器控制仿真及其原理介绍:
https://blog.csdn.net/weixin_44312889/article/details/129114282?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-129114282-blog-107780148.235v43pc_blog_bottom_relevance_base2&spm=1001.2101.3001.4242.1&utm_relevant_index=3
【14】李文涛. 基于高频方波注入永磁同步电机无位置传感器控制技术研究[D].中国矿业大学,2021.DOI:10.27623/d.cnki.gzkyu.2020.000444.

  • 33
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
永磁同步电机高频注入启动的代码如下: ```c #include "stm32f10x.h" #define PWM_FREQ 20000 // PWM频率 #define PWM_PERIOD (72000000 / PWM_FREQ - 1) // PWM周期 #define PI 3.1415926f // 圆周率 #define FREQ 30.0f // 电机基波频率 #define AMP 0.1f // 电机基波电流幅值 float theta = 0.0f; // 角度 void TIM1_UP_IRQHandler(void) { static float phase = 0.0f; if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM1, TIM_IT_Update); // 计算电流 float current = AMP * sinf(phase); // 更新占空比 uint16_t duty = (uint16_t)((current / 3.3f) * PWM_PERIOD); // 设置PWM占空比 TIM_SetCompare1(TIM2, duty); // 更新相位 phase += 2.0f * PI * FREQ * 0.0001f; if (phase > 2.0f * PI) { phase -= 2.0f * PI; } } } int main(void) { // 初始化PWM RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = PWM_PERIOD; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 0; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM2, &TIM_OCInitStructure); TIM_Cmd(TIM2, ENABLE); // 初始化定时器1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_TimeBaseStructure.TIM_Period = 7199; TIM_TimeBaseStructure.TIM_Prescaler = 999; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE); NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // 启动定时器1 TIM_Cmd(TIM1, ENABLE); while (1) { // 循环等待中断 } } ``` 这是一个使用STM32F10x系列单片机进行永磁同步电机高频注入启动的简单示例代码。在该代码中,使用了定时器1定时器中断,并在定时器中断中计算电流并更新PWM占空比,从而实现对电机的高频注入启动。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hlpinghcg

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

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

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

打赏作者

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

抵扣说明:

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

余额充值