自动控制球杆系统实验指导书资料.docx

上传人:b****5 文档编号:7485397 上传时间:2023-01-24 格式:DOCX 页数:34 大小:936.42KB
下载 相关 举报
自动控制球杆系统实验指导书资料.docx_第1页
第1页 / 共34页
自动控制球杆系统实验指导书资料.docx_第2页
第2页 / 共34页
自动控制球杆系统实验指导书资料.docx_第3页
第3页 / 共34页
自动控制球杆系统实验指导书资料.docx_第4页
第4页 / 共34页
自动控制球杆系统实验指导书资料.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

自动控制球杆系统实验指导书资料.docx

《自动控制球杆系统实验指导书资料.docx》由会员分享,可在线阅读,更多相关《自动控制球杆系统实验指导书资料.docx(34页珍藏版)》请在冰豆网上搜索。

自动控制球杆系统实验指导书资料.docx

自动控制球杆系统实验指导书资料

 

自动控制综合实验2实验指导书

 

Part1

 

球杆系统GBB1004

 

 

北京邮电大学自动化学院

林雪燕

2016.5.24

前言

自动控制是一门理论与实践并重的技术,在成功掌握了理论知识(经典控制、现代控制)的同时再配合做一些经典的自动控制实验,从而加深对自动控制的理解与掌握,为今后从事自动控制的设计和研究工作打下扎实的基础。

为了更好地配合理论教学,达到理论与实践完美的结合,将自动控制相关的实验独立设置成一门实验课:

自动控制综合实验。

自动控制理论实验主要目的是通过实验进一步理解自动控制理论的基本概念,熟悉和掌握控制系统的分析方法和设计方法,掌握常用工程软件使用,如MATLAB、LabVIEW等。

上学期开设的自动控制综合实验

(1)主要内容为控制系统的Matlab/simulink仿真和基于实验箱的硬件模拟,以电路系统为研究对象。

本学期开始的自动控制综合实验

(2)的内容是基于典型控制理论实验设备(球杆系统和倒立摆系统),熟悉和掌握控制系统的分析和设计方法。

球杆系统机械简单,结构紧凑,安全性高,采用智能伺服驱动模块和Windows程序界面,可用于教学或科研。

对于自动控制理论等课程来说,针对设备的非线性与不稳定性特点,设计有效的控制系统是项有意义的工作。

球杆系统要完成的实验有:

实验一:

小球位置的数据采集处理实验二:

球杆系统的PID法控制实验三:

球杆系统的根轨迹法控制实验四:

球杆系统的频率响应法控制

 

倒立摆是一个典型的不稳定系统,同时又具有多变量、非线性、强耦合的特性,是自动控制理论中的典型被控对象。

运用控制手段可使之具有一定的稳定性和良好的性能。

许多抽象的控制概念如控制系统的稳定性、可控性、系统收敛速度和系统抗干扰能力等,都可以通过倒立摆系统直观的表现出来。

倒立摆系统要完成的实验有:

实验五:

倒立摆的数学建模及稳定性分析实验六:

倒立摆的状态反馈控制实验七:

不同状态下状态反馈控制效果比较实验八:

倒立摆的LQR控制

同学们完成实验后,要完成相应的实验报告,并及时提交。

实验报告内容包含实验名称、实验目的、实验内容、实验要求、实验原理、实验设备及仪器、实验步骤、实验结果及分析、问题回答、心得体会、附上必要的实验原程序。

成绩评定:

考勤10+实验过程表现40+实验报告50=100分

简介

球杆系统机械简单,结构紧凑,安全性高,采用智能伺服驱动模块和Windows程序界面,可用于教学或科研。

对于自动控制理论等课程来说,针对设备的非线性与不稳定性特点,设计有效的控制系统是项有意义的工作。

球杆系统主要由以下部分组成,如下图0-1所示:

À机械部分(包含直流伺服电机和电源):

通过电机调整横杆的倾斜角,使小球稳定平衡在横杆的某一位置;

À智能伺服驱动:

控制箱内的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)

R2

mgdθ

J

L(+m)

R2

(3)

2

=

拉氏变换得:

r(s)=mgd⋅1

0.7

2

(4)

θ(s)

L(J+m)ss

R2

球杆系统是一个典型的单输入单输出系统,其传递函数可以近似为一个两阶的

积分器。

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模块并和"r"信号线连接。

这就是系统的输出。

•更改"Out"的标识为"r"。

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)为球杆系统的传递函数,

2

=

W(s)=r(s)=mgd⋅1

0.7

2

(4)

;PID控制器的传递函数为:

θ(s)

L(J+m)

R2

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

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));%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

2

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。

iii.设置目标位置为200mm

iv.移动小球的位置,使其大概在50mm的地方。

v.松开小球,系统将试图稳定小球的位置。

vi.观察其响应并记录响应图,计算性能指标。

vii.改变KP和KD,和matlab仿真设置相同,观察其响应并记录响应图,计算性

能指标并使其满足控制目标。

在PD控制器的作用下,系统可以很快的平衡,但是稳态误差比较大,分析小球

的位置改变和齿轮转动角度的变化之间的关系,对比实验结果和仿真结果的区别。

3.PID控制分析

图3-6PD控制器控制结果

 

PID控制器的传递函数为:

GPID

Ks2+Ks+K

(s)=DPI

s

闭环系统的传递函数如下所示:

2

3

2

X(s)=GPID(s)W(s)=c(KDs+KPs+KI)

(1)仿真

Xd(s)

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1