目录索引

  • 1.符号说明与结构框图
  • 2.最小拍控制系统构造原则
    • 2.1数字控制器D(z)的构造
  • 3.简单控制对象的最小拍控制器设计
    • 3.1阶跃输入
    • 3.2速度输入

1.符号说明与结构框图

  1. y(k)——系统响应输出的离散值
  2. u(k)——数字PID控制输出的离散值
  3. r(k)——期望输出的离散值(事先已知),在本例中为常数(即阶跃输入)
  4. e(k)——e(k)=r(k)-y(k),为期望值-实际值,是单位负反馈的误差比较信号
  5. D(z)——数字控制器的脉冲传递函数
  6. G(s)——被控对象的传递函数,G(z)——广义被控对象的脉冲传递函数
  7. Φ(z)=C(z)/R(z)\Phi(z)=C(z)/R(z)Φ(z)=C(z)/R(z)——系统的闭环传递函数,Φe(z)=E(z)/C(z)\Phi_e(z)=E(z)/C(z)Φe​(z)=E(z)/C(z)——系统的闭环误差传递函数
    系统的结构框图如下:

2.最小拍控制系统构造原则

最少拍系统是指系统对某些典型的输入(阶跃、速度、加速度输入)具有最快的响应特性。具体来说,最少拍系统应满足对典型输入在有限个采样周期内结束过渡过程且稳态误差为零。研究误差序列e(k)e(k)e(k)的特性之前,不妨通过在Z域研究Φe(z)\Phi_e(z)Φe​(z)的表达式来得出使得e(k)e(k)e(k)最快收敛至0的条件。
最小拍控制系统的设计原理是使得系统的闭环误差传递函数Φe(z)=a1z−1+a2z−2+...+anz−n\Phi_e(z)=a_1z^{-1}+a_2z^{-2}+...+a_nz^{-n}Φe​(z)=a1​z−1+a2​z−2+...+an​z−n具有最简单的表达式。因为z−kz^{-k}z−k的反Z变换为δ(t−k)\delta(t-k)δ(t−k),因此e(k)=a1δ(t−T)+a2δ(t−2T)+...+anδ(t−nT)(an≠0)e(k)=a_1\delta(t-T)+a_2\delta(t-2T)+...+a_n\delta(t-nT)(a_n≠0)e(k)=a1​δ(t−T)+a2​δ(t−2T)+...+an​δ(t−nT)(an​̸​=0),即e(1)=a1,e(2)=a2,...,e(n)=ane(1)=a_1,e(2)=a_2,...,e(n)=a_ne(1)=a1​,e(2)=a2​,...,e(n)=an​n的值是有限的说明系统能在有限拍内达到最小,n的值越小,Φe(z)\Phi_e(z)Φe​(z)的表达式越简单,能达到稳态值所需的拍数(周期数)越少。而我们的目的就是设计控制器D(z)使其达到稳态误差e(k)(甚至是e(t))的要求。
设计步骤大体如下:

  1. 根据被控对象的数学模型求出广义被控对象的脉冲传递函数G(z)
  2. 根据输入信号的类型,确定模型Φe(z)=1−Φ(z)\Phi_e(z)=1-\Phi(z)Φe​(z)=1−Φ(z),其对应关系如下表:
典型输入 Z域表达式 Φe(z)的形式\Phi_e(z)的形式Φe​(z)的形式
u(t)u(t)u(t) 11−z−1\frac{1}{1-z^{-1}}1−z−11​ (1−z−1)F(z)(1-z^{-1})F(z)(1−z−1)F(z)
tu(t)tu(t)tu(t) Tz−1(1−z−1)2\frac{Tz^{-1}}{{(1-z^{-1})}^2}(1−z−1)2Tz−1​ (1−z−1)2F(z){(1-z^{-1})}^2F(z)(1−z−1)2F(z)
12t2u(t)\frac{1}{2}t^2u(t)21​t2u(t) T2z−1(1+z−1)2(1−z−1)3\frac{T^2z^{-1}(1+z^{-1})}{2{(1-z^{-1})}^3}2(1−z−1)3T2z−1(1+z−1)​ (1−z−1)3F(z){(1-z^{-1})}^3F(z)(1−z−1)3F(z)

