[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN118409560B - 钢瓶收口机用旋轮液压伺服位置控制方法及系统 - Google Patents

钢瓶收口机用旋轮液压伺服位置控制方法及系统 Download PDF

Info

Publication number
CN118409560B
CN118409560B CN202410874913.XA CN202410874913A CN118409560B CN 118409560 B CN118409560 B CN 118409560B CN 202410874913 A CN202410874913 A CN 202410874913A CN 118409560 B CN118409560 B CN 118409560B
Authority
CN
China
Prior art keywords
fuzzy
value
action
correction factor
alpha
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410874913.XA
Other languages
English (en)
Other versions
CN118409560A (zh
Inventor
郑伟
许益
杨义胜
陈键
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Rebotech Co ltd
Original Assignee
Hangzhou Rebotech Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Rebotech Co ltd filed Critical Hangzhou Rebotech Co ltd
Priority to CN202410874913.XA priority Critical patent/CN118409560B/zh
Publication of CN118409560A publication Critical patent/CN118409560A/zh
Application granted granted Critical
Publication of CN118409560B publication Critical patent/CN118409560B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4142Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by the use of a microprocessor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34013Servocontroller

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Feedback Control In General (AREA)

Abstract

本发明公开了钢瓶收口机用旋轮液压伺服位置控制方法及系统;本发明涉及钢瓶收口技术领域;选择壁厚偏差Δw和施压力度F作为模糊逻辑控制的输入变量;读取模糊集合和模糊规则推断出修正因子α(k)的模糊值α(k)’;读取设定的状态空间和动作空间,引入模糊值α(k)’作为强化学习算法的一个动作的建议;引入离散化的PID控制器控制液压伺服系统;本发明通过步骤S1的模糊逻辑控制系统,该方法能够智能地处理壁厚偏差和施压力度这两个关键变量。步骤S2中引入的强化学习策略,不仅考虑了动态加工精度,还将加工效率纳入考量。通过这种方式,得出的修正因子α(k)能够更全面地反映加工过程中的实际需求,实现了加工效率和精度的双重优化。

Description

钢瓶收口机用旋轮液压伺服位置控制方法及系统
技术领域
本发明涉及钢瓶收口技术领域,具体涉及旋轮模板封底工艺的液压伺服系统控制技术领域,特别涉及钢瓶收口机用旋轮液压伺服位置控制方法及系统。
背景技术
钢瓶封底收口工艺包括平模板封底工艺和旋轮模板封底工艺。平模板封底设备简单、操作方便和效率较高,但底部熔合和凹形底部尺寸控制方面较差。而旋轮模板封底可以实现自动控制,底部中心可以减少局部缺陷和融合较好,凹形底部尺寸容易控制,因此主流技术普遍首选旋轮模板封底工艺。
旋轮模板封底工艺是通过对一定规格的无缝钢管在收口机(也称之为收底机)中加热并施压加工的。其基本的机械构造及其原理可参阅如下文献:姜子良.一种钢瓶热旋液压收口机[P].CN202021913840.4:2021-05-18;
其工序在于:
S1,将无缝钢管的管口处加热到1100℃左右;
S2,旋轮直线运动至管口处并与之相切接触;
S3,旋轮沿管口端面旋转90°,即旋轮与管口由相切接触变为垂直接触状态;旋转过程中,旋轮经液压伺服系统施压(由液压缸驱动),在旋轮轴转径向加压的作用下,使无缝钢管的底部金属熔融在一起并形成外凸半球形、内部中心呈脐眼的近似平面状(下文将简称为“纵向突出部”);
S4,旋轮复位,取下封底完成的钢瓶。
但是,旋轮模板封底工艺制造出的管制钢瓶存在一些缺陷。经分析,总结出如下缺陷发生点,如图2所示:
(1)着地部位:管制瓶此部位的形状和尺寸受旋压封底工艺的限制,增厚不够,容易造成厚度不够和疲劳寿命低。在钢瓶使用过程中,特别是当它们被频繁移动或受到冲击时,这个较薄的区域更容易受到损坏。
(2)过渡段部位:钢瓶的过渡段是应力最集中处,钢管在旋压封底过程中此处不能按照纵向突出部的标准增厚,与瓶体过渡不圆滑。这种结构上的不连续性和应力集中会导致疲劳寿命降低,增加钢瓶在使用过程中出现问题的风险。
上述缺陷的发生机制在于:在上述S3执行的过程中,因旋轮对管口径向加压的作用下,钢瓶底部中心位置在成型过程中会产生如图2所示的纵向突出部,进而导致该钢瓶的底部壁厚与过渡段部位和着地部位具有偏差;当壁厚偏差造成相对温度低时,收底机的旋轮因液压伺服系统的相对施力不当,对钢瓶内壁产生裂纹、夹渣和气泡。其更深层次的机理可参阅如下文献,在此不再赘述:
吴传潇.冲拔式冷旋压高压无缝钢瓶的结构设计与性能试验[D].浙江工业大学,2019;
许久胜.车用压缩天然气钢瓶内胆纵向沟槽产生原因及对策[J].石油和化工设备,2013, 16(5):2.DOI:CNKI:SUN:HSFF.0.2013-05-027;
为了解决上述缺陷,目前部分现有技术已经对其进行改进,例如:
一种现有技术公开了一种可调整气瓶头部的几何形状的收底机(范英俊,郭士进,李九狮,等.高压无缝大口径钢瓶旋压收口机[P].CN02287580.8:2004-11-17),其通过调整成型模板与毛坯的相对位置可以改善着地部位和过渡段部位的造型,但是本质上并未对上述相对施力不当的现象进行优化,仍可能产生内壁应力问题;
另一种现有技术公开了一种具有特殊构型的收底机(王忠华,白延慈.钢瓶收口装置[P].CN98114087.4:2000-06-14),其通过形曲面和圆弧角的旋轮进行施工,可以改善着地部位和过渡段部位的造型,但是本质上并未对上述相对施力不当的现象进行优化,仍可能产生内壁应力问题;
另一种现有技术公开了一种基于旋轮模板封底工艺的二次成型工艺(李霖雨,李百升.无缝钢瓶自动收口成型设备[P].CN201811515063.5:2019-02-12),其先通过收口刮板模具对钢瓶工件进行瓶口预成型,然后再通过成型旋轮对钢瓶工件进行瓶口瓶肩的二次成型,使得瓶口端部应力得到改善,毛坯整齐;但是本质上并未对上述相对施力不当的现象进行优化,仍可能产生内壁应力问题。
为此,本发明提出钢瓶收口机用旋轮液压伺服位置控制方法及系统。
发明内容
有鉴于此,本发明实施例希望提供钢瓶收口机用旋轮液压伺服位置控制方法及系统;本发明的技术方案是这样实现的:
第一方面,钢瓶收口机用旋轮液压伺服位置控制方法:
(一)概述:
本发明旨在解决如下技术问题:考虑到纵向突出部是根据旋轮模板封底工艺的特定施工方式必定成型的,因此消除纵向突出部并不现实;但是可以对液压伺服系统进行智能化控制,使旋轮根据壁厚偏差进行自适应化智能调节施压力度,降低钢瓶内壁产生裂纹、夹渣和气泡的可能性,进而优化着地部位和过渡段部位的应力集中现象,增强钢瓶使用寿命。
本发明选择采用模糊逻辑控制结合强化学习策略,模糊逻辑控制可以提供快速且鲁棒的初步响应,而强化学习则可以在此基础上进行精细调整和优化。这种结合使得控制系统既能够利用专家的先验知识,又能够自我学习和适应。
(二)改进思路:
传统收底机的液压伺服系统(液压缸)是基于PLC程序控制的,以此为硬件基础,可对液压伺服系统引入一连续PID控制器算法:
其中:u(t)是控制器在时刻t的输出电信号。e(t)是设定值与实际值的偏差,即e(t) = r(t)-y(t),其中r(t)是设定值,y(t)是实际值。
表示在某一时刻的偏差值。偏差是指在该时间点上,设定值(期望值)与实际值之间的差异。是一个积分变量(时间点),用于表示在积分项中从初始时刻到当前时刻t的任意时刻。
Kp、Ki和Kd分别是比例、积分和微分控制器的增益。比例项Kpe(t)用于立即响应偏差,偏差越大,控制作用越强。积分项Kie(t)用于消除稳态误差,通过对过去偏差的积累来增加控制作用。微分项Kde(t)用于预测未来偏差的变化趋势,提前进行控制,以减少超调和提高系统的稳定性。
2.1离散化PID控制器:
纵向突出部是旋轮轴转径向加压的作用下逐步成型的;因此需要对上述PID控制器进行离散化处理:
其中:u(k)是在采样时刻k的控制器输出。e(k)是在采样时刻k的偏差。e(k-1)是在采样时刻k-1的偏差。
e(j)表示在采样时刻j的偏差值。r(j)是在采样时刻j的设定值(期望值),而y(j)是在同一采样时刻的实际值,则偏差值e(j)定义为
离散PID控制器是在数字系统中实现的,其中时间被分割成离散的采样点,而不是连续的。在这些采样点上,系统会读取实际值并计算与设定值之间的偏差。因此实际中,e(j)是在特定采样时刻j的设定值与实际值之间的偏差,它在离散PID控制算法中起着关键作用,帮助系统调整输出以减小或消除这种偏差。
2.2智能化离散的PID控制器:
为了动态调整旋轮的施压力度,引入一个跟随离散步长而动态变化的修正项。修正后的离散PID控制器表达式为:
其中,α(k)是一个修正因子,并且它是时变的(跟随时刻k而变化),那么它可以动态地调整PID控制器的输出u(k)。换句话说,它实际上是对整个PID控制器的输出进行了一个动态的缩放。修正因子α(k)在每个采样时刻k都会更新,从而实时地调整PID控制器的输出力度。
通过改变α(k)的值,可以直接放大或缩小PID控制器的输出。例如当α(k)>1时,控制器的输出将被放大;当0<α(k)<1时,输出将被缩小;而当α(k)=0时,控制器输出为零,即不进行任何控制动作。
这种模式允许液压伺服系统根据当前的相对壁厚和相对温差进行动态调整,以优化控制效果。例如,当检测到壁厚偏差较大时,可以增大α(k)以加强控制作用;反之可以减小α(k)以避免过度控制。
至此,本方案的技术脉络已经明确:如何动态化的赋值修正因子α(k)。
(三)技术方案:
为了动态化的赋值修正因子α(k),本方案选择通过模糊逻辑控制为α(k)提供一个初步的、基于专家知识的动态调整策略。先确保在液压伺服系统运行初期就有一个相对合理的控制策略。然后利用强化学习算法来进一步优化这个策略。强化学习算法可以根据系统的实时状态和性能反馈来调整α(k)的值,以最大化收口效率奖励函数。通过这种方式,液压伺服系统可以逐渐学习到在不同状态下如何更精确地调整α(k)。其具体的操作步骤包括如下的步骤S1~S3。
3.1步骤S1,读取模糊逻辑控制系统:
选择壁厚偏差Δw和施压力度F(这两个值分别从现有钢瓶设计图和液压缸执行参数获取),作为模糊逻辑控制的输入变量;读取模糊集合和模糊规则推断出修正因子α(k)的模糊值α(k)’;其包括如下的步骤S100~S102。
3.1.1步骤S100,读取模糊集合:
为壁厚偏差Δw和施压力度F定义模糊集合,包括“小S”、“中M”和“大L”,并为这些集合指定隶属度函数。
3.1.1.1输入变量壁厚偏差Δw的隶属度函数为:
对于小S的隶属度函数μSw),采用如下形式的高斯型隶属度函数:
对于中M和大L的隶属度函数,也可以采用类似的形式,但中心值和宽度参数会相应调整以反映不同的集合范围。
中M的隶属度函数μMw)为:
大L的隶属度函数μLw)为:
其中,cS是小S的集合的中心值,cM是中M的集合的中心值,cL是大L的集合的中心值,σ2是对应集合的宽度参数,决定了相应隶属度函数的形状。e是自然对数的底数。
3.1.1.2施压力度F的隶属度函数为:
对于小S的隶属度函数μS(F)为:
其中,cS,F是施压力度小S的集合的中心值,代表我们认为的“小”施压力度的典型值;σS,F是该集合的宽度参数,它决定了“小”这个模糊集合的覆盖范围。
中M的隶属度函数μM(F)为:
其中,cM,F是中M的集合的中心值,代表我们认为的“中等”施压力度的典型值;σM,F是相应的宽度参数。
大L的隶属度函数μL(F)为:
其中,cL,F是大L的集合的中心值,代表我们认为的“大”施压力度的典型值;σL,F是该集合的宽度参数。
3.1.2步骤S101,模糊推理:
基于建立的模糊规则库(Fuzzy Inference Engine)使用模糊推理机,根据输入的壁厚偏差Δw和施压力度F的实时值,推理出修正因子α(k)的模糊值α(k)’的模糊集合FS。
模糊推理机使用一系列的IF-THEN(如果-那么)规则,这些规则定义了输入与输出之间的关系。对于每个规则Ri
其中,μAiw)、μBi(F)和μCi(α(k)’)分别是输入Δw、F和输出α(k)’对应模糊集合的隶属度函数。
模糊推理机会根据所有模糊规则的激活程度(即输入隶属度的逻辑与操作结果),通过加权平均聚合方法来输出最终的模糊值α(k)’的模糊集合FS。
3.1.3步骤S102,解模糊化:
将最终的模糊值α(k)’的模糊集合FS执行解模糊化,得到模糊值α(k)’。
解模糊化的方法有多种,包括最大隶属度法和重心法(也称为质心法或面积中心法)等。本方案以重心法为例:
其中,μF(x)表示模糊集合FS的隶属度函数,a和b表示模糊集合的论域范围。
但是基于前文2.2部分所阐述的离散化形式,及后文的步骤S3所需的形式,模糊集合应当是由一系列的离散点构成的,因此上述的积分公式需要进一步转换为求和的形式。设模糊集合FS由n个离散点构成,每个点的隶属度为μi,对应的值为xi,则离散化的重心法公式可以表示为:
通过上述表达式,可以将模糊值α(k)’的模糊集合FS解模糊化为一个具体的数值。
可以理解的是,此时的模糊值α(k)’可以作为前文2.3中所述的修正因子α(k),即可以直接代入步骤S3用于后续的钢瓶收口机的位置控制。但是此时的模糊值α(k)’仅考虑了精度因素,而没有考虑到现实中的加工效率因素。因此,后续的步骤S2将对模糊值α(k)’进行进一步的细化探索,以得到兼顾加工效率和加工精度的双重效果。
3.2步骤S2,引入强化学习算法:
读取设定的状态空间和动作空间,然后通过奖励函数使收口效率最大化,引入模糊值α(k)’作为强化学习算法的一个动作的建议,强化学习算法动态的输出修正因子α(k),并观察执行该动作后获得的奖励以及系统状态的变化。其包括如下的步骤S200~S203。
3.2.1步骤S200,状态空间和动作空间:
1)状态空间S:包括壁厚偏差实时值d和施压力度实时值f:
其中,D是壁厚偏差所有可能的取值范围,F是施压力度所有可能的取值集合。
2)动作空间A:定义为修正因子α(k)的取值范围,是离散化的值:
A = {α1(k), α2(k),...,αn(k)};
其中,αi(k)是修正因子α(k)在第k个时刻下可能取的第i个离散值,n是离散值的总数。
3.2.2步骤S201,奖励函数:
当液压伺服系统动作执行的收口效率提高时给予正奖励,收口效率降低时给予负奖励;并生成一个奖励因子r;
设当前收口效率为Ecurrent,上一次收口效率为Eprevious,则收口效率的变化量ΔE表示为:
ΔE = Ecurrent- Eprevious
基于这个变化量,可以定义奖励因子r为正负奖励机制:
3.2.3步骤S202,执行SARSA算法:
初始化算法中的参数及值函数。SARSA算法结合模糊逻辑控制输出的模糊值α(k)’、当前液压伺服系统的效率状态和奖励因子r,选择并输出修正因子α(k)的实际数值。SARSA算法根据动作的建议和当前状态来选择实际执行的动作。其包括如下的步骤S2020~S2022;
3.2.3.1步骤S2020,与模糊逻辑控制结合:
SARSA算法在选择实际执行的动作时,会考虑模糊逻辑控制输出的模糊值α(k)′和当前液压伺服系统的效率状态。这个过程可以表达为选择一个动作at,该动作是基于当前状态st和模糊值α(k)′的建议,以及SARSA算法中的值函数Q(st,a)。动作at选择使用ε-greedy策略:
其中,是一个小的正数,表示探索的概率。在实际应用中,模糊值α(k)′作为动作at选择的一个参考或权重。a则是修正因子α(k)的一个具体取值,它是智能体根据当前状态和环境反馈来选择的。
更具体地说,智能体会根据当前的状态st和之前的经验(通过值函数 (Q(s,a)体现)来选择一个动作at。这个动作旨在最大化长期的累积奖励。在实际应用中,这个动作可能是一个离散的数值,代表修正因子α(k)的调整量,用于控制液压伺服系统的某些参数,以优化收口效率。
在选择动作时,智能体采用上述的ε-greedy策略,即大多数情况下它会选择当前认为最优的动作(即具有最高Q值的动作,Q值即值函数Q(st,a)的输出值),但有一小部分概率会使它会随机选择一个动作,以探索可能的更好选择。这种策略平衡了利用当前已知信息和探索未知选项的需要。
3.2.3.2步骤S2021,执行动作并观察奖励:
根据SARSA算法选择的动作调整修正因子α(k),在执行选定的动作at(即调整修正因子α(k))后,观察新得到的奖励因子r′和新的液压伺服系统效率状态st+1。这个过程是环境对动作的反应,并通过奖励因子来反馈动作的好坏。
3.2.3.3步骤S2022,更新强化学习算法:
根据观察到的新奖励因子r′和新的状态st+1,更新SARSA算法中的值函数Q(st,a)。更新公式遵循SARSA的更新规则:
其中:η是学习率,控制更新的步长。γ是折扣因子,用于权衡未来奖励的重要性。at+1是在新状态st+1下根据值函数和可能的ε-greedy策略选择的下一个动作。Q(st,a)’是更新后的值函数。
3.2.4步骤S203,获取修正因子α(k):
步骤S202中的值函数Q(st,a)用于估计在状态s下执行动作a的预期回报。动作a对应于不同的修正因子α(k)。基于更新后的值函数Q(st,a)’,选择修正因子α(k)的过程通过一个策略来选择:
在选择动作a(即修正因子α(k))时,采用ε-greedy策略,在“利用”(exploitation)当前已知的最佳动作和“探索”(exploration)可能更好的新动作之间找到平衡。即,以的概率选择当前状态下值函数最大的动作a(修正因子α(k)):
其中,st是当前状态;
上式的原理是基于定义的动作空间S(即修正因子α(k)的离散取值范围)中随机选择一个动作,argmaxa(Q(st, a))表示选择使Q(st,a)最大的动作a。
因此修正因子α(k)是基于值函数和当前策略从预定义的动作空间中选择出来的。该值函数提供了在不同状态下选择不同动作的预期回报信息,策略则定义了如何根据这些信息来选择动作。
3.3步骤S3,执行PID控制器:
如上文2.3所述,引入离散化的PID控制器控制液压伺服系统,并基于得到的所述修正因子α(k)对所述液压伺服系统的电信号进行动态缩放处理:
其中,u(k)是在采样时刻k的控制器输出(电信号)。e(k)是在采样时刻k的偏差。e(k-1)是在采样时刻k-1的偏差。e(j)表示在采样时刻j的偏差值。r(j)是在采样时刻j的设定值(期望值),而y(j)是在同一采样时刻的实际值,则偏差值e(j)定义为;Kp、Ki和Kd分别是比例、积分和微分控制器的增益。
修正因子α(k)是基于步骤S1的模糊逻辑控制系统输出的、考虑了择壁厚偏差Δw和施压力度F的动态变化而变化的模糊值α(k)’,并结合步骤S2针对加工效率的强化学习策略输出得到的。这个修正因子α(k)具有兼顾加工效率和加工精度的双重效果。
(四)解决技术问题的机制:
4.1智能化控制系统:
液压伺服系统作为钢瓶收口机的核心驱动力,通过液压伺服阀精确控制旋轮的运动。引入模糊逻辑控制和强化学习策略,使系统能够根据壁厚偏差和施压力度的实时数据,智能地计算出修正因子α(k),进而调整液压伺服系统的输出,实现对旋轮施压力度的精确控制。
4.2自适应化智能调节:
控制系统根据反馈数据,利用模糊逻辑控制和强化学习算法,动态调整旋轮的施压力度,确保加工过程中的精度和效率。这种自适应化的智能调节机制使得旋轮能够根据不同部位的壁厚偏差,实时调整施压力度,避免了过度施压或施压不足的情况。
4.3降低次品率:
通过精确控制旋轮的施压力度,该方法能够显著减少钢瓶内壁产生裂纹、夹渣和气泡的可能性。裂纹、夹渣和气泡是钢瓶制造过程中的常见缺陷,严重影响产品的质量和安全性。上述智能化控制方法通过实时监测和调整,大大降低了这些缺陷的产生概率,从而提高了产品的良品率。
4.4优化应力分布与增强使用寿命:
钢瓶的着地部位和过渡段部位是应力集中的关键区域。通过智能化控制旋轮的施压力度,可以优化这些区域的应力分布,减少应力集中现象。优化的应力分布不仅提高了钢瓶的结构强度,还能有效延长其使用寿命。在长期使用过程中,钢瓶能够更好地抵抗内外压力的变化,减少因应力集中而导致的损坏风险。
第二方面,钢瓶收口机用旋轮液压伺服位置控制系统:
如图3所示,所述系统包括处理器、与所述处理器连接的存储器,所述存储器中存储有程序指令,所述程序指令被所述处理器执行时,使所述处理器执行如上述所述的伺服位置控制方法,生成所述修正因子α(k)后,由PLC控制器读取并对旋轮液压伺服系统进行控制。
与现有技术相比,本发明的有益效果是:
一、智能化自适应调节:本发明通过步骤S1的模糊逻辑控制系统,该方法能够智能地处理壁厚偏差和施压力度这两个关键变量。步骤S2中引入的强化学习策略,不仅考虑了动态加工精度,还将加工效率纳入考量。通过这种方式,得出的修正因子α(k)能够更全面地反映加工过程中的实际需求,实现了加工效率和精度的双重优化。
二、精确的实时控制:本发明用离散化的PID控制器算法对液压伺服系统进行智能化控制。这种控制方式能够根据实时的壁厚偏差数据,通过修正因子对施压力度进行精确调节,从而确保旋轮在加工过程中始终保持在最佳状态。
三、降低次品率:本发明通过智能化的自适应调节,能够显著降低钢瓶内壁产生裂纹、夹渣和气泡的可能性。不仅提高了产品质量,还减少了次品率,进而降低了生产成本。同时通过精确控制旋轮的施压力度,本发明能够优化钢瓶着地部位和过渡段部位的应力分布,减少应力集中的现象。这有助于增强钢瓶的结构强度和使用寿命。
四、提升生产流程的鲁棒性:本发明的方法结合了多种先进的控制策略,使得整个生产流程对外部干扰和内部变化具有更强的鲁棒性。即使在复杂的生产环境中,也能保持稳定的加工质量和效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的方法流程示意图。
图2为管制钢瓶底部半剖的结构示意图。
图3为本发明的系统组成示意图。
图4为试验例的实验组和对照组的总体应力模拟示意图。
图5为试验例的实验组和对照组的着地部位的应力模拟示意图。
图6为试验例的实验组和对照组的过渡段部位的应力模拟示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制;
需要指出的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述得比较简单,相关之处参见方法部分说明即可。
实施例一:如图1所示,本实施例公开了钢瓶收口机用旋轮液压伺服位置控制方法;旨在实现对液压伺服系统进行智能化控制,使旋轮根据壁厚偏差进行自适应化智能调节施压力度,降低钢瓶内壁产生裂纹、夹渣和气泡的可能性,进而优化钢瓶着地部位和过渡段部位的应力集中现象,增强钢瓶使用寿命;本方案包括如下的步骤S1~S3。
在本实施例中,关于步骤S1,读取模糊逻辑控制系统:选择壁厚偏差Δw和施压力度F,作为模糊逻辑控制的输入变量;施压力度F可从液压缸执行参数获取;而壁厚偏差Δw则需要根据设计文件确定如图2所示的纵向突出部与其他壁厚之间的差值而确定。然后读取模糊集合和模糊规则推断出修正因子α(k)的模糊值α(k)’。步骤S1其包括如下的步骤S100~S102。
具体的,步骤S100,读取模糊集合:为输入变量壁厚偏差Δw和施压力度F定义了模糊集合,包括“小S”、“中M”和“大L”,并指定相应的隶属度函数。这些模糊集合和隶属度函数将用于后续的模糊逻辑推理,以实现旋轮施压力度的智能化控制。其中:
1)输入变量壁厚偏差Δw的隶属度函数为:
小S的隶属度函数μSw):
中M的隶属度函数μMw)为:
大L的隶属度函数μLw)为:
其中,cS是小S的集合的中心值,cM是中M的集合的中心值,cL是大L的集合的中心值,σ2是对应集合的宽度参数,决定了相应隶属度函数的形状。e是自然对数的底数。
可以理解的是,上述隶属度函数属于高斯型隶属度函数,能够平滑地描述变量属于某个模糊集合的程度。而施压力度F与壁厚偏差Δw类似,我们为施压力度F的小S、中M和大L集合也指定了高斯型隶属度函数。这些函数的中心值和宽度参数根据施压力度的实际范围和典型值进行设定:
2)施压力度F的隶属度函数为:
对于小S的隶属度函数μS(F)为:
其中,cS,F是施压力度小S的集合的中心值,代表我们认为的“小”施压力度的典型值;σS,F是该集合的宽度参数,它决定了“小”这个模糊集合的覆盖范围。
中M的隶属度函数μM(F)为:
其中,cM,F是中M的集合的中心值,代表我们认为的“中等”施压力度的典型值;σM,F是相应的宽度参数。
大L的隶属度函数μL(F)为:
其中,cL,F是大L的集合的中心值,代表我们认为的“大”施压力度的典型值;σL,F是该集合的宽度参数。
可以理解的是,通过定义模糊集合和隶属度函数,能够更灵活地描述和处理输入变量的不确定性。其灵活性使得液压系统能够更好地适应如钢瓶壁厚的微小变化或施压力度的波动的各种复杂情况。隶属度函数为后续的模糊逻辑推理提供了基础,使得系统能够根据实时的壁厚偏差和施压力度数据智能地调整旋轮的施压力度。
进一步地,上述步骤S101的python执行程序如下:
import math
def gaussian_membership_function(x, c, sigma):
"""
# 高斯型隶属度函数
:param x: #输入值
:param c: #中心值
:param sigma: #宽度参数的标准差
:return: #隶属度值
"""
return math.exp(-((x - c) ** 2) / (2 * sigma ** 2))
def calculate_membership_functions(input_value, parameters):
"""
#计算并返回六个隶属度函数值
:param input_value: #输入值(壁厚偏差Δw或施压力度F)
:param parameters: #参数字典,包含各隶属度函数的中心值和宽度参数
:return: #小S、中M、大L的隶属度值
"""
# 初始化隶属度字典
memberships = {'S': 0, 'M': 0, 'L': 0}
# 根据参数计算隶属度
for set_name, params in parameters.items():
c, sigma = params['center'], params['sigma']
memberships[set_name] = gaussian_membership_function(input_value, c,sigma)
return memberships
# 参数设置(可调)
parameters_delta_w = {
'S': {'center': -1, 'sigma': 0.5},
'M': {'center': 0, 'sigma': 0.5},
'L': {'center': 1, 'sigma': 0.5},
}
parameters_F = {
'S': {'center': 50, 'sigma': 10},
'M': {'center': 100, 'sigma': 10},
'L': {'center': 150, 'sigma': 10},
}
# 主程序
delta_w_value = {} # 壁厚偏差值
F_value = {} # 施压力度值
memberships_delta_w = calculate_membership_functions(delta_w_value,parameters_delta_w)
memberships_F = calculate_membership_functions(F_value, parameters_F)
print("Memberships for delta_w:", memberships_delta_w)
print("Memberships for F:", memberships_F)
在上述程序中,calculate_membership_functions函数将接受输入值(壁厚偏差Δw或施压力度F)以及相关的参数(中心值和宽度参数),然后返回对应模糊集合(小S、中M、大L)的隶属度。gaussian_membership_function函数计算给定输入值x对于特定中心值c和宽度参数sigma的高斯型隶属度。该函数遍历这些参数,使用高斯型隶属度函数计算输入值对每个模糊集合的隶属度,并返回一个包含这些隶属度的字典。
具体的,步骤S101,模糊推理:在本步骤中,利用模糊推理机进行智能推理,以根据输入的壁厚偏差Δw和施压力度F的实时数据,推导出修正因子α(k)的模糊值α(k)’的模糊集合FS。这一步骤是液压伺服系统智能化控制的核心环节,旨在使旋轮能够根据实时的壁厚偏差自适应地调节施压力度。
模糊推理机使用一系列的IF-THEN(如果-那么)规则,这些规则定义了输入与输出之间的关系。每一条规则Ri都表达了一种特定的条件与结果关系:
其中,μAiw)、μBi(F)和μCi(α(k)’)分别是输入Δw、F和输出α(k)’对应模糊集合的隶属度函数。这些隶属度函数用于量化输入和输出属于特定模糊集合(“小S”、“中M”、“大L”)的程度。
然后,按照如下步骤执行模糊推理:
1)输入模糊化:将实时测量的壁厚偏差Δw和施压力度F的值通过对应的隶属度函数转化为模糊集合的隶属度。
2)规则激活:模糊推理机会评估所有IF-THEN规则。对于每条规则,它会计算输入值对应的隶属度的逻辑与操作结果,反映了该规则的激活程度。
3)输出模糊值的计算:根据所有激活的规则的加权平均聚合方法,模糊推理机会输出一个模糊值α(k)’的模糊集合FS。这个加权平均考虑了每条规则的激活程度和其对应的输出隶属度:
有n条模糊规则,每条规则Ri对应一个输出隶属度μCi(α(k)’)和一个激活程度因子wi(为相应隶属度的最小值)。通过加权平均聚合方法得到的最终模糊值α(k)’的模糊集合FS表示为:
其中,i从1到n遍历所有规则。这个表达式实际上是对所有规则的输出隶属度进行加权平均,以得到最终的模糊值。
可以理解的是,通过模糊推理,操作系统能够根据实时的壁厚偏差和施压力度数据动态调整模糊值α(k)’的模糊值。这种自适应性使得旋轮的施压力度能够更精确地响应钢瓶制造过程中的变化,从而提高产品质量。系统能够根据实际情况调整旋轮的压力,避免过度或不足的压力对钢瓶质量造成负面影响,进而使得模糊推理有助于降低钢瓶内壁产生裂纹、夹渣和气泡的可能性。
进一步的,步骤S101的python执行程序如下,需调用上文所述的calculate_membership_functions函数才能执行,也可以搭配实施例二提供的模糊规则库实施:
# 输入参数
parameters_delta_w = {...} # 壁厚偏差Δw的隶属度函数参数
parameters_F = {...} # 施压力度F的隶属度函数参数
parameters_alpha_k_prime = {...} # 修正因子α(k)'的隶属度函数参数
# 模糊推理函数
def fuzzy_inference(delta_w, F):
# 计算输入值的隶属度
memberships_delta_w = calculate_membership_functions(delta_w,parameters_delta_w)
memberships_F = calculate_membership_functions(F, parameters_F)
# 初始化输出模糊集合FS的隶属度为0
memberships_alpha_k_prime = {key: 0 for key in parameters_alpha_k_prime.keys()}
# 遍历所有模糊规则进行推理
for rule_key in memberships_delta_w.keys():
# 获取当前规则的输入隶属度
mu_delta_w = memberships_delta_w[rule_key]
mu_F = memberships_F[rule_key]
# 计算规则的激活程度(取隶属度的最小值作为激活程度)
rule_activation = min(mu_delta_w, mu_F)
# 如果规则被激活(即激活程度大于0),则更新输出模糊集合FS的隶属度
if rule_activation>0:
for output_key in memberships_alpha_k_prime.keys():
# 规则输出直接对应到相同的模糊集合上,如“小S”输入对应“小S”输出等。
memberships_alpha_k_prime[output_key] = max(memberships_alpha_k_prime[output_key], rule_activation)
return memberships_alpha_k_prime
# 主程序
delta_w_value = ... # 某个具体的壁厚偏差值
F_value = ... # 某个具体的施压力度值
memberships_alpha_k_prime = fuzzy_inference(delta_w_value, F_value)
print("Fuzzy output memberships for α(k)':", memberships_alpha_k_prime)
在上述程序中,通过调用calculate_membership_functions函数来计算输入值(壁厚偏差Δw和施压力度F)对各自模糊集合(“小S”、“中M”、“大L”等)的隶属度。接着,程序遍历所有的模糊规则。对于每条规则,它计算规则的激活程度,即输入隶属度的最小值。这个最小值表示了规则的前提部分被满足的程度。如果规则的激活程度大于0,说明该规则对当前输入是有效的,程序就会根据规则的输出部分来更新模糊值α(k)’的模糊集合FS的隶属度。
具体的,步骤S102,解模糊化:将最终的模糊值α(k)’的模糊集合FS执行重心法以解模糊化,得到模糊值α(k)’:
其中,μF(x)表示模糊集合FS的钟形隶属度函数,a和b表示模糊集合的论域范围。其中c是钟形的中心点:
但是对于后文的步骤S3所需的形式,模糊集合FS应当是由一系列的离散点构成的,因此上述的积分公式需要进一步转换为求和的形式。设模糊集合FS由n个离散点构成,每个点的隶属度为μi,对应的值为xi,则离散化的重心法执行方法为:
通过上述表达式,可以将模糊值α(k)’的模糊集合FS解模糊化为一个具体的数值。
可以理解的是,此时的模糊值α(k)’可以直接代入步骤S3用于后续的钢瓶收口机的位置控制。但是此时的模糊值α(k)’仅考虑了精度因素,而没有考虑到现实中的加工效率因素。因此,后续的步骤S2将对模糊值α(k)’进行进一步的细化探索,以得到兼顾加工效率和加工精度的双重效果。
进一步的,步骤S102的python执行程序如下:
def defuzzify(FS):
"""
对模糊集合FS进行解模糊化,采用重心法。
FS: 模糊集合,表示为字典形式,键为可能的输出值,值为对应的隶属度。
"""
# 初始化分子和分母
numerator = 0
denominator = 0
# 遍历模糊集合中的每个元素
for value, membership in FS.items():
numerator += value * membership
denominator += membership
# 使用重心法公式计算解模糊化后的值
if denominator == 0:
raise ValueError("模糊集合的隶属度之和不能为0")
defuzzified_value = numerator / denominator
return defuzzified_value
# 示例模糊集合FS
FS_example = {
10: 0.1,
20: 0.5,
30: 0.8,
40: 1.0,
50: 0.6,
60: 0.3
}
# 对示例模糊集合进行解模糊化
alpha_k_prime = defuzzify(FS_example)
print(f"解模糊化后的值 α(k)' = {alpha_k_prime}")
上述程序的原理在于:解模糊化采用的是重心法,通过计算模糊集合中所有元素的加权平均来得到一个具体的数值。首先初始化两个变量numerator(分子)和denominator(分母)为零。然后遍历模糊集合中的每个元素,计算加权和(分子)以及隶属度的总和(分母)。最后,通过除法运算得到解模糊化后的值。函数返回解模糊化后的具体数值alpha_k_prime,这个值可以直接用于后续的控制系统。
在本实施例中,关于步骤S2,引入强化学习算法:读取设定的状态空间和动作空间,然后通过奖励函数使收口效率最大化,引入模糊值α(k)’作为强化学习算法的一个动作的建议,强化学习算法动态的输出修正因子α(k),并观察执行该动作后获得的奖励以及系统状态的变化。其包括如下的步骤S200~S203。
具体的,步骤S200,状态空间和动作空间:
1)状态空间S:包括壁厚偏差实时值d和施压力度实时值f:
其中,D是壁厚偏差所有可能的取值范围,F是施压力度所有可能的取值集合。
2)动作空间A:动作是智能体(即控制系统)根据当前状态做出的决策,用于改变系统的状态或影响环境。定义为修正因子α(k)的取值范围,是离散化的值:
A = {α1(k), α2(k),...,αn(k)};
其中,αi(k)是修正因子α(k)在第k个时刻下可能取的第i个离散值,n是离散值的总数。
可以理解的是,基于状态空间和动作空间,强化学习算法能够更精确地理解系统的当前状态,并根据需要采取适当的动作(即选择合适的修正因子)。有助于实现对旋轮压力和位置的精确控制,从而提高钢瓶的制造精度和质量。由于状态空间包含了壁厚偏差和施压力度的实时值,算法可以根据这些信息的实时变化来动态调整修正因子。这种自适应调整能力使得系统能够灵活应对各种加工条件的变化,确保钢瓶的成型质量稳定且一致。
具体的,步骤S201,奖励函数:当液压伺服系统动作执行的收口效率提高时给予正奖励,收口效率降低时给予负奖励;并生成一个奖励因子r;设当前收口效率为Ecurrent,上一次收口效率为Eprevious,则收口效率的变化量ΔE表示为:ΔE = Ecurrent- Eprevious;这个变化量表示了从上一次动作到当前动作收口效率的改变情况。基于这个变化量,可以定义奖励因子r为正负奖励机制:
其机制在于:
1)当ΔE>0时,表示收口效率有所提高,此时给予正奖励,即r = +1。这鼓励算法继续探索那些能提高收口效率的行为。
2)当ΔE<0时,表示收口效率降低,此时给予负奖励,即r = -1。这是对不利于任务完成的行为的惩罚,引导算法避免此类行为。
3)当ΔE = 0时,表示收口效率没有变化,此时奖励因子为0,即r = 0。相当于当前行为既没有带来正面的影响,也没有带来负面的影响。
进一步地,上述步骤S200~S201的python执行程序如下:
import numpy as np
# 定义状态空间和动作空间
def create_state_action_spaces():
# 壁厚偏差和施压力度的取值范围
D = np.arange(-1.0, 1.1, 0.1) # 壁厚偏差的取值范围
F = np.arange(0, 101, 10) # 施压力度的取值范围
# 创建状态空间
state_space = [(d, f) for d in D for f in F]
# 动作空间是修正因子的离散值
action_space = np.arange(-1.0, 1.1, 0.2) # 示例的修正因子取值范围
return state_space, action_space
# 定义奖励函数
def calculate_reward(current_efficiency, previous_efficiency):
delta_E = current_efficiency - previous_efficiency
if delta_E>0:
return 1 # 收口效率提高,给予正奖励
elif delta_E<0:
return -1 # 收口效率降低,给予负奖励
else:
return 0 # 收口效率没有变化,奖励为0
# 主程序
if __name__ == "__main__":
# 创建状态空间和动作空间
state_space, action_space = create_state_action_spaces()
print("State Space:", state_space)
print("Action Space:", action_space)
# 两次收口效率的值
previous_efficiency = 80 # 上一次的收口效率
current_efficiency = 85 # 当前的收口效率
# 计算奖励
reward = calculate_reward(current_efficiency, previous_efficiency)
print("Reward:", reward)
在上述程序中,create_state_action_spaces函数根据预设的壁厚偏差范围D和施压力度范围F,生成所有可能的状态组合,形成状态空间。动作空间是根据预设的修正因子范围来定义的,它代表了可能的动作调整量。calculate_reward函数接收当前的收口效率和上一次的收口效率作为输入。通过计算两者的差值delta_E来判断收口效率的变化。根据delta_E的正负来决定奖励的正负,如果效率提高则奖励为正,效率降低则奖励为负,没有变化则奖励为零。
具体的,步骤S202,执行SARSA算法:用于在强化学习环境中求解最优策略。SARSA算法的特点是它在学习过程中同时考虑了当前的状态、当前的动作、下一个状态以及在下一个状态将采取的动作,因此得名SARSA(State-Action-Reward-State-Action)。在这个步骤中,将SARSA算法与模糊逻辑控制相结合,以实现对液压伺服系统的智能化控制。
首先需要初始化算法中的参数及值函数。值函数用于估计在给定状态下采取特定动作的长期回报,它是SARSA算法进行决策的基础。初始化这些参数和值函数是算法开始学习的前提。SARSA算法将结合模糊逻辑控制输出的模糊值α(k)’、当前液压伺服系统的效率状态和奖励因子r来工作。模糊逻辑控制输出的模糊值α(k)’反映了系统对修正因子的初步判断,它基于当前的壁厚偏差和施压力度等因素得出。这个模糊值为SARSA算法提供了一个参考点,但SARSA算法会进一步根据实际情况进行精细化的决策。
随后,SARSA算法使用上述信息选择并输出修正因子α(k)的实际数值。这个过程是算法的核心,它综合考虑了当前状态、可能采取的动作以及这些动作带来的预期回报。通过不断地试错和学习,SARSA算法能够逐渐找到最优的动作策略,即如何根据当前的壁厚偏差和施压力度等因素来调整修正因子,从而实现旋轮施压力度的自适应调节。同时SARSA算法根据动作的建议和当前状态来选择实际执行的动作。这里的动作的建议来自步骤S1的模糊逻辑控制,而SARSA算法则负责在这些建议的基础上做出最终决策。通过这种方式,我们可以确保旋轮的施压力度能够根据实际情况进行动态调整,以适应不同的加工条件和壁厚偏差。
具体地,步骤S203,获取修正因子α(k):步骤S202中的值函数Q(st,a)用于估计在状态st下执行动作a的预期回报。动作a对应于不同的修正因子α(k)。基于更新后的值函数Q(st,a)’,选择修正因子α(k)的过程通过如下的策略来选择:
在选择动作a(即修正因子α(k))时,采用ε-greedy策略:
以1-ε的概率选择当前状态下值函数最大的动作a(修正因子α(k)),这个动作对应的修正因子α(k)就是我们认为在当前状态下最优的选择。同时,以ε的概率随机选择一个动作,保证了系统有足够的机会去探索新的可能:
其中,st是当前状态;
上式的原理是基于定义的动作空间S(即修正因子α(k)的离散取值范围)中随机选择一个动作,argmaxa(Q(st, a))表示选择使Q(st,a)最大的动作a。
因此修正因子α(k)是基于值函数和当前策略从预定义的动作空间A中选择出来的。该值函数提供了在不同状态下选择不同动作的预期回报信息,策略则定义了如何根据这些信息来选择动作。
可以理解的是,通过值函数和ε-greedy策略的结合使用,系统能够根据不同状态自适应地选择最优的修正因子α(k),从而实现对液压伺服系统的智能化控制。通过优化旋轮的施压力度,降低了钢瓶内壁产生裂纹、夹渣和气泡的可能性,进而提高了产品质量和合格率。通过对修正因子α(k)的精准选择,可以优化钢瓶着地部位和过渡段部位的应力集中现象,提高产品的结构强度和安全性。其机制主要归功于强化学习的思想和ε-greedy策略的应用。通过不断地学习和尝试,系统能够逐渐找到最优的动作选择(即修正因子α(k)),从而实现对液压伺服系统的精准控制。
进一步的,步骤S203的python执行程序如下:
import numpy as np
# 状态空间和动作空间(修正因子α(k)的取值)都是离散的
num_states = {} # 状态空间的大小,示例值
num_actions ={} # 动作空间的大小(即修正因子的可能取值数量)
# Q = ... (从实施例三的步骤S202中获取更新后的Q值表)
# 设置ε-greedy策略中的ε值
epsilon = 0.1
# 当前状态st(需要从实际环境中获取或指定)
current_state = {}
# ε-greedy策略选择动作(修正因子α(k))的函数
def epsilon_greedy_policy(state, Q, epsilon):
if np.random.rand()<epsilon:
# 以ε的概率随机选择动作
return np.random.randint(num_actions)
else:
# 否则选择Q值最大的动作
return np.argmax(Q[state, :])
# 执行步骤S203,获取修正因子α(k)
def get_correction_factor(current_state, Q, epsilon):
# 使用ε-greedy策略选择动作(修正因子)
chosen_action = epsilon_greedy_policy(current_state, Q, epsilon)
# 设动作空间(修正因子α(k)的取值)是预先定义的,映射为[0.1, 0.3, 0.5,0.7, 0.9]
correction_factors = [0.1, 0.3, 0.5, 0.7, 0.9]
return correction_factors[chosen_action]
# 一次选择修正因子的过程
# Q值表从步骤S202中获取并更新
# Q = ... (使用步骤S202中更新后的Q值)
correction_factor = get_correction_factor(current_state, Q, epsilon)
print(f"Selected correction factor α(k): {correction_factor}")
在上述程序中,首先设定了状态空间和动作空间(即修正因子的可能取值)的大小。同时,从步骤S202中获取了更新后的Q值表,并设置了ε-greedy策略中的ε值。epsilon_greedy_policy函数实现了ε-greedy策略。它接受当前状态、Q值表和ε值作为输入,并返回一个动作索引。这个动作索引对应于选定的修正因子。如果随机数小于ε,则随机选择一个动作;否则,选择当前状态下Q值最大的动作。get_correction_factor函数是步骤S203的核心。它调用epsilon_greedy_policy函数来选择动作(即修正因子的索引),然后根据预定义的修正因子列表返回对应的修正因子值。这个列表应根据实际应用中修正因子的可能取值来设置。在模拟部分,从步骤S202中获取了更新后的Q值表,并调用get_correction_factor函数来选择修正因子。最后,打印出选定的修正因子值。
在本实施例中,关于步骤S3,执行PID控制器:引入离散化的PID控制器控制液压伺服系统,并基于得到的所述修正因子α(k)对所述液压伺服系统的电信号进行动态缩放处理:
其中,u(k)是在采样时刻k的控制器输出(电信号)。e(k)是在采样时刻k的偏差。e(k-1)是在采样时刻k-1的偏差。e(j)表示在采样时刻j的偏差值。r(j)是在采样时刻j的设定值(期望值),而y(j)是在同一采样时刻的实际值,则偏差值e(j)定义为;Kp、Ki和Kd分别是比例、积分和微分控制器的增益。
其中,u(k)代表在采样时刻k的控制器输出电信号。e(k)是在采样时刻k的偏差,它表示设定值(期望值)r(k)与实际值y(k)之间的差异,即e(k) = r(k) - y(k)。同理,e(k-1)是在采样时刻k-1的偏差,而e(j)代表在任意采样时刻j的偏差。
PID控制器的三个主要部分是比例(P)、积分(I)和微分(D)控制,分别由Kp、Ki和Kd三个增益参数来调整。比例控制用于减少当前偏差,积分控制用于消除过去的累积偏差,而微分控制则用于预测并减小未来的偏差。
可以理解的是,这里的控制器输出u(k)通过修正因子α(k)进行了动态缩放。这个修正因子α(k)是基于步骤S1的模糊逻辑控制系统的输出,该输出考虑了壁厚偏差Δw和施压力度F的动态变化,生成一个模糊值α(k)’。此外,修正因子α(k)还结合了步骤S2中针对加工效率的强化学习策略的输出。通过这种方式,修正因子α(k)能够兼顾加工效率和加工精度;它可以根据实时的壁厚偏差和施压力度调整PID控制器的输出,使得旋轮能够自适应地调节施压力度。这不仅可以降低钢瓶内壁产生裂纹、夹渣和气泡的可能性,还能优化钢瓶着地部位和过渡段部位的应力集中现象。
进一步的,步骤S3的python执行程序如下所示:
import serial
import time
# 初始化串口通信
serial_port = serial.Serial('COM1', 9600, timeout=1) # COM1端口
# PID控制器参数
Kp = 1.0
Ki = 0.1
Kd = 0.01
# 初始化PID变量
previous_error = 0
integral = 0
# 输入修正因子α(k)
alpha_k = {...}
def pid_controller(setpoint, process_variable, k):
global previous_error, integral
error = setpoint - process_variable
derivative = error - previous_error
integral += error
u_k = alpha_k * (Kp * error + Ki * integral + Kd * derivative)
previous_error = error
return u_k
# 主循环
for k in range(100): # 进行100次控制循环
# 从液压系统的传感器获取实际值(process_variable)
process_variable = k / {...}
# 设定目标值(setpoint)
setpoint = {...}
# 计算PID控制器的输出u(k)
u_k = pid_controller(setpoint, process_variable, k)
# 将u(k)通过串口发送给PLC控制器
message = f"U{u_k:.2f}\n" # 格式化消息,保留两位小数
serial_port.write(message.encode()) # 发送电信号u(k)给PLC
# 模拟控制周期延迟
time.sleep(0.1)
# 关闭串口通信
serial_port.close()
在上述程序中,首先使用Python的serial库来初始化串口通信。使用的是COM1端口,波特率设置为9600。设置PID控制器的比例(Kp)、积分(Ki)和微分(Kd)增益参数。随后初始化了用于PID计算的全局变量,包括上一次的误差(previous_error)和误差的积分(integral)。pid_controller函数根据设定值(setpoint)、实际值(process_variable)和当前时刻(k)计算出PID控制器的输出u(k)。这个函数使用了全局变量来跟踪上一次的误差和误差的积分。
在主循环中进行了100次控制循环(可调)。在每个循环中,从一个传感器或其他方式获取实际值,并设定一个目标值。然后,调用pid_controller函数来计算PID控制器的输出u(k)。同时在每次控制循环中都会更新修正因子α(k);
计算出u(k)后将其格式化为一个字符串消息,并通过串口发送给PLC控制器。这个消息以"U"开头,后面跟着u(k)的值,保留两位小数。PLC接收到这个消息后,可以根据u(k)的值来控制液压系统(液压缸)的动作。在每个控制循环结束后模拟了一个控制周期的延迟,以模拟实际系统中的控制周期。
实施例二:本实施例在实施例一的技术方案基础上,进一步公开一个模糊规则库。步骤S101的模糊推理机使用一系列的IF-THEN(如果-那么)规则,但是这些规则均是被封装在模糊规则库中的。在本实施例中,模糊规则库中包括如下规则(Ri):
(规则1)如果壁厚偏差很小且施压力度很小,那么修正因子α(k)应为小。
原理:当壁厚偏差和施压力度都很小时,表明当前旋轮的位置控制已经相当准确,且施加的压力也较小。在这种情况下,系统只需要进行微调以保持其准确性,因此修正因子应设为小。
(规则2)如果壁厚偏差很小且施压力度适中,那么修正因子α(k)应为小。
原理:即便施压力度适中,但由于壁厚偏差非常小,说明位置控制仍然较为精确。为了避免因修正过度而引发新的问题,修正因子应保持较小。
(规则3)如果壁厚偏差很小且施压力度很大,那么修正因子α(k)应为中。
原理:在壁厚偏差较小的情况下,如果施压力度很大,可能会导致不必要的形变。因此,需要适当增加修正量来抵消因施压过大可能带来的影响,但仍要避免过度调整,所以修正因子设为中。
(规则4)如果壁厚偏差适中且施压力度很小,那么修正因子α(k)应为中。
原理:适中的壁厚偏差说明需要进行一定量的调整以达到更精确的控制。由于施压力度较小,可能不足以引起显著的形变,因此需要一个适中的修正量来确保调整的准确性。
(规则5)如果壁厚偏差适中且施压力度适中,那么修正因子α(k)应为中。
原理:在壁厚偏差和施压力度都适中的情况下,采用中等的修正量可以平稳且有效地进行位置调整,既不会过于激进也不会过于保守。
(规则6)如果壁厚偏差适中且施压力度很大,那么修正因子α(k)应为大。
原理:较大的施压力度可能引发较大的形变,因此需要一个较大的修正量来确保旋轮位置的准确性,防止因压力过大而导致的位置偏差。
(规则7)如果壁厚偏差很大且施压力度很小,那么修正因子α(k)应为大。
原理:在壁厚偏差很大的情况下,即使施压力度较小,也需要一个较大的修正量来迅速减小偏差,使旋轮位置尽快回归到正确轨道。
(规则8)如果壁厚偏差很大且施压力度适中,那么修正因子α(k)应为大。
原理:当壁厚偏差大且施压力度适中时,为了迅速纠正偏差,需要采用较大的修正量进行调整。
(规则9)如果壁厚偏差很大且施压力度很大,那么修正因子α(k)应为大或极大。
原理:在壁厚偏差和施压力度都非常大的极端情况下,需要非常大的修正量来快速纠正位置偏差。这种情况可能表明生产过程中出现了严重问题,甚至可能需要采取紧急措施来防止进一步的问题发生。
在本实施例中,用语“很小”、“很大”等是基于实施例一中的隶属度函数定义的。但是对于不同区间的划分,本实施例提供一个标准化的方法供参考,以“很小”、“极大”为例:
1)很小:使用一个左侧下降的隶属度函数来表示“很小”,例如一个降半梯形或降半岭形函数。x代表输入值(壁厚偏差或施压力度),a和b是定义“很小”范围的参数,则“很小”的隶属度函数μVS(x)可以表示为:
其中b<a,b是“很小”范围的下界,a是上界。当x小于等于a时,隶属度根据函数计算;当x大于a时,x完全不属于“很小”这个模糊集合。
2)“极大”可以用类似于“很大”的隶属度函数来表示,但是范围更窄,表示只有非常大的值才属于这个模糊集合。其隶属度函数μEL(x)表示为:
其中,g<f,g是“极大”范围的下界,f是上界。
进一步的,本实施例公开的模糊规则库的python执行程序如下:
import numpy as np
import skfuzzy as fuzz
from skfuzzy import control as ctrl
# 定义输入和输出的论域
wall_thickness_deviation = ctrl.Antecedent(np.arange(0, 101, 1), 'wall_thickness_deviation')
applied_pressure = ctrl.Antecedent(np.arange(0, 101, 1), 'applied_pressure')
correction_factor = ctrl.Consequent(np.arange(0, 101, 1), 'correction_factor')
# 为输入和输出定义模糊集及其隶属度函数
wall_thickness_deviation.automf(3, names=['small', 'medium', 'large'])
applied_pressure.automf(3, names=['small', 'medium', 'large'])
correction_factor['small'] = fuzz.trimf(correction_factor.universe,[0, 0, 50])
correction_factor['medium'] = fuzz.trimf(correction_factor.universe,[25, 50, 75])
correction_factor['large'] = fuzz.trimf(correction_factor.universe,[50, 100, 100])
# 定义模糊规则
rule1 = ctrl.Rule(wall_thickness_deviation['small']&applied_pressure['small'], correction_factor['small'])
rule2 = ctrl.Rule(wall_thickness_deviation['small']&applied_pressure['medium'], correction_factor['small'])
rule3 = ctrl.Rule(wall_thickness_deviation['small']&applied_pressure['large'], correction_factor['medium'])
rule4 = ctrl.Rule(wall_thickness_deviation['medium']&applied_pressure['small'], correction_factor['medium'])
rule5 = ctrl.Rule(wall_thickness_deviation['medium']&applied_pressure['medium'], correction_factor['medium'])
rule6 = ctrl.Rule(wall_thickness_deviation['medium']&applied_pressure['large'], correction_factor['large'])
rule7 = ctrl.Rule(wall_thickness_deviation['large']&applied_pressure['small'], correction_factor['large'])
rule8 = ctrl.Rule(wall_thickness_deviation['large']&applied_pressure['medium'], correction_factor['large'])
rule9 = ctrl.Rule(wall_thickness_deviation['large']&applied_pressure['large'], correction_factor['large'])
# 创建控制系统并添加规则
control_system = ctrl.ControlSystem([rule1, rule2, rule3, rule4,rule5, rule6, rule7, rule8, rule9])
simulator = ctrl.ControlSystemSimulation(control_system)
# 主程序(推理)
simulator.input['wall_thickness_deviation'] = 65 # 输入:适中的壁厚偏差
simulator.input['applied_pressure'] = 75 # 输入:较大的施压力度
simulator.compute()
print(simulator.output['correction_factor'])
上述程序中使用skfuzzy库(scipy.fuzzy或fuzzy-c-means的扩展)来建立模糊规则库,其原理在于:为壁厚偏差、施压力度和修正因子定义了论域(即可能的取值范围,使用0到100的整数范围)。然后为每个输入和输出定义了模糊集。使用automf方法自动创建了三个模糊集(小、中、大),并为修正因子手动定义了三个模糊集(小、中、大)的隶属度函数。根据提供的规则,使用ctrl.Rule创建了模糊规则。这些规则基于输入(壁厚偏差和施压力度)的模糊集来确定输出(修正因子)的模糊集。然后将所有规则添加到一个控制系统中,并创建一个模拟器来运行这个控制系统。
主程序示例性地演示了模拟器提供输入值(65的壁厚偏差和75的施压力度),并计算输出(修正因子)。这个输出是一个模糊集,它表示在给定输入下,修正因子可能取值的分布。
实施例三:请参阅图1,本实施例在实施例一的基础上,进一步公开其步骤S202中的SARSA算法及其ε-greedy策略的具体实施方式。其包括如下的步骤S2020~S2022。
在本实施例中,关于步骤S2020,与模糊逻辑控制结合:SARSA算法在选择实际执行的动作时,会考虑模糊逻辑控制输出的模糊值α(k)′和当前液压伺服系统的效率状态。这个过程可以表达为选择一个动作at,该动作是基于当前状态st和模糊值α(k)′的建议,以及SARSA算法中的值函数Q(st,a)。动作at选择使用ε-greedy策略:
其中,是一个小的正数,表示探索的概率。在实际应用中,模糊值α(k)′作为动作at选择的一个参考或权重。a则是修正因子α(k)的一个具体取值,它是智能体根据当前状态和环境反馈来选择的。值函数Q(st,a)的初始化表达式如下:
其中,符号表示“对于所有的”;S是状态空间,A是动作空间。在开始时,对于所有的状态-动作对,假设它们的预期回报是0,并随着算法的运行逐步学习和调整这些值。
需要指出的是,状态st包括当前收口效率Ecurrent、壁厚偏差实时值d和施压力度实时值f,是一个向量或数据结构。
需要指出的是,动作at,是智能体根据当前状态st所选择的一个行为或决策。在钢瓶收口机的控制系统中,动作at代表了对液压伺服系统的一个具体控制指令,如上一个时刻k-1下的步骤S3输出的电信号u(k-1);动作at的选择是基于当前状态st和值函数Q(st,a)的,目的是最大化长期的累积奖励。在ε-greedy策略下,大部分时候会选择具有最高Q值的动作(即当前认为最优的动作),但也有一定的概率ϵ随机选择一个动作以探索可能的更好选择。
更具体地说,在选择动作时,智能体采用ε-greedy策略,它平衡了探索与利用的关系。以的概率,智能体会选择当前状态下具有最高Q值的动作,即它认为能够带来最大长期累积奖励的动作。这样做是利用了智能体已经学习到的知识,以期获得最大的回报。然而为了避免陷入局部最优解,智能体还会以的概率随机选择一个动作。这种随机性使得智能体有机会探索那些在当前知识体系下可能不是最优,但实际上有可能带来更大回报的动作。通过这种方式,智能体能够不断地拓展其知识边界,发现更好的策略。
优选的,在实际应用中,被选择的动作at是上一个时刻k-1下的步骤S3输出的电信号u(k-1),它代表了修正因子α(k)的调整量。这个调整量随后被用于控制液压伺服系统的某些参数,如旋轮的施压力度等,以优化收口效率。通过这种方式,液压系统能够根据实时的加工条件和壁厚偏差情况,动态地调整旋轮的施压力度,从而实现自适应的智能控制。
在本实施例中,关于步骤S2021,执行动作并观察奖励:在钢瓶收口机的液压伺服位置控制系统中,步骤S2021是执行由SARSA算法选择的动作,并观察由此产生的奖励和新的系统状态。具体来说,当系统根据SARSA算法选定了一个动作at(即调整修正因子α(k))后,会立即执行这个动作。执行动作相当于步骤S3被激活,进而调整液压伺服系统及其施压力度,以适应当前的壁厚偏差情况。执行动作后,系统会观察并记录两个关键信息:新的奖励因子r′和新的液压伺服系统效率状态st+1。奖励因子r′是环境对执行动作的直接反馈(基于步骤S201的形式得出),用于评价该动作at(即调整修正因子α(k))的好坏(基于生产效率的评价)。
如果执行动作后,系统的效率提高、壁厚偏差减小或钢瓶质量得到提升,那么奖励因子r′将会是正面的;反之,如果动作导致系统性能下降或出现问题,则奖励因子r′将是负面的。新的状态st+1则反映了系统执行动作后的新情况,包括液压伺服系统的施压力度。
在本实施例中,关于步骤S2022,更新强化学习算法:在观察到新的奖励因子r′和新的状态st+1后,进入步骤S2022,即更新SARSA算法中的值函数Q(st,a)。值函数Q(st,a)在强化学习中扮演着核心角色,它估计了在给定状态s下执行动作a能够获得的长期累积奖励:
其中:η是学习率,是[0,1]之间的区间值,它控制了值函数更新的步长。学习率越大,每次更新时对值函数的调整幅度就越大,学习速度可能更快,但也可能导致学习过程不稳定;学习率越小,则更新幅度越小,学习过程更稳定,但可能需要更多的学习时间。因此η的赋值需要根据本领域技术人员发挥主观能动性进行主观赋值。
γ是折扣因子,是[0,1]之间的区间值,用于权衡未来奖励的重要性。折扣因子越接近1,表示系统越重视未来的奖励;折扣因子越接近0,则表示系统更关注当前的即时奖励。因此γ的赋值需要根据本领域技术人员发挥主观能动性进行主观赋值。
at+1是在新状态st+1下根据值函数和可能的ε-greedy策略选择的下一个动作。这个动作的选择过程与步骤S2020中描述的动作选择过程相似,旨在最大化长期的累积奖励。
Q(st,a)’是更新后的值函数,它将用于指导系统在未来做出更明智的决策。
进一步的,本实施例的python执行程序如下:
import numpy as np
# 调用状态空间和动作空间的离散值
num_states = 10 # 状态空间
num_actions = 5 # 动作空间
# 初始化值函数Q(s, a)
Q = np.zeros((num_states, num_actions))
# SARSA算法参数
learning_rate = 0.1 # 学习率η
discount_factor = 0.9 # 折扣因子γ
epsilon = 0.1 # ε-greedy策略中的ε
# 当前状态st和动作at
current_state = 0 # 示例初始状态
current_action = np.argmax(Q[current_state, :]) # 选择初始动作,这里简化为选择Q值最大的动作
# 环境反馈的函数,返回新状态和奖励
def step(current_state, current_action):
new_state = (current_state + 1) % num_states # 状态转移
reward = 1 if new_state == 0 else 0 # 奖励函数
return new_state, reward
# ε-greedy策略选择动作
def epsilon_greedy_policy(state, epsilon):
if np.random.rand()<epsilon:
return np.random.randint(num_actions) # 以ε的概率随机选择动作
else:
return np.argmax(Q[state, :]) # 否则选择Q值最大的动作
# SARSA更新过程
def sarsa_update(current_state, current_action, new_state, reward):
# 在新状态下根据ε-greedy策略选择下一个动作
next_action = epsilon_greedy_policy(new_state, epsilon)
# 更新值函数Q(s, a)
Q[current_state, current_action] += learning_rate * (reward +discount_factor * Q[new_state, next_action]- Q[current_state, current_action])
return next_action
# 一次SARSA学习过程
new_state, reward = step(current_state, current_action)
next_action = sarsa_update(current_state, current_action, new_state,reward)
# 更新当前状态和动作,为下一次迭代做准备
current_state = new_state
current_action = next_action
# 输出更新后的值函数Q(s, a)并形成Q值表
print("Updated Q-value function:")
print(Q)
在上述程序中,初始化值函数Q为一个全零矩阵,其大小由状态空间和动作空间的大小决定。还设置了SARSA算法的学习率、折扣因子和ε-greedy策略中的ε值。step函数模拟了环境对动作的反应,返回一个新状态和奖励。epsilon_greedy_policy函数实现了ε-greedy策略,以ε的概率随机选择一个动作,否则选择当前状态下Q值最大的动作。
sarsa_update函数执行SARSA算法的更新步骤。根据新状态、奖励和下一个动作来更新当前状态和动作的Q值。更新公式是SARSA算法的核心,它结合了即时奖励和未来奖励的估计值来调整Q值。
在一次SARSA学习过程的部分执行了一个动作,观察了环境的反馈,并使用SARSA更新规则更新了值函数。然后,我们更新当前状态和动作,为下一次迭代做准备。最后输出更新后的值函数Q,它现在包含了系统通过一次SARSA学习得到的新知识。在实际应用中,这个学习过程会反复进行,直到值函数收敛或达到预定的学习轮数。
试验例:
(一)试验目的:
本例旨在验证引入旋轮液压伺服位置控制系统的收口机在钢瓶加工过程中的优势,与传统控制方式(对照组)进行对比,评估新控制方法对钢瓶应力分布的影响。
(二)试验设备与方法:
2.1实验组设备:
自动旋压TH12001-40R收口机,配备旋轮液压伺服位置控制系统。
旋轮液压伺服位置控制系统包括处理器、与处理器连接的存储器,存储器中存储有程序指令,程序指令被处理器执行时,使处理器执行如上述所述的旋轮液压伺服位置控制方法(S1~S3),当生成所述修正因子α(k)后,由PLC控制器读取并对自动旋压TH12001-40R收口机的旋轮液压伺服系统进行控制。
液压系统执行施压模拟通过Autodesk Inventor装配环境进行。
使用西门子S7-200 CPU 226型PLC控制器,执行PID控制器算法及修正因子α(k)。
2.2对照组设备:
同型号自动旋压TH12001-40R收口机,采用常规PLC时序图编程控制。
2.3模拟环境:
使用Autodesk Inventor的装配环境模拟液压系统执行过程。
利用Autodesk Inventor的有限元分析模块对应力进行仿真。
通过西门子S7-200 CPU 226型PLC与Autodesk Inventor建立通讯。
2.4试验材料:
直径为500mm、高2000mm的347不锈钢钢瓶,壁厚15mm,纵向突出部直径为80mm、厚度为28mm。其余参数如表1所示;
表1.材质参数表
(三)试验内容与步骤:
3.1准备阶段:
设置实验组和对照组的收口机参数。
在Autodesk Inventor中建立钢瓶模型,并设置材料属性。
3.2执行阶段:
实验组:通过PLC控制器的PID指令功能块执行旋轮液压伺服位置控制方法,并应用修正因子α(k)。
对照组:按照常规的PLC时序图编程控制收口机运行。
在模拟环境中对两组收口机进行加工模拟,直至完成钢瓶的加工。
3.3分析阶段:
使用Autodesk Inventor的有限元分析模块对加工后的钢瓶进行应力仿真分析。
对比实验组和对照组钢瓶的总体应力、着地部位应力及过渡段部位应力。
3.3.1着地部位设定:
确定钢瓶着地部位的具体位置,即钢瓶底部与地面接触的区域。
对该区域施加垂直向下的压力,模拟钢瓶放置时的受力情况。
设定边界条件,限制钢瓶底部的位移。
3.3.2过渡段部位设定:
确定钢瓶过渡段的具体位。在过渡段部位施加相应的刚体约束条件,以模拟实际加工过程中的受力情况。
3.3.3施压参数:
3.3.4实验组与对照组共同参数:
模拟钢瓶内压:设定为15MPa,以模拟钢瓶正常工作时的内部压力。
模拟表面应力:55Mpa;
模拟内部应力:12~15Mp;
设定允许抗拉强度:依据GB713-2014的范围设定;
(四)试验结果:
4.1总体应力对照:
实验组钢瓶的总体应力分布明显优于对照组,显示出更均匀的应力分布和更低的应力集中现象。如图4所示,其中(a)、(c)是对照组,(b)、(d)是实验组。
4.2着地部位应力对照:
在钢瓶的着地部位,实验组的应力明显低于对照组,表明新控制方法有效降低了该区域的应力集中。如图5所示,其中(a)是对照组,(b)是实验组。需要指出的是,图5的(b)部分中,其壁结构的应力是因为在软件中将该部分设为了固定点以便进行模拟,且该部分的结构为了清晰化展示,所以被半剖开,因此在实际中这部分的应力点并不会存在。
4.3过渡段部位应力对照:
在钢瓶的过渡段部位,实验组的应力分布同样优于对照组,显示出相对较为平滑的过渡和更低的应力峰值。如图6所示,其中(a)是对照组,(b)是实验组。
注:“着地部位”、“过渡段部位”可结合图2共同参阅。
五、结论:
本例验证了旋轮液压伺服位置控制方法在钢瓶收口机加工过程中的有效性。通过引入该控制系统,实验组钢瓶在总体应力、着地部位应力和过渡段部位应力方面均表现出明显优于传统控制方式的对照组。这一结果证明了新控制方法在提升钢瓶加工质量和降低应力集中方面的显著效果,为钢瓶制造行业的工艺改进提供了有力支持。
以上所有实施例仅表达了本发明的相关实际应用的实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
对于本领域技术人员而言,还可以进一步意识到结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (10)

