自抗扰控制器的simulink建模与仿真_姜萍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根据扩张状态观测器算法用 sim ul i nk 中的基本模 块对其进行建模, 模型如图 2(a) 所示。建模过程中, 需要
单方便。
将算法中的非线性函数 fal ( x, α , d) 编写成 M 文件, 再
通过 MATLAB FUNCTION[9-10]模块调用该 M 文件来完 成对模型的建立。然后选择所有模块创建子系统。 对创建的子系统模块, 如果要进行命名该子系统模 块、对子系统模块进行描述和说明、设定输入数据窗口 等操作, 则需要对其进行封装处理。扩张状态观测器子 系统封装步骤如下 : (1) 创建封装对话框提示 为了创建这个子系统的封装 , 选择子系统模块 , 并 从 E d i t 菜单中选择 E d i t M a s k 命令 , 主要使用 M a s k editot 对话框中的 Parameter 选项页创建被封装子系统 的对话框。 在 Parameter 选项页增加扩张状态观测器的五个参 数 h,bt01,bt02,bt03 和 b0, 每个参数都定义为 edit 控制, 这样用户就可以在对话框的编辑区域内输入数值 , 这些 数值会存储在封装工作区的变量中 , 被封装模块只能够 在封装工作区内访问变量。设置完成后, 再双击该子系 统模块时打开的是最新构建的对话框, 可直接在对话框 内为扩张状态观测器的参数赋值。 (2) 创建模块说明和帮助文本 封装类型、模块说明和帮助文本被定义在 D oc u mentation 选项页内, 可通过 Mask type,Mask discription 和 Mask help 编辑框完成对模块封装类型、描述信息 和帮助文本的设置。 (3) 创建模块图标 通过上面两步已经为扩张状态观测器子系统创建 了一个自定义对话框, 但是子系统模块仍然显示的是通 常的 simulink 子系统图标, 很不直观。Simulink 提供了 一组可以显示文本、传递函数、一条曲线或多条曲线的 绘制命令, 用户可以在 Icon 选项页 Drawing commands 编辑框中输入 MATLAB 语法风格的绘制命令来绘制自 定义的模块图标。例如在 Drawing commands 编辑框中 输入 disp( ‘ESO ’ ), 则封装子系统的图标将显示为 ESO (Extended State Observer) 。 以上设置完成后, 子系统封装完成。封装后的子系 统如图 2(b) 所示。输入变量 u 和 e 分别为系统的控制输 入量和误差信号 , 输出变量 z1 、z2 和 z3 分别为系统状 态的估计值及被扩张状态的实时作用量的估计值。 双击子系统模块 , 弹出如图 2 ( c ) 所示的参数设置 窗口 , 在这个窗口中可直接改变系统的参数值 , 操作简
[ 8]
图1
二阶系统自抗扰控制器的基本结构
2.2 自抗扰控制器的算法
自抗扰控制器算法中非线性函数的形式有多种, 因 此自抗绕控制器算法并不唯一。典型的二阶自抗扰控 制器算法如下 :
, 并显示在库浏览器中。 封装就是把具有一定功能的子系统封装成一个模
3.1 子系统封装过程
块, 而且该模块与 simulink 中的固有模块一样有自己的 图标和参数对话框 , 当用户双击这个模块时可以打开对 话框 , 并设置参数值。 以典型二阶系统自抗扰控制器中扩张状态观测器 这一部分为例 , 详细介绍一下子系统的封装过程。以下 (1) 是扩张状态观测器部分的算法 :
2.1 自抗扰控制器的结构及原理
《 自动化技术与应用 》2 0 1 0 年第 2 9 卷第 2 期
控制理论与应用
Control Theory and Applications
PID 误差反馈控制的核心理念。自抗扰控制器由跟踪微 分器 、扩张状态观测器 和非线性状态误差反馈律 三 部分组成。各个组成部分的作用分别为 : 跟踪微分器是 为系统输入安排过渡过程 , 得到光滑的输入信号以及输 入信号的微分信号 ; 扩张状态观测器是实时跟踪系统状 态, 不仅能得到系统的状态信息, 还能获得对象模型中内 扰和外扰的实时作用量。将这个实时作用量补偿到控制 器中去, 可以使原来的非线性系统变成线性的积分器串 联型控制系统。这个动态估计补偿总和扰动的技术是整 个自抗扰控制技术中最关键、最核心的技术 ; 非线性状 态误差反馈律是把跟踪微分器产生的跟踪信号和微分信 号与扩张状态观测器得到的系统的状态估计通过非线性 函数进行适当组合, 作为被控对象的控制量。 以二阶系统为例, 下图为典型自抗扰控制器的结构 图 , 其中点线所框的部分为自抗扰控制器。
(3)
这 里 的 r0 , β 01 , β 02 , β 03 , c, r , h1 , b0 是 控 制 器 的 参 数, 其中 r0 是根据过渡过程快慢的需要和系统所能承受 的能力决定的 , 只影响系统的跟踪精度和过渡过程时 间 , 对系统的输出没有影响 , 因此调整好之后就可以固 定下来 ; 参 β 01 β 02 , β 03 是由系统所用采样步长来决定 的 ; 这样 , 系统中真正需要调整的参数为控制量增益 r , 阻尼系数 c , 精度因子 h1 和补偿因子 b0 四个。
用最广泛的工业控制器。然而, 科学技术的发展对控制 精度和速度的要求 , 以及对环境变化的适应能力的要求 越来越高 , 经典 P ID 慢慢显露出其缺点。韩京清研究 员由自抗扰控制技术所构建的自抗扰控制器 [ 1 - 3 ] , 对经 典 PID 控制器的缺陷进行了改进, 具有算法简单、系统 响应快、适应范围广等特点 , 现已应用于航天、航空、 电力、化工等领域。 使用 simulink 基本可以对任何物理系统进行建模, 但随着系统越来越复杂, 用基本操作创建的 simulink 模
控制理论与应用
Control Theory and Applications
《自动化技术与应用》2 0 1 0 年第 2 9 卷第 2 期
自抗扰控制器的 si muli nk 建模与仿真 *
姜 萍, 郝靖宇, 宗晓萍, 王培光
( 河北大学 电子信息工程学院 控制理论与控制工程, 河北 保定 071002)
其中两个非线性函数 fal( x,α, d) 和 fhan ( x 1, x 2 , r , h )
2 | Techniques of Automation & Applications
控制理论与应用
Control Theory and Applications
《自动化技术与应用》2 0 1 0 年第 2 9 卷第 2 期
* 基金项目: 河北省教育厅科研计划项目( 编号 Z 2 0 0 8 4 1 4 ) 收稿日期: 2 0 0 9 - 1 0 - 1 6
2
自抗扰控制器的基本原理
自抗扰控制器是从 P I D 控制器演变过来 , 采取了
Techniques of Automation & Applications | 1
e = z 1 − y fe = fal ( e , 0 . 5 , h ) fe 1 = fal ( e , 0 . 25 , h ) z = z 1 + h ( z 2 − β 01 e ) (4) 1 z 2 = z 2 + h ( z 3 − β 02 fe + b 0 u ) z 3 = z 3 + h ( − β 03 fe 1 )
fh = fhan(v1 − v0 , v2 , r0 , h) v = v + hv 2 1 1 v2 = v2 + hfh e = z1 − y, fe = fal(e,0.5, h), fe1 = fal(e,0.25, h) z1 = z1 + h( z2 − β01e) z2 = z2 + h( z3 − β02 fe + b0u) z3 = z3 + h(−β03 fe1 ) e1 = v1 − z1, e2 = v2 − z2 u = − fhan(e , ce , r, h ) 1 2 1 0 u = (u0 − z3 ) b0
1
引言
PID 控制器在工业过程控制中占有主导地位, 是应
型变得越来越庞大而不易读懂。在 sim ulin k 环境下用 其固有模块建立的自抗扰控制器模型十分复杂 , 因此 , 使用创建子系统的方法并采用子系统封装技术[4]把自抗 扰控制器的模型分割成跟踪微分器、扩张状态观测器 和非线性状态误差反馈律三个小的模型 , 再根据参数之 间的关系组合成自抗扰控制器 , 这样以使得整个模型更 加简捷, 可读性更高。用户还可以在 simulink 模块库中 建立自己的库 , 把常用的子系统模块加入到该库中 , 这 些子系统可以反复调用 , 节省了建模时间。
3 自抗扰控制器的 simulink 建模
根据自抗扰控制器的算法 , 在 s i m u l i n k 环境下建 立其仿真模型。Simulink 中的 Edit Mask 命令提供了 封装子系统时编辑模块的所有操作设置值 , 它可以对 任何子系统进行封装。封装后的子系统可以用一个简 单的参数框替换子系统的参数框及内容 , 还可以把封 装的子系统放置在库中 , 从而创建一个用户自定义库
摘 要: 通过对自抗扰控制器的基本原理及结构的研究, 具体讨论了自抗扰控制器用 simulink 建模的方法、子系统封装过程和创建 用户自定义库的方法。采用 simulink 模块建立的系统模型,不仅可以随时改变系统参数并可以观察参数变化后的仿真结果或 将结果存储于空间中, 使得仿真过程变得简单而有效, 而且不需要花费较多的时间编程。最后通过仿真实例, 证明了该方法的 实用性和有效性。 关键词: 自抗扰控制器;sim ulink; 子系统封装 ; 自定义库 中图分类号 :TP391 文献标识码 :A 文章编号:1003-7241(2010)02-0001-05
Abstract: The way of modeling and simulation of Active Disturbances Rejection Controller based on Simulink the process of masking subsystem and building user custom library is discussed through studying the basic principle and structure of Active Disturbances Rejection Controller( ADRC ). Masking ADRC based on Simulink and building user custom library can reduce the programming workload, and simplify complex blocks group. The simulation example proves that the way is practical and validity. Key words: Active Disturbances Rejection Controller; simulink; masking subsystem; user custom library
[5] [6] [7]ห้องสมุดไป่ตู้
的定义分别为 :
1−α x / d , x ≤ d fal ( x , α , d ) = α x sign ( x ), x > d
(2 )
和
d = rh 2 , a 0 = hx2 , y = x1 + a0 a1 = d (d + 8 y ) a 2 = a 0 + sign( y ) (a1 − d ) 2 s y = ( sign( y + d ) − sign( y − d )) 2 a = (a + y − a )s + a y 0 2 2 s a = ( sign(a + d ) − sign(a − d )) 2 fhan = −r (a d − sign(a))s a − rsign(a)
Modeling and Simulation of Active Disturbances Rejection Controller Based on Simulink
JIANG Ping, HAO Jing-yu, ZONG Xiao-ping, WANG Pei-guang
( Dept of Control Theory and Control Engineering, College of Electronic and Informational Engineering, Hebei University, Baoding 071002 China )