[仿真]PMSM矢量控制——滑模速度环

2023-11-18

摘要

本文将通过一个PMSM在Simulink下的FOC仿真,来对比PI速度环和滑模速度环的效果。结果显示未经优化的滑模速度环和PI速度环在动态性能上差不多。如果想要更好的性能就需要改进滑模算法,包括减小抖振、减小过冲、加快过冲恢复时间。


PMSM的FOC模型——PI速度环

模型取自教材《现代永磁同步电机控制原理及Matlab仿真》的图3-8,如下:
speed PI,输出为q_ref
Iq电流环在速度环里面,为了使电流全用于输出转矩,所以还有一个Id=0的电流环。
电机以1000rpm恒定转速工作,在0.2s是加载TL=10Nm,得到输出转矩、三相电流、转速如下图:
输出转矩和三相电流实际转速/rpm
可以看到因为有PI速度环的存在,在加载后速度也可以很快恢复到1000rpm。
电机参数确定、PI参数也调好了以后,系统是具有一定的抗扰动能力和比较好的动态能的。

PMSM的FOC模型——滑模速度环

PI控制方法对电机内部参数比较敏感,当电机内部参数发生变化或系统受到外界扰动的影响时,简单的PI控制方法并不能满足实际的要求。
使用“滑模控制”方法,把PI控制的“把速度的差(speed_ref-speed_feedback)尽快趋近零”的思想变为“把速度的差和差的变化率尽快趋近零,使系统稳住”。

下图红框就是滑模控制器SMC。
只涉及红框模块的替换
SMC里的结构:
滑模控制器结构图

“滑模控制是变结构控制系统的一种控制策略。这种控制策略与常规控制的根本区别在于控制的不连续性,即一种使系统结构随时间变化的开关特性。这种特性可以使系统在一定条件下沿规定的状态轨迹做小幅、高频率的上下运动,这就是所谓的“滑动模态”。这种滑动模态是可以设计的,并且与系统的参数和扰动无关。因此,处于滑动模态的系统具有很好的鲁棒性。”
——《现代永磁同步电机控制原理及Matlab仿真》袁雷 等

0.1s处速度从1000rpm提高到1500rpm、0.3s处加载TL=10Nm,得到SMC仿真波形对比PI控制器:
输出转矩:SMC vs PI
转速和A相电流:SMC vs PI
可以看到SMC在输出转矩上的过冲比PI要小一些;相电流和转速上的过冲两者都很接近,SMC的恢复比PI要慢一些。
下面说说SMC控制的原理。
滑模控制中存在一个“滑模面”,用来表示系统状态(以下简称“状态”)的“理想情况”。于此同时状态存在一个“实际情况”,就是利用传感器实测或物理原理上得到的那些物理量,转换出来的“实际状态”——“状态”不一定就是这些物理量本身,很可能是一些误差量、导数之类的,状态(变量)的选择取决于哪些东西便于计算、而且下次计算也要继续用到的。“滑模面”之所以称为“面”,是因为包含了一个“分界”的概念——如果“实际状态”>“理想状态”,则执行控制函数A;如果“实际状态”<“理想状态”,则执行控制函数B——这也是所谓“变结构控制”的意思。
“滑模面”的含义
滑模控制的目的不像PI控制器那样“希望某一个量尽快稳定到期望值(误差趋近零)”,而是“希望这些系统状态的组合一起尽快稳定到期望值”。
这么说应该比较懵,直接上图:
SMC仿真得到的相轨迹
上图蓝色直线是理想系统状态:右下角端点是它的起点,也是电机启动瞬间、SMC控制器“就希望它能达到的状态”(然而实际电机的状态还处在右上方[105,0]的位置);中间的[0,0]坐标是蓝色直线的终点。
上图红色曲线是电机在运行过程中的实际状态:它从图像右边开始趋向蓝线,并以“到达蓝线终点[0,0]”为目的。曲线上存在两段斜率近似无穷大的点(超出绘图界面),分别对应“0.1s转速从1000提到1500”和“0.3s加载10Nm”两个情况。
如果没有上述两个改变输入的情况,电机从一开始就运行在“1000rpm、加载10Nm”下,得到相轨迹如图:电机运行过程不改变系统的输入
插句题外话:此时看电机的输出,SMC对比PI有明显的性能提升,包括输出转矩的波动减小、相电流更稳定,但是转速收敛慢于PI控制:输出转矩波动幅值减小相电流更稳定SMC转速收敛得比PI慢
好了,回到SMC。