当被控对象不含有不稳定零极点,不含有纯滞后环节z−1z^{-1}z−1时,F(z)=1,此时的被控对象也称为简单对象。
满足以上条件的任意一个,被控对象称为复杂对象,当G(s)中含有不稳定零点或纯滞后环节时,不能使用D(z)或者Φe(z)\Phi_e(z)Φe​(z)中增加因式消除,只能保留至Φ(z)\Phi(z)Φ(z),当G(s)中含有不稳定极点时,在Φe(z)\Phi_e(z)Φe​(z)中增加对应的零点抵消Φ(z)\Phi(z)Φ(z)中的不稳定极点。
3. 求控制器的脉冲传递函数D(z),求取原理如下:
由于C(z)=E(z)D(z)G(z)C(z)=E(z)D(z)G(z)C(z)=E(z)D(z)G(z),所以C(z)R(z)=D(z)G(z)E(z)R(z)\frac{C(z)}{R(z)}=D(z)G(z)\frac{E(z)}{R(z)}R(z)C(z)​=D(z)G(z)R(z)E(z)​,即Φe(z)=D(z)G(z)Φe(z)\Phi_e(z)=D(z)G(z)\Phi_e(z)Φe​(z)=D(z)G(z)Φe​(z)在单位负反馈系统中Φe(z)=1−Φ(z)\Phi_e(z)=1-\Phi(z)Φe​(z)=1−Φ(z),因此D(z)=Φ(z)G(z)(1−Φ(z))D(z)=\frac{\Phi(z)}{G(z)(1-\Phi(z))}D(z)=G(z)(1−Φ(z))Φ(z)​
4. 根据D(z)生成控制算法(或者脉冲传递函数)求出输出序列,画出系统的响应曲线。

2.1数字控制器D(z)的构造

我们已经知道D(z)=Φ(z)G(z)(1−Φ(z))D(z)=\frac{\Phi(z)}{G(z)(1-\Phi(z))}D(z)=G(z)(1−Φ(z))Φ(z)​,因此欲求出D(z)只需知道Φ(z)\Phi(z)Φ(z)或Φe(z)\Phi_e(z)Φe​(z)即可。
Φ(z)=(a0+a1z−1+a2z−2+...+anz−n)(1−z1z−1)(1−z2z−1)...(1−zkz−1)z−m\Phi(z)=(a_0+a_1z^{-1}+a_2z^{-2}+...+a_nz^{-n})(1-z_1z^{-1})(1-z_2z^{-1})...(1-z_kz^{-1})z^{-m}Φ(z)=(a0​+a1​z−1+a2​z−2+...+an​z−n)(1−z1​z−1)(1−z2​z−1)...(1−zk​z−1)z−m
其中z1,z2,...,zkz_1,z_2,...,z_kz1​,z2​,...,zk​为Φ(z)\Phi(z)Φ(z)保留的的广义被控对象G(z)不稳定零点,z−mz^{-m}z−m是闭环传递函数Φ(z)\Phi(z)Φ(z)保留的,在G(z)里面出现的纯滞后环节z−mz^{-m}z−m,而输入形式决定了前面多项式a0+a1z−1+a2z−2+...+anz−na_0+a_1z^{-1}+a_2z^{-2}+...+a_nz^{-n}a0​+a1​z−1+a2​z−2+...+an​z−n的阶数n,阶数n和Φe(z)=(1−z−1)pF(z)\Phi_e(z)={(1-z^{-1})}^pF(z)Φe​(z)=(1−z−1)pF(z)中的p是一致的,即n=p,系数a0、a1、...、ana_0、a_1、...、a_na0​、a1​、...、an​依赖于条件Φe(z)=(1−z−1)pF(z)\Phi_e(z)={(1-z^{-1})}^pF(z)Φe​(z)=(1−z−1)pF(z)而定,Φe(z)\Phi_e(z)Φe​(z)中含有p重零点z=1,因此它的0阶导到p-1阶导在z=1处的值都应该是0,即

