自动控制球杆系统实验指导书资料Word格式文档下载.docx
- 文档编号:20597144
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:34
- 大小:936.42KB
自动控制球杆系统实验指导书资料Word格式文档下载.docx
《自动控制球杆系统实验指导书资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《自动控制球杆系统实验指导书资料Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。
À
机械部分(包含直流伺服电机和电源):
通过电机调整横杆的倾斜角,使小球稳定平衡在横杆的某一位置;
智能伺服驱动:
控制箱内的IPM100模块通过RS-232接口与计算机通讯,完成控制任务;
计算机:
在MatLabSimulink环境下设计控制算法,实现控制目标。
图1
球杆系统采用电位计检测小球的位置,电位计安装在横杆上,小球位置对应的电压信号输送给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法、根轨迹法、和频率响应法。
系统建模
1.1球杆系统的数学模型
球杆系统机械结构原理图如图1-1:
图1-1球杆系统机械结构
连线(连杆和同步带轮的连接点与齿轮中心的连线)和水平线的夹角为θ(θ的角度存在一定的限制,在最小和最大的范围之间),它作为连杆的输入,横杆的倾斜角α和θ之间的有如下的数学关系:
α=dθ
L
(1)
角度θ和电机轴之间存在一个减速比n=4的同步带,控制器设计的任务是通过调整齿轮的角度θ,使得小球在某一位置平衡。
小球在横杆上滚动的加速度如下式:
J..
++
⋅⋅
α-2=0
(2)
(m)r
R2
mgsin
mr(α)
其中:
小球在横杆上的位置r为输出
2
已知小球的质量m=0.11kg;
小球的半径R=0.015m;
重力加速度g=9.8m/s2;
横杆长L=0.4m;
连杆和齿轮的连接点与齿轮中心的距离为d=0.04m;
小球的转动惯量J=2mRkg.m2。
假设小球在横杆上的运动为滚动,且摩擦力可以忽略不计。
5
因为期望角度α在0︒附近,因此可以在0附近对其进行线性化,得到近似的线性方程:
..mg
r=Jα=
(+m)
mgdθ
J
L(+m)
(3)
=
拉氏变换得:
r(s)=mgd⋅1
0.7
(4)
θ(s)
L(J+m)ss
球杆系统是一个典型的单输入单输出系统,其传递函数可以近似为一个两阶的
积分器。
R(s)和θ(s)分别为系统输出(小球位置)和输入(齿轮角度)的拉氏变换。
开环系统的阶跃响应如图1-2所示,可以看出,系统不稳定,需要对其实施闭
环控制与添加校正器。
图1-2球杆系统的开环响应
1.2伺服系统的数学模型
图0-3中的直流伺服系统由电机、编码器和IPM100智能驱动组成,形成了内闭环,结构图如图1-3所示。
图1-3闭环系统结构图设皮带轮的减速比为n,因为La很小,因此简化可以得到:
上式可以简化如下:
其中
,
传递函数包含一个积分项1/s,具有积分的特性,通常Ra、J0和Tm都很小,伺服电机可以看作为一个积分器。
实验一小球位置的数据采集处理
为正常运行下面的程序,应将MatLab主窗口的CurrentDirectory文本框设置为球杆控制程序的系统文件夹,如c:
\\programfile\matlab\2010a\toolbox
\googoltech\ballbeam。
通过IPMMotionStudio和MATLAB采集小球的位置信号,以及对其进行数字滤波器的设计。
小球的位置通过电位计的输出电压来检测,它和IPM100的AD转换通道AD5
相连,AD5(16位)的范围为0-65535,对应的电压为0-5V,相应的小球位置为0
-400mm。
一、MATLABSimulink环境下的数据采集
MATLAB的数据采集和处理工具箱提供了强大的数据采集功能,可以很方便的进行数据采集和处理的工作。
请参考以下步骤:
1.在Simulink中打开”GoogolEducationalProducts”工具箱,打开“Ball&
Beam
\ControlDemo\Ball&
BeamDataCollectionAndFilterDesign”演示程序。
确认串行口COMPort为1后,双击StartRealControl模块,打开数据采集处理
程序界面,程序尚未完成:
图2-1尚未完成的数据采集处理程序界面
上面的模块不需再编辑设置,其中NoiseFilter1模块是专门设计的滤波器,用来抑制扰动。
请参考以下步骤完成剩余部分:
(1)添加、设置模块:
✓添加User-DefinedFunctions组中的S-Function模块,双击图标,设置name为AD5;
parameters为20.
✓添加MathOperations组中的Gain模块,双击图标,设置Gain为0.4/65535.0.
✓添加Sinks组中的Scope模块,双击图标,打开窗口,点击(Parameters),设置General
页中的Numberofaxes为2,TimeRange为20000,点击OK退出,示波器屏成双;
分别右击双屏,选Axesproperties,设置Y-min为0,Y-max为0.4.
(2)连接模块:
顺序连接AD5、Gain、NoiseFilter1、Scope模块,完成后的程序界面如图2-2
所示:
图2-2完成的数据采集处理程序界面图2-2中各部分的意义如下:
“S-Function”模块用于采集IPM100控制器的AD5通道的数值,“Gain”模块用于转化AD5通道的数值为小球的实际位置(0-400mm),“NoiseFilter1”为根据需要而设计的滤波器,点击“Scope”可以观测到滤波前后的差异,可以作为一个在MATLABSimulink环境下的滤波器的设计与实时控制的实验。
2.运行控制程序,使小球在横杆上滚动,可以得到如下图2-3的实验结果:
二、实验内容
图2-3小球位置的数据采集处理
1.在MatLabSimulink中完成球杆系统的DataCollectionAndFilterDesign模型并运行,拨动小球在横杆上滚动,得到数据采集及滤波的实验结果,交Data.mdl
图形文件。
2.建立球杆系统的simulink模型
系统方程
(2)、(3)式中包含r,d/dt(r),alpha,andd/dt(alpha),使用
非线性函数模块来描述这些函数:
1)在Simulink中打开一个新的模型:
•从commonlyusedblocks中插入一个积分模块。
•在上面的积分模块右边再添加一个积分模块,并把两个模块连接起来。
•在连接线上加上"
d/dt(r)"
的注释,在连接线的附近双击就可以添加文字。
•从第二个积分模块的输出端画一条线,并标识为"
r"
•从commonlyusedblocks模块库中插入一个Out模块并和"
信号线连接。
这就是系统的输出。
•更改"
Out"
的标识为"
。
2)接下来插入一个包含向量[rd/dt(r)alphad/dt(alpha)]的函数,输出为d/dt(r):
•从user-definedfunctions模块库中插入一个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-BeamLagrangianModel"
3)构造函数的输入向量u,它可以通过积分器的输出信号以及使用一个Mux
模块实现:
•从commonlyusedblocks中插入一个Mux模块,并把其输出和Ball-Beam的输入相连。
•双击Mux模块,改变输入的个数为4,这样,Mux模块就有了4个输入。
选中
displayoption:
none,可将Mux模块变成无黑色填充。
•将Mux模块的第二个输入和d/dt(r)信号相连(移动鼠标时按住Ctrl键即可绘制分岔线)。
•将Mux模块的第一个输入和r信号相连。
4)通过theta信号构造alpha和d/dt(alpha)信号:
•在窗口的左边,从source模块库中插入一个模块In1,改变名称为"
theta"
•从commonlyusedblocks中插入一个Gain模块并和theta模块相连,改变名称为
"
d/L"
•将Gain模块的输出和Mux模块的第三个输入相连,标注为"
alpha"
.
•从continuous模块库中插入一个Derivative模块,并置于alpha信号线的下面。
•将Derivative模块的输入和Gain模块的输出相连。
•将Derivative模块的输出和Mux模块的第四个输入相连。
得到如图2-4所示的球杆的simulink模型。
保存模型为"
ballbeam.mdl"
运行开环仿真可以得到系统的开环响应,下一步把它封装为一个子模块。
1theta
d/LGain
alpha
du/dt
Derivative
Mux
f(u)
Ball-beamLargrangianModel
1s
Integrator
d/dt(r)
1
sr1
r
Integrator1
5)封装子模块
图2-4球杆的simulink模型
•创建一个新的模型窗口(从Simulink的File菜单选择New或是按下Ctrl-N)。
•从commonlyusedblocks中模块库中插入一个“Subsystem”模块。
•双击Subsystem模块打开,可以看到一个新的模块窗口,标题为Subsystem。
•打开前面的ballbeam.mdl窗口,选择所有的模块和连线。
复制并粘贴到
Subsystem窗口中。
•关闭Subsystem窗口,可以看到一个没有标题的子模块,该模块有一个标识为“theta”的输入和一个标识为“r”的输出。
•选择模块并拖动角点,改变模块的大小,使得
•改变“Subsystem”的模块名称为"
BallandBeamModel"
6)运行开环仿,得到系统的开环响应
•从Sources模块库中插入一个“Step”模块,并将它和“BallandBeam”模块的输入相连。
•双击“Step”模块,修改“StepTime”为0,然后关闭。
•从“Sinks”模块中插入一个“Scope”模块,并将它和“BallandBeam”模块相连。
得到如图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)在MatLabSimulink中完成球杆系统的DataCollectionAndFilterDesign模型并运行,拨动小球在横杆上滚动,得到数据采集及滤波的实验结果,交Data.mdl图形文件。
2)在MatLabSimulink中完成球杆开环系统的simulink模型、封装模型和阶跃响应,结果要验收并放在实验报告中。
3)思考:
在MATLAB中,将球杆系统的simulink模型转化为相应的状态空间模型或是传递函数模型。
(MATLAB函数linmod(),ss2tf())
四、书写实验报告并提交
实验二球杆系统的PID法控制
一、实验原理
含有控制器、球杆系统结构和小球位置反馈的系统框图如下图3-1所示:
图3-1闭环比例控制结构图其中,Xd(s)为小球目标位置的拉普拉斯变换;
W(s)为球杆系统的传递函数,
W(s)=r(s)=mgd⋅1
;
PID控制器的传递函数为:
L(J+m)
K
ss
Ks2+K
s+K
GC(s)=KP
+I+K
sD
s=DPI
s2
其中,K,K
PI
和K为PID控制器的比例,积分和微分参数。
D
比例P控制可改变信号的增益但不影响其相位。
用于串联校正时,可提高系统的开环增益,减小稳态误差,但会降低稳定性。
PD控制用于串联校正时,可使系统增加一个开环零点(-1/τ),提高系统的相角裕度,有助于动态性能的改善。
PD控制用于串联校正时,可使系统增加一个开环极点和开环零点。
位于原点的开环极点可提高系统的型别,以消除或减小系统的稳态误差,而增加的负实数零点可缓和极点对系统的稳定性产生的不利影响。
PID控制:
选择适当的参数Ki和KD可使系统增加两个负实数零点和一个位于原点
的开环极点。
与PI控制器相比,除了同样具有提高系统稳态性能的优点外,还对提高系统的动态性能有更大的优越性。
1.P控制首先,分析在添加P控制器后,系统的闭环响应,然后,微分和积分控制器将在
需要时加。
P控制器为:
GP(s)=KP
闭环系统的传递函数为:
可以比较明显的看出,这是一个二阶系统。
(1)仿真
假设比例增益K=3,闭环系统的传递函数可以通过以下的MATLAB命令进行仿真。
P
J=2*m*R^2/5;
K=(m*g*d)/(L*(J/R^2+m));
%simplifiesinputnum=[-K];
den=[100];
plant=tf(num,den);
kp=3;
sys_cl=feedback(kp*plant,1);
step(0.2*sys_cl)在MATLAB环境下运行文件。
阶跃信号的响应如下图3-2所示:
图3-2P控制下的响应可以看出,添加P控制器后,系统并不能稳定。
改变Kp的值后,系统还是不稳
定的,可以看出,对于一个惯性系统,在P控制器作用下,系统会保持一个等幅振荡。
(2)实验
i.在MATLABSimulink环境下运行演示程序。
在Simulink中打开c:
\\programfile\matlab\2010a\toolbox\googoltech\ballbeam\BallBeamPID,运行PID程序,确认串行口COMPort为1后,双击StartRealControl模块,打开控制程序界面,如图3-3所示.
图3-3PID控制演示界面
ii.将控制器设置为P控制器。
iii.设置目标位置为200mm
iv.用手指将小球拨动到100mm的地方。
v.松开小球,系统将对小球的位置进行平衡。
vi.改变并观察其响应,实验结果如下,比较实验结果和仿真结果的区别。
(建议参数不要设置过大)
2.PD控制PD控制器的传递函数为:
闭环系统的传递函数为:
图3-4实验结果
GPD(s)=KP+KDs
X(s)=GPD(s)W(s)=c(KP+KDs)
(1)仿真
Xd(s)
1+GPD(s)W(s)
s+cKDs+cKP
令kp1=6,kd1=6,编写MATLAB的M文件,运行仿真观察阶跃响应的仿真结果。
仿真结果如图3-5所示。
可以看出,闭环系统是一个稳定的系统,但是超调和稳定时间都过大。
写出超调量σ1%和调整时间ts2。
改变控制参数KP2,KD2,编写MATLAB的M文件,运行仿真观察阶跃响应的仿真结果。
记录仿真曲线,计算超调量σ2%和调整时间ts2。
改变控制参数KP3,KD3,编写MATLAB的M文件,运行仿真观察阶跃响应的仿真结果。
记录仿真曲线,计算超调量σ3%和调整时间ts3。
由仿真运行曲线和性能指标,分析控制参数的作用。
(2)实验
图3-5PD控制时的球杆系统的单位阶跃响应
i.在MATLABSimulink中运行PID控制演示程序BallbeamPID。
ii.切换控制器为PD控制器,并设置参数:
kp=6,kd=6。
iv.移动小球的位置,使其大概在50mm的地方。
v.松开小球,系统将试图稳定小球的位置。
vi.观察其响应并记录响应图,计算性能指标。
vii.改变KP和KD,和matlab仿真设置相同,观察其响应并记录响应图,计算性
能指标并使其满足控制目标。
在PD控制器的作用下,系统可以很快的平衡,但是稳态误差比较大,分析小球
的位置改变和齿轮转动角度的变化之间的关系,对比实验结果和仿真结果的区别。
3.PID控制分析
图3-6PD控制器控制结果
PID控制器的传递函数为:
GPID
Ks2+Ks+K
(s)=DPI
s
闭环系统的传递函数如下所示:
3
X(s)=GPID(s)W(s)=c(KDs+KPs+KI)
1+GPID(s)W(s)
s+cKDs
+cKPs+cKI
设置控制参数:
KP1=10,KI1=1,KD1=10,编写MATLAB的M文件,运行仿真观察阶
跃响应的仿真结果。
记录仿真曲线,计算超调量σ1%和调整时间ts1。
改变控制参数:
KP2=10,KI2=1,KD2=20,编写MATLAB的M文件,运行仿真观察阶
记录仿真曲线,计算超调量σ2%和调整时间ts2。
改变控制参数:
KP3=15,KI3=1,KD3=40,编写MATLAB的M文件,运行仿真观察阶跃响应的仿真结果。
记录仿真曲线,计算超调量σ3%和调整时间ts3。
(2)实验
i.在MATLABSim
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动控制 球杆 系统 实验 指导书 资料