相轨迹图的坐标轴分别是“滑模面”的两个分量。这个例子中系统状态函数(书中把这个定义为“滑模面函数”,但我觉得不好理解,暂且称为“系统状态函数”吧!)s = c * x1 + x2,c是可调参数,x1是速度差(speed_ref-speed_feedback),x2是速度差的导数(diff(speed_ref-speed_feedback))。
令s=0,得到滑模面x2 = -c * x1,即相轨迹图中蓝色直线,它穿过原点,斜率为-c。

看回相轨迹图,红色曲线在0.4s的过程中,貌似在靠近蓝线的曲折过程中就耗费了大量时间,所以——SMC真的能使系统响应及时吗?
SMC仿真得到的相轨迹
为此我特地测了两个输入突变点以及对应的时刻,发现系统在输入突变后分别0.013ms和0.117ms的短时间内开始趋近滑模面。
所以相轨迹图上即使轨迹很绕很长,但它并不能反映系统进入稳态的时间长短,只能反映系统趋近滑模面后还会不会逃逸、抖振严不严重。
滑模控制过程
误差曲线:对照相轨迹中的时刻

关于滑模速度环改进的讨论

从相轨迹图看到,系统状态远离滑模面时,它的趋近过程会比较平滑且直接;当靠近滑模面后会不断在它的两侧来回振荡——这个是滑模控制的“抖振问题”。

“…总之, 抖振产生的原因在于: 当系统的轨迹到达切换面时,其速度是有限大, 惯性使运动点穿越切换面, 从而最终形成抖振, 叠加在理想的滑动模态上。对于实际的计算机采样系统而言, 计算机的高速逻辑转换以及高精度的数值运算使得切换开关本身的时间及空间滞后影响几乎不存在, 因此, 开关的切换动作所造成控制的不连续性是抖振发生的本质原因。在实际系统中, 由于时间滞后开关、空间滞后开关、系统惯性、系统延迟及测量误差等因素, 使变结构控制在滑动模态下伴随着高频振动, 抖振不仅影响控制的精确性、增加能量消耗, 而且系统中的高频未建模动态很容易被激发起来, 破坏系统的性能, 甚至使系统产生振荡或失稳, 损坏控制器部件. 因此。关于控制信号抖振消除的研究成为变结构控制研究的首要工作。”
——《滑模变结构控制理论及其算法研究与进展》刘金琨、孙富春

这里有篇文章讲述了一种减小电机控制中的抖振:

“为了提高永磁同步电动机调速系统的动态品质,在分析常规指数趋近律滑模变结构控制基础上,提出了一种新型指数趋近律。该趋近律引入系统状态量的幂函数,使趋近速度与系统状态变化相关联,解决了常规指数趋近律切换带为带状,系统状态趋近于原点的一个抖振的问题(理想状态为趋近于原点),有效抑制了滑模的固有抖振问题,提高了趋近速度。”
—— 《永磁同步电机滑模变结构调速系统动态品质控制》张晓光 等

