当前位置: 首页 > 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.hskmm.com/?act=detail&tid=118

相关文章:

  • 打包好dist文件 本地如何测?
  • 日期函数(mysql和oracle)
  • 图灵因果测试是由本框架(ECT-OS-JiuHuaShan)定义的下一代智能评估范式
  • QOJ 5357 芒果冰加了空气
  • AI智能体(Agent)开发实战:工业级项目案例驱动课
  • 易路联合智享会权威发布,2025《AI技术如何重构人才获取全链路》
  • java 开发中VO、PO、DO、DTO、BO、QO、DAO、POJO
  • Typora--Markdown语法
  • Perfetto数据流架构故障分析:带你研究 trace 为何丢失
  • 记一次 .NET 某中医药附属医院门诊系统 崩溃分析
  • 个人使用IDEA经验总结
  • JDK 24软件介绍
  • 【LangChain 核心模块 01】
  • 数据跨境学习笔记
  • NOIP 模拟赛十三
  • PageHelper
  • MathType7 功能分析
  • 低版本 Linux【16.04】如何安装 claude code
  • Redis数据持久化方案与集群部署
  • 什么,以太网能传CAN报文?
  • 物业管理小程序系统介绍
  • 阿里云文件上传oss存储
  • 快照同步思想
  • Windows-系统自动切换IPv4地址
  • 目录导航
  • sql嵌套查询
  • archlinux gnome48 顶部托盘选择
  • AT_agc014_f [AGC014F] Strange Sorting
  • JS常用函数
  • 第8章 STM32CUBE LCD配置和测试