我是靠谱客的博主 欢喜跳跳糖,最近开发中收集的这篇文章主要介绍Simulink中已知PMSM转子位置计算转子速度Simulink中已知PMSM转子位置计算转子速度,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Simulink中已知PMSM转子位置计算转子速度

计算原理

此模块常用于转子位置已知前提下,用于求解转子速度。此模块计算原理利用了简单的微积分知识,其数学式可表述如下:
v [ k ] = θ [ k ] − θ [ k − 1 ] T s color{red} v_{[k]}=frac {theta_{[k]}-theta_{[k-1]}} {T_s} v[k]=Tsθ[k]θ[k1]
式中: k k k表示第 k k k个采样时刻(当前采样时刻), k − 1 k-1 k1表示第 k − 1 k-1 k1个采样时刻(上一采样时刻), θ [ k ] theta_{[k]} θ[k]表示 k k k时刻(当前采样时刻)的转子位置, θ [ k ] theta_{[k]} θ[k]表示 k − 1 k-1 k1时刻(上一采样时刻)的转子位置, v [ k ] v_{[k]} v[k]表示 k k k时刻(当前采样时刻)的转子速度, T s T_s Ts表示采样时间。

从mat文件加载theta数据

从mat文件中加载theta数据至工作区,Simulink中使用From worksapce 模块加载工作区的theta数据。mat文件中的theta数据加载至工作区间的实现代码如下:

% This code is used for load theta from .mat file.
clear;clc
load('SIM_IPMSM_FOC_theta_data_new.mat')
theta.signals.values = data{14}.Values.data(1:3000000,1);
Fs=1000000;
%离散系统采样频率,更改采样频率需赋值
Ts = 1/Fs;
L = size(theta.signals.values,1);
%查询size(ia.signals.values)第一个维度的长度,即数据的个数(长度)
t = (0:L-1)*Ts;
theta.time = t;

速度计算代码

unit delay实现(memory实现与此相同,unit delay换成memory即可)

模型截图如下:
在这里插入图片描述

function speed_now = fcn(speed_last,position_last,position_now,Ts)
error = position_now-position_last;
if error < -6
error = error + 2*pi;
end
if abs(error) >= 0.04*pi
speed_now = speed_last;
else
speed_now = error/Ts;
end

persistent实现

在这里插入图片描述

%--------------------------------------
%Function: This code is used for calculating speed from rotor position
%Author: made by PEZHANG
%Time: 2022.1.3
%--------------------------------------
function speed_now = fcn(position_now,Ts)
persistent speed_last position_last
if isempty(speed_last)
speed_last = 0;
position_last = 0;
end
error = position_now-position_last;
if error < -6
error = error + 2*pi;
end
if abs(error) >= 0.04*pi
speed_now = speed_last;
else
speed_now = error/Ts;
end
speed_last = speed_now;
position_last = position_now;

代码计算预览在这里插入图片描述

参考文献

【1】 https://blog.csdn.net/qq_50632468/article/details/120739136

最后

以上就是欢喜跳跳糖为你收集整理的Simulink中已知PMSM转子位置计算转子速度Simulink中已知PMSM转子位置计算转子速度的全部内容,希望文章能够帮你解决Simulink中已知PMSM转子位置计算转子速度Simulink中已知PMSM转子位置计算转子速度所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部