这个思想类似拉氏变换相对于傅里叶变换的改进:“随着时间推移,会有一个越来越小的系数把变量变得无穷小。”
如下,改进后的SMC输出在积分项的后面两项加上了|x1|的指数幂,而x1为速度差。
改进前的s_表达式
改进后的s_表达式
我按照该思想尝试修改SMC模型,遇到几个问题:

  1. 直接乘|x1|2:严重振荡,因为|x1|2 >> 1,相当于对k放大很多倍,起到反作用;
  2. 归一化x1后再乘|x1|2:s只能收敛到原点的附近、而不能到达原点,因为从系统状态函数s和输出iq的表达式来看,当x1<<x2且|x1|2≈0时,输出iq只与x2的值、x1的符号有关,和x1值无关;s的表达式不变改进后的SMC输出表达式
  3. 把x1限幅在[-1,1]区间,让系数|x1|2只有在s靠近滑模面的阶段才起作用:没有了明显振荡。没有偏离原点,但也没有明显改进效果。限幅
    综上:文章中通过增加可变系数|x1|α和|x1|β的方法我在这里没有得到验证。(可能是其他系统参数没有经过对应调整)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[仿真]PMSM矢量控制——滑模速度环 的相关文章

  • C++实现PID控制算法

    描述 PID控制算法 xff0c 是自动化专业学生必须掌握的基本控制算法 比例积分微分算法 比例项P xff1a 与当前误差相关积分项I xff1a 与一段时间积累的误差相关微分项D xff1a 与误差的变化相关 大家的解释都很多了 xff
  • Pid控制算法-位置型pid算法的C++实现

    PID控制算法的C 43 43 语言实现 三 位置型PID的C 43 43 语言实现 上一节中已经抽象出了位置性PID和增量型PID的数学表达式 xff0c 这一节 xff0c 重点讲解C 43 43 代码的实现过程 xff0c 算法的C
  • Matlab/simulink控制,遗传pid,模糊pid,滑模控制,自抗扰ADRC控制

    Matlab simulink控制 xff0c 遗传pid 模糊pid xff0c 滑模控制 xff0c 自抗扰ADRC控制 xff0c 鲁棒控制 xff0c LADRC控制等 xff0c 以上控制均已封装为simulink模块 xff0c
  • 详解PID控制算法 位置式和增量式区别 附代码详解

    1PID控制算法 什么是PID PID 控制器以各种形式使用超过了 1 世纪 xff0c 广泛应用在机械设备 气动设备 和电子设备 在工业应用中PID及其衍生算法是应用最广泛的算法之一 xff0c 是当之无愧的万能算法 PID 实指 比例
  • 路径跟踪之LQR控制算法

    xff08 一 xff09 车辆建模 两自由度车辆模型为 xff1a 考虑恒定不变 xff0c 则上述模型可以看作一个输入为 状态变量为的控制系统 xff0c 可以表示为 xff1a 对于参考轨迹 xff0c 可以表示为 xff1a 将 x
  • 滑模控制

    滑模控制 举例说明滑模控制 对于一个典型的二阶系统 x 1 61 x
  • 模糊PID控制算法的C++实现

    很久没有更新博客了 xff0c 今天就来讲讲模糊PID的C 43 43 实现方法 先来看一下整体的框架 xff1a 解释下上面框图的意思 xff0c 模糊PID其实是在普通PID的基础之上 xff0c 通过输入的两个变量 xff1a 误差和
  • PID控制算法的C语言实现

    PID控制算法的C语言实现一 PID算法原理 最近两天在考虑一般控制算法的C语言实现问题 xff0c 发现网络上尚没有一套完整的比较体系的讲解 于是总结了几天 xff0c 整理一套思路分享给大家 在工业应用中PID及其衍生算法是应用最广泛的
  • 位置式 PID 控制算法和增量式 PID 控制算法

    数字 PID 控制算法通常分为位置式 PID 控制算法和增量式 PID 控制算法 一 位置式 PID 算法 span class token function e span span class token punctuation span
  • [控制算法]

    常用控制算法 0 博览众长 0 1 视频 1 DR CAN b站 0 2 文章 1 控制算法整理 0 3 传统 VS 现代控制算法 1 传统 传统控制算法 xff1a PID xff0c 模糊 xff0c 神经网络控制算法 2 现代 现代控
  • Lyapunov稳定性判定总结及PI滑膜悬架仿真

    目录 前言 1 PD PSD ND NSD概念 2 Stable asymptotic stability Globalasymptotic stability 3 线性定常系统的稳定性分析 4 滑模变结构的拉塞尔 Lasalle 不变性原
  • VSC/SMC(十五)——基于模糊逼近的积分滑模控制

    目录 前言 1 一阶系统积分滑模 1 1 一阶系统 1 2 控制器设计 1 2 1 选取积分滑模面 1 2 2 选取指数趋近律 1 2 3 Lypunov闭环系统稳定性证明 1 3 仿真分析 1 4 仿真结果 2 基于模糊切换增益调节的滑模
  • MPC车辆轨迹跟踪----理论推导

    MPC控制简介 众所周知 控制算法中 PID的应用占据了90 而另外10 就是这次的主角MPC控制算法 MPC控制算法全称模型预测控制 它相对比PID有着多输入 多输出以及更加平稳的特点 并且最重要的是 MPC可以针对非线性的系统进行控制
  • PID算法(一)PID简介

    PID算法简介及实现代码 PID简介 智能车比赛中 用到了PID算法 写下来当一个总结 PID是很经典且应用很广泛的控制算法 依据误差来减少误差 PID PID分为三部分 P 比例 P增大 可以加快系统响应速度 但是不能从根本上消除静态误差
  • PID算法(三)串级PID

    串级PID 如果说前一次的衍生PID 是在基础PID算法的横向上变形的话 那本片的串级PID就是在基础PID的算法上 做纵向的嵌套 与单级PID的不同 与单级PID不同的是 串级PID 需要两个实际值输入 其中内层的变量 是外层变量的一次导
  • [非线性控制理论]6_滑模控制 (sliding mode control)

    非线性控制理论 1 Lyapunov直接方法 非线性控制理论 2 不变性原理 非线性控制理论 3 基础反馈稳定控制器设计 非线性控制理论 4 反馈线性化 反步法 非线性控制理论 5 自适应控制器 Adaptive controller 非线
  • [仿真]PMSM矢量控制——滑模速度环

    PMSM在Simulink下的FOC滑模速度环仿真 摘要 PMSM的FOC模型 PI速度环 PMSM的FOC模型 滑模速度环 关于滑模速度环改进的讨论 摘要 本文将通过一个PMSM在Simulink下的FOC仿真 来对比PI速度环和滑模速度
  • VSC/SMC(十六)——自适应鲁棒滑模控制

    目录 1 参数不定和扰动不定但有界的系统 2 滑模控制自适应律设计 2 1控制律设计总结 3 仿真分析 3 1 PD控制 3 2普通自适应律 3 3映射自适应律 3 4总结 4学习问题 1 参数不定和扰动不定但有界的系统 其中 2 滑模控制
  • PID控制算法(PID控制原理与程序流程)

    PID控制算法 PID控制原理与程序流程 暗影玄极 博客园 cnblogs com
  • [足式机器人]Part2 Dr. CAN学习笔记-Ch0-1矩阵的导数运算

    本文仅供学习使用 本文参考 B站 DR CAN Dr CAN学习笔记 Ch0 1矩阵的导数运算 1 标量向量方程对向量求导 分母布局 分子布局 1 1 标量方程对向量的导数 1 2 向量方程对向量的导数 2 案例分析 线性回归 3 矩阵求导

