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

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 ) = a 1 z − 1 + a 2 z − 2 + . . . + a n z − n \Phi_e(z)=a_1z^{-1}+a_2z^{-2}+...+a_nz^{-n} Φe(z)=a1z1+a2z2+...+anzn具有最简单的表达式。因为 z − k z^{-k} zk的反Z变换为 δ ( t − k ) \delta(t-k) δ(tk),因此 e ( k ) = a 1 δ ( t − T ) + a 2 δ ( t − 2 T ) + . . . + a n δ ( t − n T ) ( a n ≠ 0 ) e(k)=a_1\delta(t-T)+a_2\delta(t-2T)+...+a_n\delta(t-nT)(a_n≠0) e(k)=a1δ(tT)+a2δ(t2T)+...+anδ(tnT)(an̸=0),即 e ( 1 ) = a 1 , e ( 2 ) = a 2 , . . . , e ( n ) = a n e(1)=a_1,e(2)=a_2,...,e(n)=a_n e(1)=a1,e(2)=a2,...,e(n)=ann的值是有限的说明系统能在有限拍内达到最小,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) 1 1 − z − 1 \frac{1}{1-z^{-1}} 1z11 ( 1 − z − 1 ) F ( z ) (1-z^{-1})F(z) (1z1)F(z)
t u ( t ) tu(t) tu(t) T z − 1 ( 1 − z − 1 ) 2 \frac{Tz^{-1}}{{(1-z^{-1})}^2} (1z1)2Tz1 ( 1 − z − 1 ) 2 F ( z ) {(1-z^{-1})}^2F(z) (1z1)2F(z)
1 2 t 2 u ( t ) \frac{1}{2}t^2u(t) 21t2u(t) T 2 z − 1 ( 1 + z − 1 ) 2 ( 1 − z − 1 ) 3 \frac{T^2z^{-1}(1+z^{-1})}{2{(1-z^{-1})}^3} 2(1z1)3T2z1(1+z1) ( 1 − z − 1 ) 3 F ( z ) {(1-z^{-1})}^3F(z) (1z1)3F(z)

当被控对象不含有不稳定零极点,不含有纯滞后环节 z − 1 z^{-1} z1时,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 ) = ( a 0 + a 1 z − 1 + a 2 z − 2 + . . . + a n z − n ) ( 1 − z 1 z − 1 ) ( 1 − z 2 z − 1 ) . . . ( 1 − z k z − 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+a1z1+a2z2+...+anzn)(1z1z1)(1z2z1)...(1zkz1)zm
其中 z 1 , z 2 , . . . , z k z_1,z_2,...,z_k z1,z2,...,zk Φ ( z ) \Phi(z) Φ(z)保留的的广义被控对象G(z)不稳定零点, z − m z^{-m} zm是闭环传递函数 Φ ( z ) \Phi(z) Φ(z)保留的,在G(z)里面出现的纯滞后环节 z − m z^{-m} zm,而输入形式决定了前面多项式 a 0 + a 1 z − 1 + a 2 z − 2 + . . . + a n z − n a_0+a_1z^{-1}+a_2z^{-2}+...+a_nz^{-n} a0+a1z1+a2z2+...+anzn的阶数n,阶数n和 Φ e ( z ) = ( 1 − z − 1 ) p F ( z ) \Phi_e(z)={(1-z^{-1})}^pF(z) Φe(z)=(1z1)pF(z)中的p是一致的,即n=p,系数 a 0 、 a 1 、 . . . 、 a n a_0、a_1、...、a_n a0a1...an依赖于条件 Φ e ( z ) = ( 1 − z − 1 ) p F ( z ) \Phi_e(z)={(1-z^{-1})}^pF(z) Φe(z)=(1z1)pF(z)而定, Φ e ( z ) \Phi_e(z) Φe(z)中含有p重零点z=1,因此它的0阶导到p-1阶导在z=1处的值都应该是0,即

{ Φ e ( z ) ∣ z = 1 = 0 d Φ e ( z ) d z ∣ z = 1 = 0 d 2 Φ e ( z ) d z 2 ∣ z = 1 = 0 . . . d n Φ e ( z ) d z n ∣ 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)中的未知参数 a 0 、 a 1 、 . . . 、 a n a_0、a_1、...、a_n a0a1...an,因此 Φ e ( z ) \Phi_e(z) Φe(z)已经确定,D(z)即可求得。

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