1.钢瓶收口机用旋轮液压伺服位置控制方法,其特征在于,执行如下步骤:
S1,读取模糊逻辑控制系统:选择壁厚偏差Δw和施压力度F作为模糊逻辑控制的输入变量;读取模糊集合和模糊规则推断出模糊值α(k)’;
S2,执行强化学习算法:读取设定的状态空间和动作空间,然后通过奖励函数使收口效率最大化,将所述模糊值α(k)’视为所述强化学习算法的一个动作,所述强化学习算法动态的输出修正因子α(k),并观察执行该动作后获得的奖励;
S3,执行PID控制器:引入离散化的PID控制器控制液压伺服系统,并基于得到的所述修正因子α(k)对所述液压伺服系统的电信号进行动态缩放处理。
2.根据权利要求1所述的伺服位置控制方法,其特征在于:在所述S1中,所述壁厚偏差Δw和施压力度F均有所述模糊集合,所述模糊集合包括“小S”、“中M”和“大L”三种级别,每个所述模糊集合均由隶属度函数进行指定。
3.根据权利要求1所述的伺服位置控制方法,其特征在于:在所述S1中,所述模糊规则是由模糊规则库建立的,所述推断是通过模糊推理机执行的;二者协同作用,根据输入的所述壁厚偏差Δw和所述施压力度F的实时值,推理出修正因子α(k)的模糊值α(k)’的模糊集合FS;其中对于每个规则Ri
其中,μAiw)、μBi(F)和μCi(α(k)’)分别是输入Δw、F和输出α(k)’对应模糊集合的隶属度函数;
所述模糊推理机根据所有所述模糊规则的激活程度,通过加权平均聚合方法来输出所述模糊值α(k)’的模糊集合FS。
4.根据权利要求3所述的伺服位置控制方法,其特征在于:在所述S1中,将所述模糊集合FS执行解模糊化,得到所述模糊值α(k)’:
其中,μF(x)表示所述模糊集合FS的隶属度函数,a和b表示模糊集合的论域范围。
5.根据权利要求1所述的伺服位置控制方法,其特征在于:在所述S2中,所述状态空间和所述动作空间是通过如下步骤实现的:
S200,状态空间S:包括壁厚偏差实时值d和施压力度实时值f:
动作空间A:定义为所述修正因子α(k)的取值范围:
A = {α1(k), α2(k),...,αn(k)};
其中,D是壁厚偏差所有的取值范围,F是施压力度所有的取值集合;αi(k)是所述修正因子α(k)在第k个时刻下取的第i个离散值,n是离散值的总数。
6.根据权利要求5所述的伺服位置控制方法,其特征在于:在所述S2中,所述奖励函数是通过如下步骤实现的:
S201,执行奖励因子r为正负奖励机制:
其中,ΔE是收口效率的变化量。
7.根据权利要求5所述的伺服位置控制方法,其特征在于:在所述S2中,所述强化学习算法是SARSA算法;所述SARSA算法执行在所述S2中的所述引入、所述动作和所述观察,是分别通过如下三个步骤实现的:
S2020,与模糊逻辑控制结合:基于ε-greedy策略,选择一个基于当前状态st和所述模糊值α(k)′,以及SARSA算法中的值函数Q(st,a)得出的动作at
其中,是探索的概率;模糊值α(k)′作为所述动作at选择的一个权重;a是所述修正因子α(k)的一个具体取值;
S2021,执行动作并观察奖励:根据选择的所述动作at调整所述修正因子α(k),在执行选定的所述动作at后,观察新奖励因子r′和新的液压伺服系统效率状态st+1
S2022,更新强化学习算法:根据所述新奖励因子r′和所述状态st+1,更新所述值函数Q(st,a):
其中:η是学习率,控制更新的步长;γ是折扣因子;at+1是在新状态st+1下根据值函数和所述ε-greedy策略选择的下一个动作;Q(st,a)’是更新后的值函数。
8.根据权利要求7所述的伺服位置控制方法,其特征在于:在所述S2中,所述输出是通过如下步骤实现的:
S203,获取修正因子α(k):
9.根据权利要求1~8任意一项所述的伺服位置控制方法,其特征在于:在所述S3中,所述离散化的PID控制器为:
其中,u(k)是在采样时刻k的控制器输出;e(k)是在采样时刻k的偏差;e(k-1)是在采样时刻k-1的偏差;e(j)表示在采样时刻j的偏差值;r(j)是在采样时刻j的设定值,y(j)是在同一采样时刻j的实际值;
Kp、Ki和Kd分别是比例、积分和微分控制器的增益。
10.钢瓶收口机用旋轮液压伺服位置控制系统,其特征在于:所述系统包括处理器、与所述处理器连接的存储器,所述存储器中存储有程序指令,所述程序指令被所述处理器执行时,使所述处理器执行如权利要求1-9中任意一项所述的伺服位置控制方法,生成所述修正因子α(k)后,由PLC控制器读取并对旋轮液压伺服系统进行控制。
CN202410874913.XA 2024-07-02 2024-07-02 钢瓶收口机用旋轮液压伺服位置控制方法及系统 Active CN118409560B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410874913.XA CN118409560B (zh) 2024-07-02 2024-07-02 钢瓶收口机用旋轮液压伺服位置控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410874913.XA CN118409560B (zh) 2024-07-02 2024-07-02 钢瓶收口机用旋轮液压伺服位置控制方法及系统