随机推荐

  • linux EXPECT

    expect 概念 Expect除支持Unix Linux平台外 它还支持Windows平台 用过secureCRT的人应该知道有个自动登录的设置 那就是利用expect实现的 expect 安装需要那些包支持 tcl包和tk包 linux
  • Recovery系统升级(2)--- 软件架构

    软件架构 Recovery升级系统原理 Main System下载新版本升级包到设备存储 重启进入Recovery System Recovery从设备存储load升级包并升级Main System 最后重启回到Main System 与之
  • DLT(Diagnostic Log and Trace)嵌入式系统程序运行记录

    http blog csdn net yanlinembed article details 49837975 DLT的使用有属于Application范畴与Context范畴 在使用DLT时 需要包含以下头文件 include
  • 浅谈在线IDE的搭建,配置,体验

    首先想说一句 在线IDE体验不是很好 也可能是对于在线的IDE有了太多的期望 网页实现一些软件的功能确实比较困难 已经体验的IDE有 腾讯家的Coding Cloud Studio 亚马逊家的 Cloud9 代码沙盒 Codesandbox
  • 慧眼识才、认识自己

    慧眼识才的十二杆标尺 学历 经历 掌控特质 老虎性格 表现特质 孔雀性格 耐心特质 考拉性格 精确特质 猫头鹰性格 自信心 精力水平 现场爆发力 策略规划力 支持执行力 敏锐度 慧眼识才的十二杆标尺包括由表及里的五个圈层 最外层是学历和经历
  • maven [INFO] Generating project in Batch mode

    搜资料很简单是某些东西被Q了 那么解决方法也很简单 S S T A P全局模式就OK了
  • Flask框架的web开发02(web项目整体架构)

    目录 一 flask框架整体构造 1 介绍 2 构造图 二 核心对象 管理 启动模块 1 核心对象app py模块 2 管理模块manager py 3 启动模块server py 三 配置文件模块 四 forms验证模块 五 libs公共
  • 关于华三HCL使用时,设备端口状态为down的解决

    内存不能低于默认值 可以通过关闭一些模拟器中的设备 可以关闭物理机上一些正在使用的应用和后台程序 一台或少量的启动设备
  • 习题

    1 在路由器上配置SSH服务器的过程 2 简述以太网交换机Mac地址表的学习过程 首先当4台pc机连接到交换机相互通信时 交换机会取出每个数据包的源MAC地址 通过算法找到相应的位置 如果是新地址 则创建地址表项 填写相应的端口信息 生命周
  • 1132. 合法的三角数

    给定一个包含非负整数的数组 你的任务是计算从数组中选出的可以制作三角形的三元组数目 如果我们把它们作为三角形的边长 样例 输入 2 2 3 4 输出 3 解释 合法的组合如下 2 3 4 使用第一个 2 2 3 4 使用第二个 2 2 2
  • 【机试练习】【C++】随机选择算法

    随机选择算法的实现 include
  • 【并发多线程】java.util.concurrent简介

    主要的组件 Executor ExecutorService ScheduledExecutorService Future CountDownLatch CyclicBarrier Semaphore ThreadFactory java
  • matlab遗传算法求多元函数最小值,matlab遗传算法求函数最小值

    function obj yichuan lb ub px pm lb ub为自变量的下界与上界 px为杂交概率 pm为变异概率 popsize 40 设定种群大小为40 maxgen 500 设定最大遗传代数为500代 dim 20 定义
  • 鸡和兔子共36脚100Matlab,matlab编程.ppt

    matlab编程 ppt 由会员分享 可在线阅读 更多相关 matlab编程 ppt 51页珍藏版 请在人人文库网上搜索 1 1 Matlab 编程基础 数学实验 数学软件 Matlab 2 本讲主要内容 M 文件 Matlab 编程基础
  • c语言基础回顾 —— 其他知识点

    参考 c语言基础回顾 其他知识点 作者 丶PURSUING 发布时间 2021 03 11 14 48 59 网址 https blog csdn net weixin 44742824 article details 114666007
  • python实现微信机器人: 登录微信、消息接收、自动回复

    安装wxpy pip install U wxpy 登录微信 导入模块 from wxpy import 初始化机器人 扫码登陆 bot Bot 运行以上代码 会生成一个二维码 通过图片扫描二维码即可登录微信 如果是在服务器上运行代码 无法
  • 了解java

    目录 一 Java是什么 二 Java语言特性 1 简单性 2 面向对象 3 健壮性 4 多线程 5 可移植性 跨平台 三 Java两种核心机制 1 Java虚拟机 Java Virtal Machine 2 垃圾收集机制 Garbage
  • 【22-23 春学期】人工智能基础--AI作业10-经典卷积网络

    LeNet MNIST LeNet是由Yann LeCun及其合作者于1998年开发的一种具有开创性的卷积神经网络架构 它的设计目的是识别手写数字并执行图像分类任务 MNIST是一个用于手写数字识别的大型数据库 常被用于训练图像处理系统 L
  • VTK C++版本本地编译(含OOCT编译及创建项目)

    官方编译 以Linux为主 也有Window的处理方式 可以参考 讲述Windows环境下如何进行处理 前期准备 VTK ZIP 建议下载最新版 否则会出错 也可按照需要自行选择 CMake Visualstudio 版本无要求 我下载的是
  • [仿真]PMSM矢量控制——滑模速度环

    PMSM在Simulink下的FOC滑模速度环仿真 摘要 PMSM的FOC模型 PI速度环 PMSM的FOC模型 滑模速度环 关于滑模速度环改进的讨论 摘要 本文将通过一个PMSM在Simulink下的FOC仿真 来对比PI速度环和滑模速度