永磁同步直线电机(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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/27836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jacob环境探索(兼容性、管理员、DLL位置、VS环境,COM权限)

概述&#xff1a; 最近在生产开发实践出现了很多问题&#xff0c;经过了一系列排查&#xff0c;特做如下总结 探索成果&#xff1a; 1. jacob.dll的建议位置 首先jacob的官网&#xff0c;以及官方GitHub&#xff0c;你可以从这里找到DLL文件&#xff0c;以及相关资料然后DLL文…

【APP移动端自动化测试】第一节.环境配置和adb调试工具

文章目录 前言一、Java环境搭建二、AndroidSDK环境搭建三、Android模拟器安装四、adb调试工具基本介绍 4.1 adb构成和基本原理 4.2 adb获取包名&#xff0c;界面名 4.3 adb文件传输 4.4 adb获取app启动时间 4.5 adb获取手机日志 4.6 adb其他有关…

Windows 11 中安装 Docker Desktop 并安装镜像

本该主要介绍在 Windows 11 中安装 Docker Desktop 时的一些准备工作&#xff0c;以及该如何下载和安装&#xff0c;然后分别使用管理界面和 Docker 命令安装两个镜像。 一、准备工作 在 Windows 11 中安装 Docker Desktop 前&#xff0c;需要做一些准备。打开 【Windows 功能…

MongoDB~事务了解;可调一致性模型功能与因果一致性模型功能分析

背景 MongoDB 从 3.0版本引入 WiredTiger 存储引擎之后开始支持事务&#xff0c;MongoDB 3.6之前的版本只能支持单文档的事务&#xff0c;从 MongoDB 4.0版本开始支持复制集部署模式下的事务&#xff0c;从 MongoDB 4.2版本开始支持分片集群中的事务。 根据官方文档介绍&…

C++11 move左值转化为右值

单纯的左值只能用左值引用和右值只能用右值引用有些局限&#xff0c;在一些情况下&#xff0c;我们也需要对左值去调用右值引用&#xff0c;从而实现将左值里的内容转移到右值中 标准定义&#xff1a; 功能就是将一个左值强制转化为右值&#xff0c;然后实现移动语义 注意&…

「TCP 重要机制」滑动窗口 粘包问题 异常情况处理

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;计网 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 滑动窗口&粘包问题&异常情况处理 &#x1f349;滑动窗口&#x1f34c;流量控制&#x1f34c;拥塞控制&#x1f34c;延时应答&…

Perl语言入门指南:掌握文本处理与系统管理的利器!

Perl是一种高级的、解释型的编程语言&#xff0c;具有强大的文本处理能力&#xff0c;被广泛用于文本处理、系统管理、网络编程等多种任务。本文将全面介绍Perl的基本概念、语法规则、主要用途以及如何开始学习Perl。 一、Perl语言简介 1. Perl的历史 Perl由Larry Wall在1987…

JUC并发编程-第二天:线程池相关

线程池相关 线程池内置线程池的使用线程池的关闭excute方法和submit方法的区别 线程池 线程池就是一个可以复用线程的技术 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,Thread…

前端菜鸡流水账日记 -- Pagination分页

哈喽哇大家&#xff0c;老规矩&#xff0c;见面先问好&#xff0c;今天是端午节假期后的第一天上班&#xff0c;大家假期开心吗&#xff0c;哈哈哈哈&#xff0c;我还是蛮开心的... 今天这篇笔记要分享得主要是一个分页器&#xff0c;但是不一样得地方是因为&#xff0c;首先是…

平台型组织的战略及OKR

本文主要探讨了在平台型组织中战略和OKR&#xff08;目标与关键结果&#xff09;的应用&#xff0c;以及如何在不同的组织架构中有效制定和执行战略。原文: Strategy and OKRs in the Platform Organization 战略&#xff1a;重要的承诺、复杂的过程 对于什么是组织的战略&…

EE trade:黄金期货交易指令有哪些

在黄金期货交易中&#xff0c;投资者常用的交易指令主要包括以下几种&#xff0c;每种指令都有其特殊用途和优势&#xff1a; 市价单(Market Order) 直接按市场当前价格买入或卖出合约。 适用于追求立即成交&#xff0c;不关注价格变动的情况。 限价单(Limit Order) 设定一…

百递云·API开放平台「智能地址解析API」助力地址录入标准化

地址信息的正确录入&#xff0c;是保证后续物流配送环节能够顺畅运行的必备前提&#xff0c;错误、不规范的收寄地址将会产生许多困扰甚至造成损失。 ✦地址信息通常包含国家、省、城市、街道、楼宇、门牌号等多个部分&#xff0c;较为复杂&#xff0c;填写时稍有疏忽就会出现…

使用Python爬取temu商品与评论信息

【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研究与开发工作&#xff01; 【&…

如何下载Tuxera NTFS for Mac 2023软件及详细安装步骤

软件简介&#xff1a; 在 Mac 上打开、编辑、复制、移动或删除存储在 Windows NTFS 格式 USB 驱动器上的文件。当您获得一台新 Mac 时&#xff0c;它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac&#xff0c;您需要一个附加的 NTFS 驱动程序。…

驱动开发(三):内核层控制硬件层

驱动开发系列文章&#xff1a; 驱动开发&#xff08;一&#xff09;&#xff1a;驱动代码的基本框架 驱动开发&#xff08;二&#xff09;&#xff1a;创建字符设备驱动 驱动开发&#xff08;三&#xff09;&#xff1a;内核层控制硬件层​​​​​​​ ←本文 目录…

Linux C编译器从零开发一

基础程序汇编 test.c int main() {return 42; } 查看反汇编 cc -o test test.c objdump -d -M intel test 0000000000001129 <main>:1129: f3 0f 1e fa endbr64 112d: 55 push rbp112e: 48 89 e5 mov rbp,rsp1131: b…

C#实现WMI获取硬盘参数

文章目录 背景涉及框架及库WMI查询小工具参数解释U盘移动硬盘本机设备 总结 背景 因为需求需要涉及获取硬盘的SN参数&#xff0c;但是又不想要获取到U盘或移动硬盘设备的SN&#xff0c;所以就浅浅的研究了一下。 以下就是我目前发现的一些参数的作用&#xff0c;够我用了。。。…

C++11移动语义

前言 之前我们已经知道了在类里开辟数组后&#xff0c;每一次传值返回和拷贝是&#xff0c;都会生成一个临时变量 class Arr { public://构造Arr() {/*具体实现*/ };//拷贝Arr(const Arr& ar) {/*具体实现*/ };//重载Arr operator(const Arr& ar) { /*具体实现*/Arr …

Canvas绘制老友记时钟

Canvas绘制老友记时钟 前言 一直做3D/2D可视化&#xff0c;Canvas API和三角函数&#xff0c;空间几何是基础。在官网上看了一遍Canvas API之后&#xff0c;决定绘制一个老友记时钟来巩固知识点&#xff0c;本文用实际代码讲解绘制过程。 代码 HTML <canvas id"myC…

计算机网络(9) TCP超时重传以及滑动窗口流量控制

一.确认机制与流量控制 引用&#xff1a;滑动窗口&#xff0c;TCP的流量控制机制 | 小菜学网络 确认机制 由于 IP 协议缺乏反馈机制&#xff0c;为保证可靠性&#xff0c;TCP 协议规定&#xff1a;当接收方收到一个数据后&#xff0c;必须回复 ACK 给发送方。这样发送方就能得…