Publications (2)

Publication Number Publication Date
CN118409560A CN118409560A (zh) 2024-07-30
CN118409560B true CN118409560B (zh) 2024-08-23

Family

ID=91996450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410874913.XA Active CN118409560B (zh) 2024-07-02 2024-07-02 钢瓶收口机用旋轮液压伺服位置控制方法及系统

Country Status (1)

Country Link
CN (1) CN118409560B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007593A (zh) * 2019-02-01 2019-07-12 山东理工大学 秸秆还田机粉碎厚度模糊自适应调节系统的调节方法
CN116594288A (zh) * 2023-05-17 2023-08-15 兰州理工大学 一种基于天牛须模糊pid的控制方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103291689B (zh) * 2013-06-13 2015-09-16 杭州励贝电液科技有限公司 基于液压试验台的被试阀的负载压力的控制方法
JP6457472B2 (ja) * 2016-12-14 2019-01-23 ファナック株式会社 制御システム及び機械学習装置
CN117826604A (zh) * 2024-01-04 2024-04-05 吉林大学 一种基于自适应模糊pid的液压可控震源控制方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007593A (zh) * 2019-02-01 2019-07-12 山东理工大学 秸秆还田机粉碎厚度模糊自适应调节系统的调节方法
CN116594288A (zh) * 2023-05-17 2023-08-15 兰州理工大学 一种基于天牛须模糊pid的控制方法及系统

