永磁同步电机末端振动抑制(输入整形)

文章目录

  • 1、前言
  • 2、双惯量系统
  • 3、输入整形
    • 3.1 ZV整形器
    • 3.2 ZVD整形器
    • 3.3 EI整形器
  • 4、伺服系统位置环控制模型
  • 5、仿真
    • 5.1 快速性分析
    • 5.2 鲁棒性分析
  • 参考

1、前言

什么是振动抑制?对于一个需要精确定位的系统,比如机械臂、塔吊、码头集装箱等,一般由于模型中存在着振荡模态,所以当其到达期望的位置时,并不能立刻停下来,而是会进行一段时间逐渐衰减的摆动,也就是我们所说的残留振动
抑制振动的方法有很多,有通过增大零部件刚度、阻尼等通过改变系统模型而达到减小振动的被动控制的方法;有通过引入传感器形成闭环的反馈控制的方法;有开环控制方法,输入整形的方法便是开环控制的一种。
输入整形优点:只需要对输入指令进行整形就可以消除减少震动,不需要反馈传感器,避免了增加阻尼、提高刚度而引起的结构质量增加,成本低、结构简单、容易实现。
输入整形缺点:引入时间延时,产生滞后。
在引入振动抑制方法前,我们首先了解一下电机-负载双惯量系统模型,分析定位末端抖动的本质原因。

2、双惯量系统

在这里插入图片描述
在这里插入图片描述

3、输入整形

在这里插入图片描述
在这里插入图片描述
输入整形器的实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1 ZV整形器

在这里插入图片描述

3.2 ZVD整形器

在这里插入图片描述
在这里插入图片描述

3.3 EI整形器

在这里插入图片描述

4、伺服系统位置环控制模型

在这里插入图片描述
在这里插入图片描述

5、仿真

在这里插入图片描述
模型:
在这里插入图片描述
模型下载地址: 永磁同步电机末端振动抑制(输入整形)simulink仿真模型,包含ZV,ZVD,EI整形

wn=2*pi*36;%35.66
xi=0.0171;%0.4471
J1=1.1e-5;
J2=20.8e-5;
Kt=1;
K=20;
V=0.1;
Curr_Kp=3.7699;
Curr_Ki=1615.7;
spd_kp=0.0579;
spd_ki=15.633;
Pos_kp=100;%3827.1524

1) w n = 36 H z , ξ = 0.4471 w_n=36Hz,\xi=0.4471 wn=36Hz,ξ=0.4471
在这里插入图片描述
2) w n = 36 H z , ξ = 0.6471 w_n=36Hz,\xi=0.6471 wn=36Hz,ξ=0.6471
在这里插入图片描述
3) w n = 36 H z , ξ = 0.2471 w_n=36Hz,\xi=0.2471 wn=36Hz,ξ=0.2471
在这里插入图片描述
5) w n = 36 H z , ξ = 0.0471 w_n=36Hz,\xi=0.0471 wn=36Hz,ξ=0.0471
在这里插入图片描述
6) w n = 36 H z , ξ = 0.0171 w_n=36Hz,\xi=0.0171 wn=36Hz,ξ=0.0171
在这里插入图片描述
从整形结果来看,可得看到振荡变小,达到消除一定的残留振动的目的。但阻尼比小于系统阻尼比的效果好很多,这里可能有点问题,留作遗留项。欢迎纠错。

5.1 快速性分析

在这里插入图片描述

5.2 鲁棒性分析

在这里插入图片描述

