永磁同步直线电机(PMLSM)控制与仿真4-永磁同步直线电机数学三环闭环控制仿真

本文主要是介绍永磁同步直线电机(PMLSM)控制与仿真4-永磁同步直线电机数学三环闭环控制仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1、参数设置及脚本
  • 2、相电流波形
  • 3、位置波形
  • 4、速度波形
  • 5、控制电流波形
  • 6、永磁同步直线电机在实际控制中如何控制
  • 参考

写在前面:原本为一篇文章写完了永磁同步直线电机数学模型介绍,永磁同步直线电机数学模型搭建,以及永磁同步直线电机三环参数整定及三环仿真模型搭建,但因为篇幅较长,所以分开写。
永磁同步直线电机数学模型
永磁同步直线电机数学模型搭建
永磁同步直线电机数学三环控制整定
永磁同步直线电机数学三环闭环控制仿真

1、参数设置及脚本

电机参数:

PMLSM.r=2.6;
PMLSM.Ld=0.0267;
PMLSM.Lq=0.0267;
PMLSM.pole=2;
PMLSM.M=0.5;
PMLSM.B=0;
PMLSM.tau=0.018;
PMLSM.flux=0.24;

模型总览:
在这里插入图片描述
模型下载地址: 永磁同步直线电机三闭环控制simulink仿真模型
三环参数计算脚本:

function fcn()%----------------------------------------基本参数--------------------------------------------------------%
Ts=0.0001;%电机参数
PMLSM.r=2.6;
PMLSM.Ld=0.0267;
PMLSM.Lq=0.0267;
PMLSM.pole=2;
PMLSM.M=0.5;
PMLSM.B=0;
PMLSM.tau=0.018;
PMLSM.flux=0.24;%----------------------------------------PI等参数计算--------------------------------------------------------%
%由反电动势常数计算磁链
%flux=10*sqrt(6)*Ke/(pi*pole);
% r : 欧姆
% LS:H%电流环PI计算
kcpd=PMLSM.Ld/(2*Ts);
tau_d=PMLSM.Ld/PMLSM.r;
kcpq=PMLSM.Lq/(2*Ts);
tau_q=PMLSM.Lq/PMLSM.r;
kci_d=Ts/tau_d;
kci_q=Ts/tau_q;%速度环PI计算
h=5;
tau_v=h*2*Ts;
kvp=PMLSM.tau*PMLSM.M*(h+1)/(3*pi*PMLSM.pole*PMLSM.flux*2*h*Ts);
kvi=Ts/tau_v;%位置环P计算
kpp=1/(4*Ts*kvp);%----------------------------------------数据打印--------------------------------------------------------%
str='kcpd value is: ';
str=[str,num2str(kcpd)];
disp(str);str='kcpq value is: ';
str=[str,num2str(kcpq)];
disp(str);str='kci_d value is: ';
str=[str,num2str(kci_d)];
disp(str);str='kci_q value is: ';
str=[str,num2str(kci_q)];
disp(str);str='kvp value is: ';
str=[str,num2str(kvp)];
disp(str);str='kvi value is: ';
str=[str,num2str(kvi)];
disp(str);str='kpp value is: ';
str=[str,num2str(kpp)];
disp(str);

计算结果
在这里插入图片描述
参数对应的PID控制脚本:

function Out = PID(Err, Kp, Ki, Kd, OutMax, OutMin, Kc)persistent UpLast;
if isempty(UpLast)UpLast = 0;
endpersistent UiLast;
if isempty(UiLast)UiLast = 0;
endpersistent OutPreSatLast;
if isempty(OutPreSatLast)OutPreSatLast = 0;
endpersistent OutLast;
if isempty(OutLast)OutLast = 0;
end%Err = Ref - Fbk;Up = Kp * Err;Ui = UiLast + Ki * Up + Kc * (OutLast - OutPreSatLast);Ud = Kd * (Up - UpLast);OutPreSat = Up + Ui + Ud;if (OutPreSat > OutMax)Out = OutMax;
elseif(OutPreSat < OutMin)Out = OutMin;
elseOut = OutPreSat;
endUpLast = Up;
UiLast = Ui;
OutPreSatLast = OutPreSat;
OutLast = Out;

位置给定:

function y = fcn(T)y=sin(2*pi*T);

2、相电流波形

ia,ib,ic波形(1s时加载)
在这里插入图片描述

3、位置波形

位置给定与位置反馈波形:
在这里插入图片描述
局部放大:
在这里插入图片描述
依然存在一定的误差,但已经很小了

4、速度波形

速度给定与速度反馈
在这里插入图片描述
局部放大
在这里插入图片描述
可以看到速度跟随效果好,在1s时因为突加载缘故,速度有一定波动,但很快收敛。

5、控制电流波形

id=0的控制策略下,iq给定与反馈波形(1s时加载)
在这里插入图片描述
局部放大
在这里插入图片描述

6、永磁同步直线电机在实际控制中如何控制

在实际过程中永磁同步直线电机的控制与PMSM的控制方式一样,也采用FOC控制,只是有有几个参数不一样和运行方式有一点差异。
PMSM有感控制与PMLSM有感控制只有一个极对数和分辨率,已经运动方式的区别。
● PMSM的ABZ编码器反馈,脉冲反馈,4096线(16384脉冲),PMLSM的 1 u m 1um 1um,2000脉冲,极距 16 m m 16mm 16mm,那么等同于PMSM的ABZ编码器反馈,脉冲反馈,32000脉冲,也就是分辨率,于是两种电机就做到统一。
● PMSM的极对数一般为多对极,PMLSM一般为1对极。
● PMSM为旋转运动,可一个方向旋转或点到点的运动,PMLSM为直线运动,且一般为点到点的来回运动。

至此整篇文章结束。

参考

【1】唐传胜. 永磁同步直线电机控制方法研究[D].电子科技大学,2016.
【2】杜朝相. 永磁同步直线电机控制策略研究[D].北方工业大学,2022.DOI:10.26926/d.cnki.gbfgu.2021.000031.
【3】沈蛟骁. 基于STM32的永磁同步直线电机控制系统的研究[D].东南大学,2017.
【4】朱飞辉. 基于模糊PID控制的永磁同步直线电机伺服控制系统研究与实现[D].南华大学,2015.
【5】龙如意. 高精度直线电机模型辨识及控制研究[D].哈尔滨工业大学,2016.
【6】董思兴. 永磁同步直线电机无位置传感器动子位置估计研究[D].安徽大学,2016.
【7】张雷明. 永磁同步直线电机中的滑模控制技术研究[D].南京师范大学,2017.
【8】张代林. 永磁同步直线电机伺服系统的控制策略和实验研究[D].华中科技大学,2009.
【9】林春. 永磁同步直线电机伺服控制系统研究[D].浙江大学,2005.
【10】孙宗宇. 永磁同步直线电机的矢量控制[D].兰州理工大学,2009.
【11】刘杰. 永磁同步直线电机驱动系统的仿真研究[D].广东工业大学,2011.
【12】郑俊. 基于DSP的永磁同步直线电机伺服系统的设计与研究[D].广东工业大学,2012.
【13】张勇.永磁直线同步电机伺服控制系统研究[D].浙江大学,2014.

这篇关于永磁同步直线电机(PMLSM)控制与仿真4-永磁同步直线电机数学三环闭环控制仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066001

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2