{Φe(z)∣z=1=0dΦe(z)dz∣z=1=0d2Φe(z)dz2∣z=1=0...dnΦe(z)dzn∣z=1=0\begin{cases} \left. \Phi_e(z) \right| _{z=1}=0 \\ \left. \frac{{\rm d}\Phi_e(z)}{{\rm d}z} \right| _{z=1}=0 \\ \left. \frac{{\rm d^2}\Phi_e(z)}{{\rm d}z^2} \right| _{z=1}=0 \\ ...\\ \left. \frac{{\rm d^n}\Phi_e(z)}{{\rm d}z^n} \right| _{z=1}=0 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧​Φe​(z)∣z=1​=0dzdΦe​(z)​∣∣∣​z=1​=0dz2d2Φe​(z)​∣∣∣​z=1​=0...dzndnΦe​(z)​∣∣∣​z=1​=0​
根据上面的方程组可以解出Φe(z)\Phi_e(z)Φe​(z)中的未知参数a0、a1、...、ana_0、a_1、...、a_na0​、a1​、...、an​,因此Φe(z)\Phi_e(z)Φe​(z)已经确定,D(z)即可求得。

3.简单控制对象的最小拍控制器设计

3.1阶跃输入

假设被控对象的传递函数为G(s)=9.40.017s+1G(s)=\frac{9.4}{0.017s+1}G(s)=0.017s+19.4​求阶跃输入下的最小拍控制器D(z)的表达式。在Simulink的仿真中,我们设定了Z变换的采样频率是0.005s,(其他地方默认为-1,即服从系统的采样频率)

先求取广义被控对象的传递函数
G(z)=Z[1−e−Tss9.40.017s+1]=(1−z−1)Z[(9.4s(0.017s+1))]=2.394z−11−0.745z−1G(z) =Z[\frac{1-e^{-Ts}}{s}\frac{9.4}{0.017s+1}] =(1-z^{-1})Z[(\frac{9.4}{s(0.017s+1)})] =\frac{2.394z^{-1}}{1-0.745z^{-1}} G(z)=Z[s1−e−Ts​0.017s+19.4​]=(1−z−1)Z[(s(0.017s+1)9.4​)]=1−0.745z−12.394z−1​
没有不稳定零极点和纯滞后环节,因此选取Φe(z)=(1−z−1),Φ(z)=z−1\Phi_e(z)=(1-z^{-1}),\Phi(z)=z^{-1}Φe​(z)=(1−z−1),Φ(z)=z−1
此时D(z)=Φ(z)G(z)(1−Φ(z))=0.4174z−0.7452z−1D(z)=\frac{\Phi(z)}{G(z)(1-\Phi(z))}=0.4174\frac{z-0.7452}{z-1}D(z)=G(z)(1−Φ(z))Φ(z)​=0.4174z−1z−0.7452​
我们搭建好Simulink仿真电路如下:

按照我们的理论,系统的应该在控制算法作用的第一拍(0.005s处)时达到0稳态误差,仿真曲线如下图(给定值为1500):

可以看到验证结果与我们理论推导相符。注意我们这里示波器取的采样周期为-1(inherited),说明是Matlab内置的采样时间,会比我们定的Ts=1s要短的多,非常接近于连续系统的仿真结果。可以看出响应曲线在上升段有很微小的纹波抖动,在进入稳态值后,纹波消失。产生纹波的原因在于Y(z)Y(z)Y(z)

3.2速度输入

假设被控对象的传递函数为G(s)=2s(s+1)G(s)=\frac{2}{s(s+1)}G(s)=s(s+1)2​,求系统在采样时间1s,输入信号为单位速度输入的条件下的最小拍控制器D(z)。系统的结构框图如下图所示:

下面我们借助Matlab的命令轻松地解决这个问题。首先按照第二部分最小拍控制系统的设计原则的步骤,我们应该求出带零阶保持器的广义被控对象的Z域脉冲传递函数G(z)=Z[1−e−Tss⋅G(s)]G(z)=Z[\frac{1-e^{-Ts}{s}\cdot G(s)}]G(z)=Z[]1−e−Tss⋅G(s)​,在Matlab工作区输入代码并获得输出的脉冲传递函数:

>> syms s;%定义符号变量s
>> s=tf('s');%s定义为tf(transfer function传递函数)类型的结构体
>> Gs=2/(s*(s+1));
>> Ts=1;
>> Gz=c2d(Gs,Ts,'zoh')%带零阶保持器(ZOH)的离散化,采样时间为1sGz =0.7358 z + 0.5285----------------------z^2 - 1.368 z + 0.3679Sample time: 1 seconds
Discrete-time transfer function.>> zpk(Gz)%展示为零极点模式ans =0.73576 (z+0.7183)------------------(z-1) (z-0.3679)Sample time: 1 seconds
Discrete-time zero/pole/gain model.

可以看出脉冲传递函数G(z)中含有1个不稳定极点z=1,但是考虑到此时的Φe(z)=(1−z−1)2F(z)\Phi_e(z)={(1-z^{-1})}^2F(z)Φe​(z)=(1−z−1)2F(z),具有z=1这个零点,说明D(z)的表达式D(z)=Φ(z)G(z)Φe(z)D(z)=\frac{\Phi(z)}{G(z)\Phi_e(z)}D(z)=G(z)Φe​(z)Φ(z)​中可以将极点z=1约去,不必再增加额外的(1−z−1)(1-z^{-1})(1−z−1)因式,因此可以取F(z)=1即Φe(z)=(1−z−1)2\Phi_e(z)={(1-z^{-1})}^2Φe​(z)=(1−z−1)2,此时Φ(z)=1−Φe(z)=1−(1−z−1)2=2z−1−z−2\Phi(z)=1-\Phi_e(z)=1-{(1-z^{-1})}^2=2z^{-1}-z^{-2}Φ(z)=1−Φe​(z)=1−(1−z−1)2=2z−1−z−2,根据D(z)=Φ(z)G(z)Φe(z)D(z)=\frac{\Phi(z)}{G(z)\Phi_e(z)}D(z)=G(z)Φe​(z)Φ(z)​可以求出控制器表达式D(z)。

>> syms z;
>> z=tf('z');
>> Phiez=(1-z^(-1))^2;
>> Phiz=1-Phiez;%得到Φ(z)
>> Dz=Phiz/(Gz*Phiez);%得到数字控制器的脉冲传递函数
>> minreal(zpk(Dz))%得到最简零极点式ans =2.7183 (z-0.5) (z-0.3679)-------------------------(z+0.7183) (z-1)Sample time: 1 seconds
Discrete-time zero/pole/gain model.

我们按照此要去搭建好Simulink仿真图如下

D(z)的Sample time设置为1(因为我们的采样时间是Ts=1s),仿真时间设为10s(差不多可以清楚地看见过渡过程)

黄色为指令信号(单位速度输入),蓝色为响应曲线。我们将示波器的图形(print to figure)打印到图形。利用数据游标工具找到t=1和t=2的点。如果我们的理论正确,那么e(0)=0,e(1)=1,e(2)=0.e(3)=e(4)=…=0;

t 数据游标(采样时刻的值)
1
2
3
4

由于r(k)=k,y(k)的采样值依次为0,2,3.002,3.997,e(k)=r(k)-y(k)基本满足e(0)=0,e(1)=1,e(2)=0.e(3)=e(4)=…=0。
从我们仿真的结果看,采样点处的值只需要两拍就达到了稳态,但是采样点之间有纹波(这是因为E(z)=a1z−1+a2z−2+...+anz−nE(z)=a_1z^{-1}+a_2z^{-2}+...+a_nz^{-n}E(z)=a1​z−1+a2​z−2+...+an​z−n并不是有限项,U(z)也并不是有限项,即u(k)最终并没有达到恒定,误差也并没有最终严格归0),这种控制属于有纹波的最小拍控制。还可以通过增加积分可牺牲控制拍数的手段,达到无纹波的最小拍控制,这是连续系统所做不到的。
希望本文对您有帮助,感谢大家对本站点的支持。

最小拍控制系统详细解读(阶跃输入+速度输入2个案例)【Simulink仿真】相关推荐

  1. 计算机控制直流电机闭环调速实验,最小拍控制系统及直流电机闭环调速控制系统设计和实现实验报告...

    最小拍控制系统及直流电机闭环调速控制系统设计和实现实验报告 最小拍控制系统及 直流电机闭环调速控制系统设计和实现 实验报告班级: xx 姓名: xx 学号: xx 时间: 第16周周日9-12节 指导 ...

  2. 扬州大学广陵学院计算机控制,计算机控制课程设计(最小拍无波纹).docx

    计算机控制课程设计(最小拍无波纹) <计算机控制>课程设计报告题目: 最小拍控制设计 姓名: 学号: 2014年7月4日<计算机控制>课程设计任务书学 号班 级学 生指导教师题 ...

  3. 最小拍无差控制器MATLAB求解,最小拍控制器设计.doc

    最小拍控制器设计.doc 最小拍控制器设计 matlab 实验实验目的1 了解和掌握有纹波和无纹波最小拍控制器的原理和设计方法.2 利用 Matlab仿真,观察系统的输入输出曲线.实验内容系统如图所示 ...

  4. VINS-mono详细解读与实现

    VINS-mono详细解读 VINS-mono详细解读 前言 Vins-mono是香港科技大学开源的一个VIO算法,https://github.com/HKUST-Aerial-Robotics/V ...

  5. 刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

    刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读! OpenStack Stein版本引入了新的多云编排功能,以及帮助实现边缘计算用例的增强功能. OpenStack由一系列相互关 ...

  6. vins 解读_VINS-mono详细解读

    VINS-mono详细解读 极品巧克力 前言 Vins-mono是香港科技大学开源的一个VIO算法,https://github.com/HKUST-Aerial-Robotics/VINS-Mono ...

  7. YOLO v3详细解读

    <YOLOv3: An Incremental Improvement> Joseph Redmon Ali Farhadi University of Washington 发表时间:2 ...

  8. 经典神经网络论文超详细解读(二)——VGGNet学习笔记(翻译+精读)

    前言 上一篇我们介绍了经典神经网络的开山力作--AlexNet:经典神经网络论文超详细解读(一)--AlexNet学习笔记(翻译+精读) 在文章最后提及了深度对网络结果很重要.今天我们要读的这篇VGG ...

  9. 等保测评2.0超详细解读,收藏这一篇就够了

    一.等级保护介绍 1.1什么是等级保护 网络安全等级保护是指对国家重要信息.法人和其他组织及公民的专有信息以及信息和存储.传输.处理这些信息的信息系统分等级实行安全保护,对信息系统中使用的信息安全产品 ...

最新文章

  1. 4、EIGRP配置实验之手动汇总
  2. 曾经用过的Sql Server分页方法小结
  3. 多核 CPU 和多个 CPU 有何区别
  4. SQL Server 2017 2019 Linux(Centos、Unbuntu16.04、Unbuntu18.04、Unbuntu20.04)安装过程详解
  5. Python django解决跨域请求的问题
  6. 管理活动目录域服务实训_管理学院学生党支部开展实践教育基地服务活动
  7. linux 线程同步消息队列,Linux 多线程同步之消息队列
  8. PC客户端(CS架构)如何实现抓包
  9. 韩昊 20190919-5 代码规范,结对
  10. 《智慧工地单点解析系列(一)—— 劳务实名制》
  11. internet协议dns服务器地址,DNS服务器配置使用 及全国DNS地址大全
  12. 《痞子衡嵌入式半月刊》 第 19 期
  13. 一个程序员的自白(认同迷失)
  14. 【项目数据优化一】敏感数据脱敏处理
  15. 机器学习中的分类模型整理
  16. 技术人变现的9个路线
  17. FPGA实现PCI串口卡16550/TL16C2550
  18. 解决Pixel手机时间不能自动同步
  19. hooper篮球意思_篮球运动员的英文单词怎么写
  20. CSS文字溢出省略号,单行省略号,多行省略号

热门文章

  1. 改变centos系统的时区
  2. websocket心跳检测前后端架构
  3. Knapsack Cryptosystem【折半+查找】
  4. PACKING【二维01背包】
  5. 自建CDN Xnign产品指标
  6. RoboMaster 2017:机器人版的「王者农药」,工程师们的竞技时代
  7. OpenBSD基金会收到锤子科技约140万捐赠款
  8. 【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~...
  9. 公众号 -「前端攻略 开光篇」
  10. IE6,IE7 Firefox 兼容问题