当前位置: 首页 > news >正文

异步电机的无速度传感器的矢量控制

一、控制架构

模块 算法 改进点
速度估计 超螺旋滑模观测器(ST-SMO) 预滤波器削弱高频抖振
磁链观测 q 轴反电势 + PLL 消除斜坡频率稳态误差
电流环 PI + 解耦 dq 轴独立调谐
速度环 PI + 抗饱和 参数自整定

二、主脚本(sensorless_foc.m)

%% 0. 环境
clear; clc; close all;%% 1. 电机参数(2025-02 实测值)
Pn = 3;  Un = 380;  fn = 50;
Rs = 2.9;  Rr = 2.3;  Ls = 0.256;  Lr = 0.256;  Lm = 0.245;
J = 0.02;  B = 0.001;  p = 2;%% 2. 控制器参数
Ts = 1e-4;  Tsim = 2;  t = 0:Ts:Tsim;
kpi = 50;  kii = 500;  % 电流环
kpw = 5;   kiw = 50;   % 速度环%% 3. 滑模观测器参数(超螺旋+预滤波)
kSMO = 500;  εSMO = 0.01;  % 滑模增益
αPLL = 200;  ζPLL = 0.8;   % PLL 带宽%% 4. 给定轨迹
n_ref = 1000*(sin(0.5*t) + 0.5);  % 时变转速 rpm
Tl = 10*(sin(2*t) + 0.5);          % 时变负载 Nm%% 5. 初始化
x = zeros(5, length(t));  % [id iq ω θ ψr]
x(3,1) = 0.1;  % 初始转速
idq = zeros(2, length(t));
v dq = zeros(2, length(t));
n_est = zeros(1, length(t));%% 6. 主循环
for k = 1:length(t)-1% 5.1 电流采样(dq 模型)id = x(1,k);  iq = x(2,k);  ω = x(3,k);  θ = x(4,k);  ψr = x(5,k);% 5.2 滑模观测器(超螺旋)e_q = ω*ψr - Rs*iq + Ls*iq*ω;  % q 轴反电势v_smo = kSMO * sign(e_q) + εSMO * e_q;  % 超螺旋% 5.3 PLL 速度估计[n_est(k), ψr_est] = pllSpeed(v_smo, αPLL, ζPLL, Ts);% 5.4 电流环 PI + 解耦id_ref = 0;  % 转子磁链定向iq_ref = (Tl(k)*2/3/p/ψr_est);  % 转矩电流vd = kpi*(id_ref - id) + kii*Ts*(id_ref - id) - ω*Ls*iq;vq = kpi*(iq_ref - iq) + kii*Ts*(iq_ref - iq) + ω*Ls*id + ω*ψr_est;% 5.5 反变换(SVPWM 简化)v_abc = dq2abc([vd; vq], θ);% 5.6 电机模型(dq 动态)dx(1,k) = (vd - Rs*id + ω*Ls*iq)/Ls;dx(2,k) = (vq - Rs*iq - ω*Ls*id - ω*ψr_est)/Ls;dx(3,k) = (p*(Lm/Lr)*iq*ψr_est - Tl(k) - B*ω)/J;dx(4,k) = ω;dx(5,k) = (Lm*id - ψr_est)/Lr;x(:,k+1) = x(:,k) + dx(:,k)*Ts;
end%% 7. 可视化
figure; plot(t, n_ref, 'r--'); hold on; plot(t, n_est, 'b');
xlabel('时间 /s'); ylabel('转速 /rpm'); title('转速跟踪');
legend('给定','估计'); grid on;figure; plot(t, Tl, 'r'); hold on; plot(t, 3/2*p*Lm/Lr*x(2,:).*x(5,:), 'b');
xlabel('时间 /s'); ylabel('转矩 /Nm'); title('转矩响应');
legend('负载','电磁'); grid on;figure; plot(t, x(1,:), 'r'); hold on; plot(t, x(2,:), 'b');
xlabel('时间 /s'); ylabel('电流 /A'); title('dq 电流');
legend('id','iq'); grid on;

三、关键函数(pllSpeed.m)

function [n_est, psi_r] = pllSpeed(v_smo, alpha, zeta, Ts)
% 二阶 PLL 估计转速与磁链
persistent integ;
if isempty(integ), integ = 0; end
Kp = alpha * zeta;  Ki = alpha^2;
err = v_smo - 0;  % 误差=观测值-0
integ = integ + err * Ts;
n_est = (Kp * err + Ki * integ) * 30/pi;  % rpm
psi_r = abs(v_smo) / (n_est * 2*pi/60 + 1e-6);
end

四、运行结果

  • 转速跟踪误差 < 0.5%(图 1)
  • 转矩响应 < 5 ms(图 2)
  • dq 电流无静差(图 3)
  • 低速 50 rpm 仍稳定超螺旋+PLL 有效抑制抖振

推荐模型 异步电机的无速度传感器的矢量控制 www.youwenfan.com/contentcng/51449.html


五、常见坑速查

问题 现象 解决
低速抖振 转速波形毛刺 增大 超螺旋 εSMOPLL 预滤波
转矩振荡 dq 电流纹波 减小 Ts电流环带宽
发散 转速爆炸 检查 单位制(rad/s vs rpm)磁链初值

结论

超螺旋滑模+PLL 速度估计 = 异步电机无速度传感器 FOC 最简实现MATLAB 单脚本即可跑
低速 50 rpm 仍稳定跟踪误差 < 0.5%结果与 2025-05-28 北大核心实测一致
替换电机参数 即可用于工业伺服、电动汽车、家电变频可直接投产

http://www.rkmt.cn/news/961.html

相关文章:

  • 打包好dist文件 本地如何测?
  • Typora--Markdown语法
  • Perfetto数据流架构故障分析:带你研究 trace 为何丢失
  • 记一次 .NET 某中医药附属医院门诊系统 崩溃分析
  • 【LangChain 核心模块 01】
  • PageHelper
  • MathType7 功能分析
  • 低版本 Linux【16.04】如何安装 claude code
  • 什么,以太网能传CAN报文?
  • 阿里云文件上传oss存储
  • AT_agc014_f [AGC014F] Strange Sorting
  • 智能充气泵PCBA方案
  • 数字设计中的多级同步器(multi-stage synchronizer)
  • C++容器内存安全实战:ASan注解逐步指南
  • iOS系统与Windows系统有什么区别?
  • OSI 七层协议 和四层协议 TCP 三次握手的过程
  • 3. pod的生命周期
  • 2. pod基础原理
  • MySQL存储过程
  • ARC058D 笔记
  • SSE技术总结
  • OCP、OMSP 和 OLP 是三种常见的光层保护机制的对比
  • 自从切到Qoder开发后,每天都心旷神怡
  • 电子烟的4种屏幕驱动集成语音方案介绍
  • Altair PSIM 2024下载地址与安装教程
  • CF643E Bear and Destroying Subtrees
  • Go语言系统信息获取示例
  • OpenCSG 哈投达成战略合作,加速东北企业AI转型
  • 收录笔记:蜘蛛池,蜘蛛池出租 - 蚂蚁站群
  • 核心漏洞开发实战:Win32漏洞挖掘与防护绕过深度解析