% ****************************************
% 输入整形器分析:时域分析和残余振动分析 
% ****************************************clc;
clear;
close all;
%% 系统传递函数参数
W = 36;      % 系统固有频率
Z = 0.4417;    % 系统阻尼比
%% 输入整形器时域分析
InputShper_W = 36;
InputShper_Z = 0.4417;%% 输入整形器参数配置
format long
pi      = pi;
df      = sqrt(1 - InputShper_Z*InputShper_Z);
K       = exp(-(InputShper_Z*pi) / df);
T       = 2*pi / (InputShper_W*df);
V_tol   = 0.05;
%% ZV整形器参数
D = 1 + K;
ZV_A1 = 1 / D;
ZV_A2 = K / D;ZV_T2 = 1/2 * T;IS_ZV = [[ZV_A1, ZV_A2];[0,     ZV_T2]];
%% ZVD整形器参数
D = 1 + 2*K + K^2;
ZVD_A1 = 1 / D;
ZVD_A2 = 2*K / D;
ZVD_A3 = K^2 / D;ZVD_T2 = 1/2 * T;
ZVD_T3 = T;IS_ZVD = [[ZVD_A1, ZVD_A2, ZVD_A3];[0,      ZVD_T2, ZVD_T3]];%% EI整形器参数
EI_A1 = (1 + V_tol) / 4;
EI_A2 = (1 - V_tol) / 2;
EI_A3 = (1 + V_tol) / 4;EI_T2 = 1/2 * T;
EI_T3 = T;IS_EI = [[EI_A1, EI_A2, EI_A3];[0,     EI_T2, EI_T3]];%% 残余振动画图
% 基于频率的灵敏度曲线图
% RV_W = 0:1:100;
% RV_Z = InputShper_Z;
% 基于阻尼比的灵敏度曲线图
RV_W = InputShper_W;
RV_Z = 0:0.001:0.8;RV_ZV             = CalResidualVibration(IS_ZV,             2, RV_W, RV_Z);    
RV_ZVD            = CalResidualVibration(IS_ZVD,            3, RV_W, RV_Z);      
RV_EI             = CalResidualVibration(IS_EI,             3, RV_W, RV_Z);    figure(1);
% plot( RV_W, RV_ZV, RV_W, RV_ZVD, RV_W, RV_EI);
% legend('ZV','ZVD','EI');
% ylabel('残余振动');
% xlabel('频率');
% title('基于频率的输入整形器灵敏度分析')plot( RV_Z, RV_ZV, RV_Z, RV_ZVD, RV_Z, RV_EI);
legend('ZV','ZVD','EI');
ylabel('残余振动');
xlabel('阻尼比');
title('基于阻尼比的输入整形器灵敏度分析')%% 计算整形器残余振动,输入参数:输入整形器矩阵ARR,整形器脉冲数N,频率W,阻尼比Z
function RV = CalResidualVibration( ARR, N, W, Z)C = 0;S = 0;df = sqrt(1 - Z.*Z);Tn = ARR(2,N);for i = 1:NAi = ARR(1,i);Ti = ARR(2,i);C_TEMP = Ai .* exp(Z.*W.*Ti) .* cos(W.*df.*Ti);S_TEMP = Ai .* exp(Z.*W.*Ti) .* sin(W.*df.*Ti);C = C + C_TEMP;S = S + S_TEMP;endRV = exp(-Z.*W.*Tn).*sqrt(C.*C+S.*S);
end

假设频率变化范围在 [ 0 , 100 ] [0,100] [0100]内,将频率 w n w_n wn 作为横坐标,将残留振动 V V V作为纵坐标,根据残留振动表达式(3-9)可以画出基于频率的灵敏度曲线。
在这里插入图片描述
假设阻尼比变化范围在 [ 0 , 1 ] [0,1] [01]内,将频率 ξ \xi ξ 作为横坐标,将残留振动 V V V作为纵坐标,根据残留振动表达式(3-9)可以画出基于阻尼比的灵敏度曲线。
在这里插入图片描述
总体来说 E I EI EI鲁棒性最好。

参考