Also Published As

Publication number Publication date
CN118409560A (zh) 2024-07-30

Similar Documents

Publication Publication Date Title
Moreira et al. Supervision controller for real-time surface quality assurance in CNC machining using artificial intelligence
CN102494336B (zh) 一种循环流化床锅炉燃烧过程多变量控制方法
CN106681146A (zh) 基于bp神经网络和遗传算法的高炉多目标优化控制算法
CN113093526B (zh) 一种基于强化学习的无超调pid控制器参数整定方法
CN109447346A (zh) 基于灰色预测与神经网络组合模型转炉氧耗量预测方法
CN117369244B (zh) 一种基于焊接机器人焊枪位置控制优化方法
CN105955026B (zh) 模糊pid控制方法和装置及系统
Zhou et al. Improved incremental RVFL with compact structure and its application in quality prediction of blast furnace
CN110058569A (zh) 一种基于优化模糊神经网络的数控机床热误差建模方法
CN118466224B (zh) 用于电推进系统的流量控制方法及系统
CN118409560B (zh) 钢瓶收口机用旋轮液压伺服位置控制方法及系统
CN112012875B (zh) 一种水轮机调节系统pid控制参数的优化方法
CN117105502A (zh) 基于机器学习的自适应污泥处理控制系统及控制方法
CN115755589A (zh) 一种基于遗传算法在反应釜模糊控制系统的优化方法
CN106079331A (zh) 一种注塑机电液比例控制系统及其设计方法
CN113009832A (zh) 一种基于数据驱动的液态介质熔铝炉模型预测控制方法
CN116860027A (zh) 一种数字能源鼓风站的压力控制系统及其方法
CN118276433B (zh) 一种用于配药机的药剂流量优化控制方法
CN115849020A (zh) 一种基于模糊rbf神经网络的烟丝风送速度控制方法
JP2023520154A (ja) 機械加工のプロセスパラメータを生成するための歯科機械加工システム
CN117270403B (zh) 一种龙门式制坨机的优化控制方法
Wang et al. Matching technology of reducer bearing based on genetic algorithm
CN114872040B (zh) 基于小脑预测与修正的肌肉骨骼机器人控制方法及装置
CN114167717B (zh) 一种基于改进pso-模糊pid的火电机组deh转速控制方法
CN113637819A (zh) 一种基于深度强化学习的高炉布料方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant