永磁同步电机无速度算法--基于同步坐标系的滑模观测器SMO

传统基于两相静止坐标系下的滑模转子位置观测器依靠观测拓展反电动势,而拓展反电动势最大值与iq及q 轴电流的微分值iq等其他参数相关, 可见在两相静止坐标系下对内置式永磁同步电机设计滑模观测器时, 观测器中开关增益参数K的选取比较复杂,选取不当,将不能满足李雅普诺夫稳定性条件, 进而使得电流误差动态方程不能渐进稳定。

同时扩展反电动势的幅值会受到永磁电动机负载变化的影响, 尤其像船舶螺旋桨这类重型负载工况下, 推进电机负载突变时, 会造成电机电流有较大变化, 而电流的微分值将会变得更大,从而造成较大的扩展反电动势误差值, 最终影响推进电机角度估算的准确度。为了避免对内置式永磁推进电动机扩展反电动势的观测, 本文在两相旋转坐标系下对内置式永磁推进电动机滑模观测器进行了设计

一、原理介绍

根据永磁同步电机(PMSM)旋转坐标系下数学模型,可得定子电流方程为:

式中,Ed=0、Eq=we*Ψf分别为dq轴下的感应电动势;Ψf为永磁体磁链

为了获得感应电动势的值,可将式(1)改写为:

其中

对上两式作差,可得到电流误差系统状态方程为:

将电流误差系统状态方程写成向量形式为:

利用滑模观测器对电流进行估计,滑模面函数定义为:

因此可得

采用锁相环 PLL技术能实时跟踪转子位置和信息。

二、仿真模型

在MATLAB/simulink(软件版本为2024A)里面验证所提算法,搭建仿真。采用和实验中一致的控制周期1e-4,电机部分计算周期为1e-6。仿真模型如下所示:

仿真工况:电机空载零速启动,0s阶跃给定转速1000rpm,0.5s施加额定负载

2.1给定转速、实际转速和估计转速

在到达额定转速后,可以看出,估计转速较为准确的跟踪实际转速,电机运行比较平稳。

2.2估计转速与实际转速误差

2.3估计转角与实际转角

2.4估计转角与实际转角误差

2.5电磁转矩

2.6三相电流

总结:基于同步坐标系的滑模观测器能及时快速跟踪电机的实际转速和转角变化。对比传统滑模观测器, 该控制方法控制准确高、 动态性能好、鲁棒性强,能满足电机实际控制性能要求

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
滑模观测器SMO)是一种常用的控制策略,用于解决系统状态观测问题。下面是一个简单的SMO滑模观测器算法的C代码示例: ```c #include <stdio.h> #include <math.h> #define N 10 // 输入向量的维度 #define M 5 // 输出向量的维度 double sign(double x) { if (x > 0) { return 1.0; } else if (x < 0) { return -1.0; } else { return 0.0; } } void smo_observer(double *u, double *y, double *x_hat) { // 定义参数 double lambda = 0.5; double gamma = 0.1; // 定义中间变量 double s[N] = {0.0}; double e[M] = {0.0}; double deltax_hat[N] = {0.0}; // 计算滑模面 for (int i = 0; i < N; i++) { s[i] = x_hat[i] - u[i]; } // 更新滑模面 for (int i = 0; i < N; i++) { deltax_hat[i] = -lambda * sign(s[i]); } // 计算估计误差 for (int i = 0; i < M; i++) { e[i] = y[i] - x_hat[N + i]; } // 更新参数估计值 for (int i = 0; i < (N + M); i++) { x_hat[i] += gamma * (deltax_hat[i] + e[i]); } } int main() { // 初始化输入、输出和估计值 double u[N] = {0.0}; double y[M] = {0.0}; double x_hat[N + M] = {0.0}; // 在这里设置输入、输出和初始估计值 // 调用SMO滑模观测器算法 smo_observer(u, y, x_hat); // 输出估计值 printf("Estimated state vector:\n"); for (int i = 0; i < (N + M); i++) { printf("%f\n", x_hat[i]); } return 0; } ``` 在这个示例代码中,`smo_observer`函数实现了SMO滑模观测器算法。它接受输入向量 `u`、输出向量 `y` 和估计状态向量 `x_hat`,并通过计算滑模面、更新滑模面、计算估计误差和更新参数估计值等步骤来实现状态观测。在`main`函数中,你可以设置输入、输出和初始估计值,然后调用 `smo_observer`函数来计算估计状态向量,并将其输出到终端上。 请注意,这只是一个简化的示例代码,实际应用中可能需要根据具体问题进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值