【1】陈天航.永磁同步伺服驱动系统高响应控制及振动抑制策略研究[D].华中科技大学,2021.DOI:10.27157/d.cnki.ghzku.2021.006514.
【2】孙永平.伺服系统高品质位置控制关键技术研究[D].哈尔滨工业大学,2022.DOI:10.27061/d.cnki.ghgdu.2022.005091.
【3】[1]郭小强.电动汽车用开关磁阻电机振动产生机理及抑制策略研究[D].东南大学,2019.DOI:10.27014/d.cnki.gdnau.2019.003817.
【4】杨明,曹佳,徐殿国.基于输入整形技术的交流伺服系统抖动抑制[J].电工技术学报,2018,33(21):4979-4986.DOI:10.19595/j.cnki.1000-6753.tces.L80595.
【5】邓辉.基于输入整形技术的机器人柔性机械臂振动抑制研究[D].深圳大学,2016.
【6】输入整形(Input Shaping):https://zhuanlan.zhihu.com/p/402291172
【7】振动抑制——输入整形(Input Shaping):https://blog.csdn.net/weixin_41276397/article/details/138393849
【8】 拉普拉斯变换 https://cdn.bridge619.com/pdf/%E6%8B%89%E6%99%AE%E6%8B%89%E6%96%AF%E5%8F%98%E6%8D%A2.pdf

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

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

相关文章

Pytorch使用手册-Optimizing Model Parameters(专题七)

优化模型参数 现在我们已经有了一个模型和数据,是时候通过优化模型参数来训练、验证和测试模型了。训练模型是一个迭代的过程:在每次迭代中,模型会对输出进行预测,计算预测的误差(损失),收集误差相对于参数的导数(在上一节中我们已看到),然后使用梯度下降优化这些参…

pywinauto常见用法详解

1 安装 pip install pywinauto0.6.3 -i https://pypi.tuna.tsinghua.edu.cn/simple 2 启动app appApplication(backenduia).start(程序路径) backend 参数有2种 win32和uia 3 窗口选择 3.1通过类选择 dlgapp["类名"] dlgapp.类名 3.2通过标题选择 dlgapp[&…

20241125复盘日记

昨日最票: 南京化纤 滨海能源 广博股份 日播时尚 众源新材 返利科技 六国化工 丰华股份 威领股份 凯撒旅业 华扬联众 泰坦股份 高乐股份高均线选股: 理邦仪器高乐股份日播时尚领湃科技威领股份资金最多的票: 资金攻击最多的票: …

【实用向】Django 框架入门

声明 这是一篇实用向的Django框架教程博客,适用于想要快速入门的开发者,有前后端开发以及语言基础,想要学习语法或者特性。,包括一些基础的使用,想要学习请结合文章初识 Django并按照我的顺序一步步进行,做…

Git的使用_仓库管理_CI/CD介绍

文章目录 一、Git的基础知识一-1、什么是GitLinux命令行的git的简易安装Git项目的组成Git的基本工作流程Git文件的三种状态 一-2、存储库远程存储库与本地存储库创建存储库git init命令的使用方法1. 初始化一个新的 Git 仓库2. 在指定目录初始化一个新的 Git 仓库3. 初始化一个…

畅游Diffusion数字人(6): JoyHallo: Digital human model for Mandarin

Diffusion Models专栏文章汇总:入门与实战 前言:目前音频驱动大部分的论文和数据都是围绕英文输入驱动打造的,应用在东亚人和国语上效果有所降低。与英语相比,普通话中复杂的嘴唇动作使模型训练更加复杂。这篇博客介绍京东提出的数字人技术《JoyHallo: Digital human model…

SpringCloud入门实战-Spring Cloud Stream消息驱动概述

❤️ 《SpringCloud入门实战系列》解锁SpringCloud主流组件入门应用及关键特性。带你了解SpringCloud主流组件,是如何一战解决微服务诸多难题的。项目demo:源码地址 ❤️ 作者:一只IT攻城狮。关注我,不迷路。 ❤️ 再小的收获x365天都会成就…

【初级测试常用的sql命令及实例解析】

连接数据库 命令行语句(以MySQL为例):mysql -u username -p。其中-u表示指定用户名,-p表示需要输入密码。解析:这是登录MySQL数据库服务器的基本命令。执行后,系统会提示输入密码,正确输入密码后…