3.1阶跃输入

假设被控对象的传递函数为 G ( s ) = 9.4 0.017 s + 1 G(s)=\frac{9.4}{0.017s+1} G(s)=0.017s+19.4求阶跃输入下的最小拍控制器D(z)的表达式。在Simulink的仿真中,我们设定了Z变换的采样频率是0.005s,(其他地方默认为-1,即服从系统的采样频率)
Simulink仿真图示意
先求取广义被控对象的传递函数
G ( z ) = Z [ 1 − e − T s s 9.4 0.017 s + 1 ] = ( 1 − z − 1 ) Z [ ( 9.4 s ( 0.017 s + 1 ) ) ] = 2.394 z − 1 1 − 0.745 z − 1 G(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[s1eTs0.017s+19.4]=(1z1)Z[(s(0.017s+1)9.4)]=10.745z12.394z1
没有不稳定零极点和纯滞后环节,因此选取 Φ e ( z ) = ( 1 − z − 1 ) , Φ ( z ) = z − 1 \Phi_e(z)=(1-z^{-1}),\Phi(z)=z^{-1} Φe(z)=(1z1),Φ(z)=z1
此时 D ( z ) = Φ ( z ) G ( z ) ( 1 − Φ ( z ) ) = 0.4174 z − 0.7452 z − 1 D(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.4174z1z0.7452
我们搭建好Simulink仿真电路如下:
Simulink的仿真图
按照我们的理论,系统的应该在控制算法作用的第一拍(0.005s处)时达到0稳态误差,仿真曲线如下图(给定值为1500):
最小拍的阶跃响应
可以看到验证结果与我们理论推导相符。注意我们这里示波器取的采样周期为-1(inherited),说明是Matlab内置的采样时间,会比我们定的Ts=1s要短的多,非常接近于连续系统的仿真结果。可以看出响应曲线在上升段有很微小的纹波抖动,在进入稳态值后,纹波消失。产生纹波的原因在于 Y ( z ) Y(z) Y(z)

3.2速度输入

假设被控对象的传递函数为 G ( s ) = 2 s ( 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 − T s s ⋅ G ( s ) ] G(z)=Z[\frac{1-e^{-Ts}{s}\cdot G(s)}] G(z)=Z[]1eTssG(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)的离散化,采样时间为1s

Gz =
 
    0.7358 z + 0.5285
  ----------------------
  z^2 - 1.368 z + 0.3679
 
Sample 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 ) 2 F ( z ) \Phi_e(z)={(1-z^{-1})}^2F(z) Φe(z)=(1z1)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}) (1z1)因式,因此可以取F(z)=1即 Φ e ( z ) = ( 1 − z − 1 ) 2 \Phi_e(z)={(1-z^{-1})}^2 Φe(z)=(1z1)2,此时 Φ ( z ) = 1 − Φ e ( z ) = 1 − ( 1 − z − 1 ) 2 = 2 z − 1 − z − 2 \Phi(z)=1-\Phi_e(z)=1-{(1-z^{-1})}^2=2z^{-1}-z^{-2} Φ(z)=1Φe(z)=1(1z1)2=2z1z2,根据 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仿真图如下
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 ) = a 1 z − 1 + a 2 z − 2 + . . . + a n z − n E(z)=a_1z^{-1}+a_2z^{-2}+...+a_nz^{-n} E(z)=a1z1+a2z2+...+anzn并不是有限项,U(z)也并不是有限项,即u(k)最终并没有达到恒定,误差也并没有最终严格归0),这种控制属于有纹波的最小拍控制。还可以通过增加积分可牺牲控制拍数的手段,达到无纹波的最小拍控制,这是连续系统所做不到的。
希望本文对您有帮助,感谢大家对本站点的支持。

  • 65
    点赞
  • 287
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
《计算机控制》课程设计报告 题目: 最小控制设计 姓名: 学号: 2014年7月4日 《计算机控制》课程设计任务书 "学 号 " "班 级 " " "学 生 " "指导教师 " " "题 目 "最小控制设计 " "设计时间 "2014年 6 月 27 日 至 2014 年 7 月 4 日 共 1 周 " "设计要求 "设计任务:设单位反馈线性定常离散系统的连续部分和零阶保持 " " "器的传递函数分别为,,采样周期T=0.05s,设计数字" " "控制器,要求系统在单位阶跃输入时实现最小无波纹控制" " "。 " " " " " "方案设计: " " "完成控制系统的分析、设计; " " "选择元器件,完成电路设计,控制器采用MCS-51系列单片机(传感" " "器、功率接口以及人机接口等可以暂不涉及),使用Proteus绘制 " " "原理图; " " "编程实现单片机上的控制算法。 " " " " " "报告内容: " " "控制系统仿真和设计步骤,应包含性能曲线、采样周期的选择、 " " "数字控制器的脉冲传递函数和差分方程; " " "元器件选型,电路设计,以及绘制的Proteus原理图; " " "软件流程图,以及含有详细注释的源程序; " " "设计工作总结及心得体会; " " "列出所查阅的参考资料。 " " " " " " " " " " 指导教师签字: 系(教研室)主任签字: 2014年 6 月 27 日 方案设计: 一、题目分析 设单位反馈线性定常离散系统的连续部分和零阶保持器的传递函数分别为, ,采样周期T=0.05s,设计数字控制器,要求系统在单位阶跃输入时实现最小无 波纹控制控制系统设计 1、被控对象特性 图1 被控对象整体框图 图2 被控对象波特图 图3 被控对象波特图 图4 被控对象Nyquist图 图5 被控对象输出曲线图 2、采样周期T的选择 当取采样周期T=0.05s时,经过理论验证,两后系统无波纹,达到无波纹输出时 t=0.10s,满足控制器要求。 3、无波纹最小控制器的计算 (1)带零阶保持器的广义被控对象为通过matlab,z变换程序为 np=[0 0 10]; dp=[1 1 0]; hs=tf ( np, dp); hz=c2d(hs,0.05) 结果为 Transfer function: 0.01229 z + 0.01209 ---------------------------- z^2 - 1.951 z + 0.9512 Sampling time: 1 即 (1) (2)无波纹最小控制器D(z) 根据G(z),对于单位阶跃r(t)=1(t),m=1。考虑到广义对象,则闭环脉冲传递函数 为 由,得系数,则系统脉冲传函为 误差脉冲传函为 由得设计的控制器为 (2) 4、无波纹最小控制系统框图 图6 控制系统整体框图 5、无波纹最小控制系统Matlab仿真 通过Matlab观察阶跃输入响应曲线如下 图7 控制系统阶跃图 由图7可见,2后输出跟上输入,可实现最小控制,T=0.05s满足要求。 图8 控制系统波特图 图9 控制系统Nyquist图 6、无波纹最小控制系统simulink仿真 图10 控制系统仿真仿真结果为: (1)系统输入及系统输出曲线c(t)图形如下: 图11 控制系统输出响应图 (2)系统误差e(t)曲线如下: 图12 控制系统误差曲线图 (3)控制器输出u(k)曲线如下: 图13 控制系统控制器输出曲线图 通过仿真曲线看出: 控制器D(z)满足设计要求,系统在第二之后系统达到无差,最后控制器输出恒定( u(k)=0),因此系统输出不会产生波纹,调节时间为。 将得系统的差分方程为: (3) 三、硬件电路设计及元件选型 控制器部分由AD转换器,DA转换器和AT89C51单片机组成。模数转换芯片采用ADC08 08,数模转换芯片采用DAC0832。 图14 系统结构总图 1、AD转换器 由于用proteus进行仿真,但在它的库里没ADC0809的仿真模型,而有ADC0808的,故AD转 换器选ADC0808。ADC0808是一种逐次比较式的8路模拟输入,内部具有锁存功能,故不需 要加地址锁存器。ALE脚为地址锁存信号,高电平有效,三根地址线固定接地,由于地址 信号已经固定,故将ALE接高电平。 系统只需要一路信号,选择IN-0通道作为输入。 START脚为AD转换启动信号,高电平有效,程序控制。AD采样值为系统的偏差信号, 故选择ADC0808的为5V。 由于ADC0808的时钟所限,AD转换器的时钟信号,由单片机P0.1脚产生,将CLOCK脚接 单片机的P0.1。单片机晶振选12MHz,对其40分频,产生300khz的时钟信号

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非线性光学元件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值