自动控制球杆系统实验指导书-2016教材
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动控制综合实验2 实验指导书
Part 1
球杆系统GBB1004
北京邮电大学自动化学院
林雪燕
2016.5.24
前言
自动控制是一门理论与实践并重的技术,在成功掌握了理论知识(经典控制、现代控制)的同时再配合做一些经典的自动控制实验,从而加深对自动控制的理解与掌握,为今后从事自动控制的设计和研究工作打下扎实的基础。
为了更好地配合理论教学,达到理论与实践完美的结合,将自动控制相关的实验独立设置成一门实验课:自动控制综合实验。
自动控制理论实验主要目的是通过实验进一步理解自动控制理论的基本概念,熟悉和掌握控制系统的分析方法和设计方法,掌握常用工程软件使用,如MATLAB、LabVIEW 等。
上学期开设的自动控制综合实验(1)主要内容为控制系统的Matlab/simulink 仿真和基于实验箱的硬件模拟,以电路系统为研究对象。
本学期开始的自动控制综合实验(2)的内容是基于典型控制理论实验设备(球杆系统和倒立摆系统),熟悉和掌握控制系统的分析和设计方法。
球杆系统机械简单,结构紧凑,安全性高,采用智能伺服驱动模块和Windows 程序界面,可用于教学或科研。
对于自动控制理论等课程来说,针对设备的非线性与不稳定性特点,设计有效的控制系统是项有意义的工作。
球杆系统要完成的实验有:
实验一:小球位置的数据采集处理
实验二:球杆系统的PID法控制实验
三:球杆系统的根轨迹法控制实验
四:球杆系统的频率响应法控制
倒立摆是一个典型的不稳定系统,同时又具有多变量、非线性、强耦合的特性,是自动控制理论中的典型被控对象。
运用控制手段可使之具有一定的稳定性和良好的性能。
许多抽象的控制概念如控制系统的稳定性、可控性、系统收敛速度和系统抗干扰能力等,都可以通过倒立摆系统直观的表现出来。
倒立摆系统要完成的实验有:
实验五:倒立摆的数学建模及稳定性分析
实验六:倒立摆的状态反馈控制实验七:
不同状态下状态反馈控制效果比较实验
八:倒立摆的LQR 控制
同学们完成实验后,要完成相应的实验报告,并及时提交。
实验报告内容包含实验名称、实验目的、实验内容、实验要求、实验原理、实验设备及仪器、实验步骤、实验结果及分析、问题回答、心得体会、附上必要的实验原程序。
成绩评定:考勤10+实验过程表现40+实验报告50=100 分
图1 简介
球杆系统机械简单,结构紧凑,安全性高,采用智能伺服驱动模块和Windows 程序界面,可用于教学或科研。
对于自动控制理论等课程来说,针对设备的非线性与不稳定性特点,设计有效的控制系统是项有意义的工作。
球杆系统主要由以下部分组成,如下图0-1所示:
机械部分(包含直流伺服电机和电源):通过电机调整横杆的倾斜角,使小球稳定平衡在横杆的某一位置;
智能伺服驱动:控制箱内的IPM100模块通过RS-232接口与计算机通讯,完成控制任务;
计算机:在MatLab Simulink环境下设计控制算法,实现控制目标。
球杆系统采用电位计检测小球的位置,电位计安装在横杆上,小球位置对应的电压信号输送给IPM100智能驱动的AD转换器,如图0-2所示
图0-2 小球的位置信号采集原理
球杆系统的闭环控制系统结构图0-3如下:
图0-3 系统控制结构
直流马达通过一个减速皮带轮带动横杆运动,IPM100智能驱动器内部包一个PID 控制算法,用于控制电机的位置,PID控制器的参数已经调整,保证电机具有较快的响应并没有超调。
系统通过以下步骤来实现控制:
i. 通过RS232下载控制程序到智能伺服驱动器的板载内部寄存器中。
ii. 电机编码器的信号和小球的位置信号每隔一定时间反馈给系统,(伺服时间可设置,默认为5ms)
iii. 板载的DSP对下载的程序进行解码,然后计算根据反馈的位置信息和控制算法计算控制量。
iv. 计算得到的控制量被放大并通过IPM的电源驱动模块作用给电机。
v. 这样,通过控制电机的位置,使得小球在设定的位置保持平衡。
控制系统的流程图如图0-4所示:
图0-4 控制程序流程图
为了使小球稳定平衡在横杆的某一位置,首先应建立球杆系统的数学模型,然后对小球位置进行数据采集。
控制量的设计方法有PID法、根轨迹法、和频率响应法。
2系统建模
1.1 球杆系统的数学模型
球杆系统机械结构原理图如图1-1:
图1-1 球杆系统机械结构
连线(连杆和同步带轮的连接点与齿轮中心的连线)和水平线的夹角为θ(θ的角度存在一定的限制,在最小和最大的范围之间),它作为连杆的输入,横杆的倾斜角α和θ之间的有如下的数学关系:
α=d
θ
L
(1)
角度θ和电机轴之间存在一个减速比n=4的同步带,控制器设计的任务是通过调整齿轮的角度θ,使得小球在某一位置平衡。
小球在横杆上滚动的加速度如下式:
J ..
++
⋅⋅
α- 2 =0 (2)
( m) r
R2
mg s i n m r(α)
其中:小球在横杆上的位置r为输出
已知小球的质量m = 0.11kg;小球的半径R = 0.015m;重力加速度g=9.8m/s2;横杆长L =0.4m;连杆和齿轮的连接点与齿轮中心的距离为d = 0.04m;小球的转动
惯量J =2mR
kg.m2。
假设小球在横杆上的运动为滚动,且摩擦力可以忽略不计。
5
因为期望角度α在0︒附近,因此可以在0附近对其进行线性化,得到近似的线性方程:
2=
.. mg
r =
J α=
( +m) R 2
mgd
θ
J
L( +m)
R 2
(3)
拉氏变换得:r (s)
=
mgd
⋅
1
0.7
2
(4)
θ(s) L(J +m) s s
R 2
球杆系统是一个典型的单输入单输出系统,其传递函数可以近似为一个两阶的
积分器。
R(s)和θ(s)分别为系统输出(小球位置)和输入(齿轮角度)的拉氏变换。
开环系统的阶跃响应如图1-2 所示,可以看出,系统不稳定,需要对其实施闭环控制与添加校正器。
图1-2 球杆系统的开环响应
1.2 伺服系统的数学模型
图0-3中的直流伺服系统由电机、编码器和IPM100智能驱动组成,形成了内闭环,结构图如图1-3所示。
图1-3 闭环系统结构图设皮
带轮的减速比为n,因为La 很小,因此简化可以得到:
上式可以简化如下:其中,
传递函数包含一个积分项1/s,具有积分的特性,通常R
a 、J
和T
m
都很小,伺服电机
可以看作为一个积分器。
实验一小球位置的数据采集处理
为正常运行下面的程序,应将MatLab主窗口的Current Directory文本框设置为球杆控制程序的系统文件夹, 如c:\\program file\ matlab\ 2010a \toolbox \googoltech\ ballbeam。
通过IPM Motion Studio和MATLAB采集小球的位置信号,以及对其进行数字滤波器的设计。
小球的位置通过电位计的输出电压来检测,它和IPM100的AD转换通道AD5 相连,AD5(16位)的范围为0-65535,对应的电压为0-5V,相应的小球位置为0-400mm。
一、MATLAB Simulink环境下的数据采集
MATLAB的数据采集和处理工具箱提供了强大的数据采集功能,可以很方便的进行数据采集和处理的工作。
请参考以下步骤:
1. 在Simulink中打开”Googol Educational Products”工具箱,打开“Ball&Beam
\Control Demo\Ball&Beam Data Collection And Filter Design”演示程序。
确认串行口COM Port为1后,双击Start Real Control模块,打开数据采集处理程序界面,程序尚未完成:
图2-1尚未完成的数据采集处理程序界面
上面的模块不需再编辑设置,其中Noise Filter1模块是专门设计的滤波器,用来抑制扰动。
请参考以下步骤完成剩余部分:
(1)添加、设置模块:
✓添加User-Defined Functions组中的S-Function模块,双击图标,设置name为AD5;
parameters为20.
✓添加Math Operations组中的Gain模块,双击图标,设置Gain为0.4/65535.0. ✓添加Sinks组中的Scope模块,双击图标,打开窗口,点击(Parameters),设置General 页中的Number of axes为2,Time Range为20000,点击OK退出,示波器屏成双;
分别右击双屏,选Axes properties,设置Y-min为0,Y-max为0.4.
(2)连接模块:
顺序连接AD5、Gain、Noise Filter1、Scope模块,完成后的程序界面如图2-2所示:
图2-2 完成的数据采集处理程序界面
图2-2 中各部分的意义如下:
“S-Function”模块用于采集IPM100控制器的AD5通道的数值,“Gain ”模块用于转化AD5通道的数值为小球的实际位置(0-400mm),“Noise Filter1”为根据需要而设计的滤波器,点击“Scope”可以观测到滤波前后的差异,可以作为一个在MATLAB Simulink环境下的滤波器的设计与实时控制的实验。
2. 运行控制程序,使小球在横杆上滚动,可以得到如下图2-3的实验结果:
二、实验内容
图2-3 小球位置的数据采集处理
1. 在MatLab Simulink中完成球杆系统的Data Collection And Filter Design模型并运行,拨动小球在横杆上滚动,得到数据采集及滤波的实验结果,交Data.mdl 图形文件。
2.建立球杆系统的simulink模型
系统方程(2)、(3)式中包含r, d/dt(r), alpha, and d/dt(alpha),使用
非线性函数模块来描述这些函数:
1)在Simulink中打开一个新的模型:
•从commonly used blocks中插入一个积分模块。
•在上面的积分模块右边再添加一个积分模块,并把两个模块连接起来。
•在连接线上加上"d/dt(r)"的注释,在连接线的附近双击就可以添加文字。
•从第二个积分模块的输出端画一条线,并标识为"r"
•从commonly used blocks模块库中插入一个Out模块并和"r"信号线连接。
这就是系统的输出。
•更改"Out"的标识为"r"。
2)接下来插入一个包含向量[r d/dt(r) alpha d/dt(alpha)]的函数,输出为d/dt(r):•从user-defined functions模块库中插入一个Fcn模块,并把它的输出和第一个积分模块的输入相连。
•双击Fcn模块,修改函数如下:
(-1/ (J/(R^2) +m))*(m*g*sin (u [3])-m*u [2]*(u [4]) ^2)
此函数模块的输入为向量u,每个元素被指定u[1],u[2]等,设定u[1]=r,
u[2]=d/dt(r), u[3]=alpha, u [4]=d/dt(alpha).
•关闭对话框,改变Fcn模块的名称为"Ball-Beam Lagrangian Model",
3)构造函数的输入向量u,它可以通过积分器的输出信号以及使用一个Mux 模块实现:
•从commonly used blocks中插入一个Mux模块,并把其输出和Ball-Beam的输入相连。
•双击Mux模块,改变输入的个数为4,这样,Mux模块就有了4个输入。
选中display option:none,可将Mux模块变成无黑色填充。
•将Mux模块的第二个输入和d/dt(r)信号相连(移动鼠标时按住Ctrl键即可绘制分岔线)。
•将Mux模块的第一个输入和r信号相连。
4)通过theta信号构造alpha和d/dt (alpha)信号:
•在窗口的左边,从source模块库中插入一个模块In1,改变名称为"theta"。
•从commonly used blocks中插入一个Gain模块并和theta模块相连,改变名称为"d/L"。
•将Gain模块的输出和Mux模块的第三个输入相连,标注为"alpha".
• 从continuous模块库中插入一个Derivative模块,并置于alpha信号线的下面。
•将Derivative模块的输入和Gain模块的输出相连。
•将Derivative模块的输出和Mux模块的第四个输入相连。
得到如图2-4所示的球杆的simulink模型。
保存模型为"ballbeam.mdl", 运行开环仿真可以得到系统的开环响应,下一步把它封装为一个子模块。
1 theta d/L
Gai n
alpha
du/dt
M u x f(u)
Bal l-beam
Largrangi an
M o del
1
s
Integrator
d/dt(r)
1
s r
1
r
Integrator1
5)封装子模块
图2-4 球杆的simulink模型
•创建一个新的模型窗口(从Simulink的File菜单选择New或是按下Ctrl-N)。
•从commonly used blocks中模块库中插入一个“Subsystem”模块。
•双击Subsystem模块打开,可以看到一个新的模块窗口,标题为Subsystem。
•打开前面的ballbeam.mdl窗口,选择所有的模块和连线。
复制并粘贴到Subsystem窗口中。
•关闭Subsystem窗口,可以看到一个没有标题的子模块,该模块有一个标识为“theta”的输入和一个标识为“r”的输出。
•选择模块并拖动角点,改变模块的大小,使得
•改变“Subsystem”的模块名称为"Ball and Beam Model"。
6)运行开环仿,得到系统的开环响应
•从Sources模块库中插入一个“Step”模块,并将它和“Ball and Beam”模块的输入相连。
•双击“Step”模块,修改“Step Time”为0,然后关闭。
•从“Sinks”模块中插入一个“Scope”模块,并将它和“Ball and Beam”
模块相连。
得到如图2-5所示的球杆开环系统。
图2-5 球杆开环系统
•在得到阶跃信号响应前,需要先设置系统的物理参数,在MATLAB的命令行中输入:
m = 0.11;
R = 0.015;
g = -9.8;
L = 0.4;
d = 0.04;
J = 2*m*R^2/5;
•现在可以开始仿真,点击“Simulation”菜单的“Start”开始仿真,运行完成后,双击“Scope”打开运行结果。
如图2-6所示。
图2-6 球杆开环系统的阶跃响应
从上图中可以看出,开环系统是一个不稳定的系统,小球将滚动到横杆的一端。
这样,需要对小球的位置添加一些控制方法或控制器。
假设控制的指标要求如下:
♦调整时间小于1秒(2%误差);
♦超调量小于10%
下面将介绍几种适合于此类问题的控制器设计方法:
PID控制、根轨迹法、频率响应法。
三、实验要求
1)在MatLab Simulink中完成球杆系统的Data Collection And Filter Design模型并运行,拨动小球在横杆上滚动,得到数据采集及滤波的实验结果,交Data.mdl图形文件。
2)在MatLab Simulink中完成球杆开环系统的simulink模型、封装模型和阶跃响应,结果要验收并放在实验报告中。
3)思考:在MATLAB 中,将球杆系统的simulink 模型转化为相应的状态空间模型或是传递函数模型。
(MATLAB 函数linmod(),ss2tf())
四、书写实验报告并提交
2=
实验二球杆系统的PID法控制
一、实验原理
含有控制器、球杆系统结构和小球位置反馈的系统框图如下图3-1所示:
图3-1 闭环比例控制结构图其中,X d(s)为小球目标位置的拉普拉斯变换;
W(s)为球杆系统的传递函数,
W(s) = r (s)
=
mgd
⋅
10.7
2
(4); PID 控制器的传递函数为:θ(s) L(J +m)
R 2
K
s s
K s +K s +K
G
C (s) =K
P
+I +K
s D
s = D P I
s 2
其中,K, K
P I
和K为PID控制器的比例,积分和微分参数。
D
比例P控制可改变信号的增益但不影响其相位。
用于串联校正时,可提高系统的
开环增益,减小稳态误差,但会降低稳定性。
PD控制用于串联校正时,可使系统增加一个开环零点(-1/τ),提高系统的相角裕度,有助于动态性能的改善。
PD控制用于串联校正时,可使系统增加一个开环极点和开环零点。
位于原点的开环极点可提高系统的型别,以消除或减小系统的稳态误差,而增加的负实数零点可缓和极点对系统的稳定性产生的不利影响。
PID控制:选择适当的参数K i和K D可使系统增加两个负实数零点和一个位于原点的开环极点。
与PI控制器相比,除了同样具有提高系统稳态性能的优点外,还对提高系统的动态性能有更大的优越性。
二、实验内容
1. P控制首先,分析在添加P控制器后,系统的闭环响应,然后,微分和积分控制
器将在
需要时加。
P控制器为:G P (s)=K P
闭环系统的传递函数为:
可以比较明显的看出,这是一个二阶系统。
(1) 仿真
假设比例增益K=3,闭环系统的传递函数可以通过以下的MATLAB命令进行仿真。
P
m = 0.11;
R = 0.015;
g = -9.8;
L = 0.4;
d = 0.04;
J = 2*m*R^2/5;
K = (m*g*d)/(L*(J/R^2+m)); %simplifies input
num = [-K];
den = [1 0 0];
plant=tf(num,den);
kp = 3;
sys_cl=feedback (kp*plant, 1);
step(0.2*sys_cl) 在
MATLAB环境下运行文件。
阶跃信
号的响应如下图3-2所示:
图3-2 P控制下的响应可以看出,添加P控制器后,系统并不能稳定。
改变Kp 的值后,系统还是不稳
定的,可以看出,对于一个惯性系统,在P控制器作用下,系统会保持一个等幅振荡。
(2) 实验
i.在MATLAB Simulink环境下运行演示程序。
在Simulink中打开c:\\program file\ matlab\ 2010a \toolbox \googoltech\ ballbeam \BallBeam PID,运行PID程序,确认串行
口COM Port为1后,双击Start Real Control模块,打开控制程序界面,如图3-3所示.
2
图3-3 PID 控制演示界面
ii. 将控制器设置为P 控制器。
iii. 设置目标位置为200mm
iv. 用手指将小球拨动到100mm 的地方。
v. 松开小球,系统将对小球的位置进行平衡。
vi. 改变并观察其响应,实验结果如下,比较实验结果和仿真结果的区别。
(建
议参数不要设置过大)
2. PD 控制 PD 控制器的传递函数为: 闭环系统的传递函数为:
图3-4 实验结果
G PD (s ) = K P + K D
s
X (s ) = G PD (s )W (s ) = c (K P +
K D s ) (1) 仿真
X d (s ) 1 + G PD (s )W (s ) s + cK D s + cK P 令k p1 = 6, k d1 = 6,编写MATLAB 的M 文件,运行仿真观察阶跃响应的仿真结果。
仿真结果如图3-5所示。
可以看出,闭环系统是一个稳定的系统,但是超调和稳定时 间都过大。
写出超调量σ1%和调整时间t s2。
改变控制参数K P2, K D2,编写MATLAB 的M 文件,运行仿真观察阶跃响应的仿真结果。
记录仿真曲线,计算超调量σ2%和调整时间t s2。
3
2 改变控制参数K P3, K D3,编写MATLAB 的M 文件,运行仿真观察阶跃响应的仿真结果。
记录仿真曲线,计算超调量σ3%和调整时间t s3。
由仿真运行曲线和性能指标,分析控制参数的作用。
(2)实验
图3-5 PD 控制时的球杆系统的单位阶跃响应
i.在MATLAB Simulink 中运行PID 控制演示程序Ballbeam PID 。
ii. 切换控制器为PD 控制器,并设置参数:k p =6, k d =6。
iii. 设置目标位置为200mm
iv. 移动小球的位置,使其大概在50mm 的地方。
v. 松开小球,系统将试图稳定小球的位置。
vi.观察其响应并记录响应图,计算性能指标。
vii. 改变K P 和K D ,和matlab 仿真设置相同,观察其响应并记录响应图,计算性
能指标并使其满足控制目标。
在PD 控制器的作用下,系统可以很快的平衡,但是稳态误差比较大,分析小球
的位置改变和齿轮转动角度的变化之间的关系,对比实验结果和仿真结果的区别。
3.PID 控制分析
图3-6 PD 控制器控制结果
PID 控制器的传递函数为:
G PID
K s 2
+ K s + K (s ) = D P I
s
闭环系统的传递函数如下所示:
2
X (s ) = G PID (s )W (s ) = c (K D s + K P s + K I )
(1) 仿真
X d (s ) 1 + G PID (s )W (s ) s + cK D s + cK P s + cK I 设置控制参数: K P1=10, K I1=1, K D1 =10,编写MATLAB 的M 文件,运行仿真观察阶
跃响应的仿真结果。
记录仿真曲线,计算超调量σ1%和调整时间t
s1。
改变控制参
数:K
P2=10, K
I2
=1, K
D2
=20,编写MATLAB的M文件,运行仿真观察阶
跃响应的仿真结果。
记录仿真曲线,计算超调量σ2%和调整时间t
s2。
改变控制参数:K
P3=15, K
I3
=1, K
D3
=40,编写MATLAB的M文件,运行仿真观察阶
跃响应的仿真结果。
记录仿真曲线,计算超调量σ3%和调整时间t
s3。
由仿真运行曲线和性能指标,分析控制参数的作用。
(2)实验
i.在MATLAB Simulink中运行PID控制演示程序Ballbeam PID。
ii. 切换控制器为PID控制器,并设置参数:K P =10, K I =1, K D =10。
iii. 设置目标位置为200mm
iv. 移动小球的位置,使其大概在50mm的地方。
v. 松开小球,系统将试图稳定小球的位置。
vi.观察其响应并记录响应图,计算性能指标超调量σ%和调整时间t
s。
vii. 改变K P、K I和K D 值,和matlab仿真设置相同,观察其响应并记录响应图,计算性能指标。
三、实验要求
1. 完成P 控制下三种不同的Kp 参数下Ballbeam 系统的Matlab 仿真和实际测试。
2. 完成PD 控制下三种不同的Kp、KD 参数下Ballbeam 系统的Matlab 仿真和实际测试。
3. 完成PID 控制下三种不同的Kp、KD、KI 参数下Ballbeam 系统的Matlab 仿真和实际测试。
4. 记录各种控制方法时的仿真曲线、实验曲线,及计算响应的性能指标。
5. 分析参数的作用,分析仿真和实验的差别的原因。
6. 指导老师验收实验结果
四、书写实验报告并提交
2
=
n
实验三球杆系统的根轨迹控制
一、实验原理
根轨迹的主要思想就是通过分析系统的开环零极点位置,来分析闭环系统的特性,通过增加极点或零点的方法(校正器),根轨迹以及闭环系统的响应都将发生改变。
添加根轨迹法超前校正器后,闭环系统如下图4-1:
图4-1 根轨迹法超前校正的闭环系统
已知球杆系统的传递函数W(s) =
r (s)
=
mgd
⋅
10.7
2
(4) 。
在MATLAB中
θ(s) L(J +m) s s
R 2
建立一个新的M文件,使用函数rlocus(),以仿真和绘制系统的根轨迹图,如图4-2所示。
可以看出,系统具有两个极点,其根轨迹从原点开始沿虚轴指向无穷。
图4-2 球杆系统的根轨迹图
根轨迹设计步骤如下:
1. 确定闭环期望极点:
闭环期望极点(主导极点)s
1
的位置必须在s平面的左半平面,如图4-3所示。
-
πζ
1-ζ2
由最大超调量σ%=e
由ζ=cos(ϕ)可以得到ϕ=126︒。
4
⨯100% ≤10% ,可以得到:ζ≈0. 6。
又由t
s
=
ζω
≤1s ,可以得到:ωn =6.67rad/s,于是可以得到期望的闭环极点为: 6.67 (Cosϕ±jsinϕ)=-3.92±j5.40
2. 未校正系统的根轨迹在实轴和虚轴上(即重极点在坐标原点上),不通过闭环期望极点,因此需要对系统进行超前校正,设控制器为:
s c d
G (s ) = a Ts + 1 = s + z c
(a ≤ 1) 。
z 、p 分别为校正器零、极点。
以下算法的特
c
aTs + 1 c c
s + p c
点是:添加校正器后的增益损失最小
图4-3 主导极点s 1与校正器的零点、极点 3.计算超前校正装置的传递函数。
以下算法的特点是:添加校正器后的增益损失最小。
由图4-3的几何关系,可得 校正装置提供的相角为:ϕc =72︒。
ϕ - ϕ θ = c = 27︒; ϕ + ϕ θ = c
= 99︒ 2 z
2
长度即零、极点值为: z c = Re(s 1) - I m(s 1) = 3.07; t an θ z p = Re(s 1) - I m(s 1) = 14.52 tan θ p 控制器的传递函数G (s ) = K s + 3.07
c
s + 14.52
4.校正后系统的开环传递函数为:
G (s ) = G (s )W (s ) = K (s + 3.07) ⨯ 0.7
K c
(s + 14.52) s 2
5. 主导极点还应满足闭环特征方程的幅值条件: K (s d + 3.07) ⨯ 0.7
= 1 ,由
s d =-3.92±j5.40,得到K =138.3
(s d + 14.52) 2 6. 于是,系统的控制器: 138.3(s +
3.07) G c
(s ) = s + 14.52
7. 绘制校正后系统的根轨迹图,分析系统的阶跃响应
二、实验内容
1. 仿真
上述过程手动计算比较复杂,可以采用编程程序自动计算得到。
例程如下:
clear
num = [0.7]; %未校正系统传递函数,前面程序得到的数值
den = [1 0 0];
g0 = tf(num,den);
sigma = 10; %超调量(百分比)
ts = 1; %调整时间
sigma = sigma/100;
zeta = sqrt(1/(pi^2/log(sigma)^2+1)); %二阶系统参数ζ、nω
wn = 4/(ts*zeta);
s1_real = -wn*zeta; %由二阶系统算出的闭环系统主导极点
s1_imag = wn*sqrt(1-zeta^2);
s1 = s1_real+j*s1_imag;
phi = angle(s1); %主导极点的相角90︒<ϕ<180︒
num_s1 = polyval(num, s1);
den_s1 = polyval(den, s1);
g0_s1 = num_s1/den_s1; %未校正系统传递函数在主导极点上的值
theta = angle(g0_s1); %未校正系统传递函数在主导极点上的相角θphi_c = pi-theta; %校正器的相角cϕ可由主导极点上闭环特征方程的
%相角条件确定
theta_z = (phi+phi_c)/2;
theta_p = (phi-phi_c)/2;
z_c = real(s1)-imag(s1)/tan(theta_z); %校正器零、极点
p_c = real(s1)-imag(s1)/tan(theta_p);
num_c = [1 -z_c];
den_c = [1 -p_c];
gc = tf(num_c, den_c) %校正器传递函数,句尾不写分号
numc_s1 = polyval(num_c, s1);
denc_s1 = polyval(den_c, s1);
gc_s1 = numc_s1/denc_s1; %校正器传递函数在主导极点上的值
K = 1/(abs(g0_s1*gc_s1)) %根据主导极点上闭环特征方程的幅值条件
%求增益,句尾不写分号
rlocus(g0*gc) %根轨迹图
close = feedback(K*g0*gc, 1); %闭环负反馈
figure
t = 0: 0.01: 10; %时间标尺
step(close, t) %校正后系统单位阶跃响应
运行结果如下:
图4-4 球杆系统的根轨迹法控制结果
2. 实验
i. 在MATLAB Simulink中打开c:\\program file\ matlab\ 2010a \toolbox
\googoltech\ ballbeam\Root Locus Control,运行Root Locus Simu程序,,确认串行口COM Port为1后,双击Start Real Control模块,打开控制程序界面,如图4-5所示。
图4-5 根轨迹法控制程序界面
ii.选通并打开其中的零、极点-增益型模块,将其参数设置为仿真得到的数据K,z c,p c。
iii. 设置目标位置为200mm
iv. 移动小球的位置,使其大概在50mm的地方。
v. 松开小球,系统将试图稳定小球的位置。
vi.观察其响应并记录响应图,计算性能指标超调量σ%和调整时间t
s
三、实验要求
1. 完成σ1%=10%,ts=1s 时根轨迹法控制时的控制器的Matlab 仿真设计和球杆系统实际测试。
2. 完成σ2%=5%,ts=1s 时根轨迹法控制时的控制器的Matlab 仿真设计和球杆系统实际测试。
3. 完成σ3%=1%,ts=1s 时根轨迹法控制时的控制器的Matlab 仿真设计和球杆系统实际测试。
4. 记录各种控制参数时的仿真曲线、实验曲线,及计算响应的性能指标。
5. 分析参数的作用,分析仿真和实验的差别的原因。
6. 仿真部分:用根轨迹法设计校正器,编写并运行M 文件,获得校正后根轨迹图及阶跃响应图,获得相关数据以备实验用。
指导教师验收图形与数据,交程序清单。
7. 实验部分:指导老师验收实验结果
说明:一般来说,提高增益有利于小球运动的快速性,但会加大超调量。
常数模块REFPOS1一般是选通的,是小球的参考位置,单位mm。
增益模块Real Position1用于调节小球稳定后的实际位置与参考位置的差异。
有时会出现相同情况下,小球位置不一,原因很多,可能是元器件参数漂移,或是机械系统阻尼过大,可不必理会。
若小球死在非平衡位置,将其拨离死区即可。
四、书写实验报告并提交
2
=
实验四球杆系统的频率响应法控制
一、实验原理
频率响应法的主要思想是根据开环传递函数的Bode图,给系统添加一个控制器,改变开环系统的Bode图,从而改变闭环系统的响应,使其达到期望的性能。
添加根轨迹法超前校正器后,闭环系统如下图5-1:
图5-1 频率响应法超前校正的球杆闭环系统
已知球杆系统的传递函数W(s) =
r (s)
=
mgd
⋅
10.7
2(4) 。
在MATLAB中
θ(s) L(J +m) s s
R 2
建立一个新的M5-2所示。
图5-2 未校正系统的BODE图
从上图可以看出,系统的相位裕量为0,从相位裕量的定义可以得到,开环系统需要一定的相位裕量,才能使闭环系统稳定,因此,开环系统是不稳定的,需要增加系统的相位裕量,可以给系统添加一个超前校正器,改善系统的响应。
频率响应法设计步骤如下:
设控制系统需要的超调量σ%=e
1. 计算相位裕量γ:
-
πζ
1-ζ2⨯100% ≤10% ,可以得到:ζ≈0. 6。
γ (ωc ) = arctan -1
2ζ
≈ 59 1+ 4ζ 4 - 2ζ 2
2. 计算校正器最大超前角φ:因系统校正前相位裕量为0,故:φ=γ。
3. 计算控制器的分度系数a 和时间常数T :
控制器的传递函数G c (s ) = K Ts + 1 aTs + 1
,使系统在1/aT 至 1/T 的转角频率范围内增
1- sin φ
加相位裕量 。
预 设 带 宽 中 心 频 率 ωc =1.0rad/s ,则 a =
1
T = = 3.65s
1+ sin φ = 0.075 ,
ωc a
4. 计算控制器的传递函数:G (s ) = K 3.65s + 1
c
0.27s + 1
5. 预设校正器的增益K =2,分析校正后系统的Bode 图和时域响应。
二、实验内容
1. 仿真
上述过程手动计算比较复杂,可以采用编程程序自动计算得到。
在MATLAB 中 输入如下的程序:
clear
num = [0.7]; %未校正系统传递函数,前面程序得到的数值 den = [1 0 0]; g0 = tf(num,den);
sigma = 10; %超调量(百分比) sigma = sigma/100;
zeta = sqrt(1/(pi^2/log(sigma)^2+1)); %二阶系统阻尼比ζ gamma = atan(2/sqrt(sqrt(1/zeta^4+4)-2)); %相位裕量 phi = gamma; %相位超前角
wc = 1 %频率带宽的中心频率,句尾不写分号 a = (1-sin(phi))/(1+sin(phi)); %分度系数 T = 1/(wc*sqrt(a)); %时间常数
numlead = [T 1]; %校正器传递函数 denlead = [a*T 1];
gc = tf(numlead, denlead) %句尾不写分号 K = 2 %增益,句尾不写分号
bode(K*gc*g0) %校正后系统Bode 图
close = feedback(K*gc*g0, 1); %闭环负反馈 figure
t = 0: 0.01: 10; %统一时间标尺
step(close, t) %校正后系统闭环单位阶跃响应。