Flink 安装与入门:开启流式计算新时代

在当今大数据蓬勃发展的时代,数据处理的时效性愈发关键。传统基于先存储再批量处理的数据方式,在面对诸如网站实时监控、异常日志即时分析等场景时,显得力不从心。随着 5G、物联网等技术的兴起,海量数据如潮水般涌来,且…

【科研绘图】Matplotlib 中文字符乱码(debug)

在使用 Matplotlib 绘图时,如果图中包含中文字符,可能会遇到中文无法正常显示的问题。这通常是因为默认的字体不支持中文。为了解决这个问题,你可以通过以下几种方法来设置 Matplotlib 使用支持中文的字体。 1. 设置 Matplotlib 使用支持中文…

如何在CodeIgniter中添加或加载模型

在CodeIgniter框架中,模型(Model)是用于与数据库进行交互的重要组件。模型通常包含数据库查询、业务逻辑以及与数据库表相关的函数。以下是如何在CodeIgniter中添加或加载模型的步骤: 1. 创建模型文件 首先,你需要在…

神经网络归一化方法总结

在深度学习中,归一化 是提高训练效率和稳定性的关键技术。以下是几种常见的神经网络归一化方法的总结,包括其核心思想、适用场景及优缺点。 四种归一化 特性Batch NormalizationGroup NormalizationLayer NormalizationInstance Normalization计算维度…

设计理念与数据反馈:面向火星熔岩管探索的跳跃机器人

随着人类对火星探索的深入,熔岩管作为潜在资源和居住地的科学价值受到广泛关注。然而,这些复杂且规模宏大的地下空间,对传统探测技术提出了严峻挑战。因此,本文介绍了一款专为火星熔岩管探索设计的跳跃机器人,其核心设…

MTK 展锐 高通 sensorhub架构

一、MTK平台 MTK框架可以分为两部分,AP和SCP。 AP是主芯片,SCP是协处理器,他们一起工作来处理sensor数据。 SCP 是用来处理sensor和audio相关功能和其他客制化需求的一个协处理理器,MTK SCP选择freeRTOS作为操作系统&#xff0c…

解决JWT解析CDN不稳定问题

最近在项目开发中,我遇到了一个令人头疼的问题:JWT解析所依赖的CDN源不稳定。这导致应用在某些情况下无法正常运行,严重影响了用户体验。经过一番探索和尝试,我最终通过手写解析函数的方式解决了这个问题。本文将分享我的解决过程…

SD NAND 的 SDIO在STM32上的应用详解

四.SDIO功能框图(重点) SDIO包含2个部分: ● SDIO适配器模块:实现所有MMC/SD/SD I/O卡的相关功能,如时钟的产生、命令和数据的传送。 ● AHB总线接口:操作SDIO适配器模块中的寄存器(由STM32控制SDIO外设),并产生中断和…

深入解析:用Scala验证身份证号码的合法性

引言 身份证号码,这个由18位数字组成的唯一标识,不仅包含了个人的出生年月日,还隐藏着性别信息,并且通过特定的算法来确保其唯一性和正确性。今天,我们将通过Scala编程语言,一步步揭开身份证号码的神秘面纱…

C语言数据结构学习:循环队列

C语言 数据结构学习 汇总入口: C语言数据结构学习:[汇总] 1. 循环队列 队列的博客:C语言数据结构学习:队列 循环队列会预先定义最大队列空间,然后定义一个数组,通过队列头和队列尾指针分别指向开头和结尾&…

leetcode-18-四数之和

题解: 代码:

go 结构体方法

在 Go 语言中,结构体方法是指附加到结构体类型上的函数。这些方法可以通过结构体的实例来调用。方法的接收者(receiver)指定了该方法属于哪个结构体类型。接收者可以是一个值类型或指针类型。 定义结构体方法 下面是如何为一个结构体定义方…