电机拖动与运动控制综合设计报告-基于状态观测器单级倒立摆控制系统的设计.docx_第1页
电机拖动与运动控制综合设计报告-基于状态观测器单级倒立摆控制系统的设计.docx_第2页
电机拖动与运动控制综合设计报告-基于状态观测器单级倒立摆控制系统的设计.docx_第3页
电机拖动与运动控制综合设计报告-基于状态观测器单级倒立摆控制系统的设计.docx_第4页
电机拖动与运动控制综合设计报告-基于状态观测器单级倒立摆控制系统的设计.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*学院课程设计报告电机拖动与运动控制综合设计院 系:自动化学院题 目:基于状态观测器单级倒立摆控制系统的设计班 级:自动化*姓 名:*学 号:*时 间:*指导老师:*目录前言11 倒立摆系统的组成与工作原理12 倒立摆系统的控制目标13 建立单级倒立摆系统的状态空间模型14 基于状态观测器的状态反馈极点配置34.1 系统能控性和能观性的判断34.2 系统和状态观测器极点的配置34.3 状态反馈矩阵和状态观测器矩阵45 倒立摆系统仿真模型以及Simulink仿真45.1 倒立摆Simulink仿真模型45.2 倒立摆Simulink仿真曲线图56 倒立摆系统Matlab仿真动态模型66.1 运动中倒立摆小车仿真效果图66.2 稳定后倒立摆小车仿真效果图67 总结7参考文献7附录7倒立摆系统MATLAB2007仿真动态模型代码7基于状态观测器单级倒立摆控制系统的设计前言倒立摆系统式日常生活中所见到的重心在上支点在下的控制问题的抽象,对其机理的研究具有重要的应用意义。倒立摆系统是非线形、强耦合、多变量和自然不稳定的系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。倒立摆系统具有生动直观的教学特点,在研究方面,也具有重要的价值,如航空航天控制、机器人等等,都存在类似于倒立摆的控制问题。1 倒立摆系统的组成与工作原理下面为一级倒立摆系统为例,说明倒立摆系统的工作原理,如下图所示,倒立摆系统是由工程机、运动控制模块、伺服电机与驱动器、倒立摆本体和位置传感器等几大部分构成的一个闭环系统。图 1倒立摆系统的组成与工作原理在图中,位置传感器l为伺服电机自带的光电编码器,对于直线型倒立摆,可以根据该码盘的反馈通过换算获得小车的位移,小车的速度信号可以通过差分法得到;摆杆的角度由位置传感器2测得并直接反馈到控制卡,速度信号可以通过设计观测器获得(或者通过差分方法得到)。计算机从运动控制卡中实时读取数据,确定控制决策(小车向哪个方向移动、移动速度、加速度等),并发送给运动控制卡。运动控制卡经过DSP内部的控制算法实现决策,产生相应的控制量,驱动电机转动,从而带动小车运动,保持摆杆平衡。 2 倒立摆系统的控制目标倒立摆的控制目标就是在忽略执行电机的惯性以及摆轴、轮轴、轮与接触面之间的摩擦力及风力的理想环境下,使摆杆尽快地达到一个动态平衡位置,并且使角度和速度变化量不大。当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。3 建立单级倒立摆系统的状态空间模型单级倒立摆系统如下图所示,其中,摆杆长度为 L,摆球质量(包括摆杆的质量)为 m,小车的质量为 M。在水平方向施加控制力 u,相对参考系产生位移为 y。为了简化问题并且保其实质不变,忽略执行电机的惯性以及摆轴、轮轴、轮与接触面之间的摩擦力及风力。图 2 单级倒立摆系统设该系统的动态特性可以用小车的位移和速度及杆偏离垂线的角度和角速度来描述。摆球质心坐标为:yG=y+Lsin zG=Lcos在 y 轴方向上应用牛顿第二定律得到以下方程:Md2dt2y+md2dt2y+Lsin=u (1)而微分方程:ddtsin=cosd2dt2sin=cos-2sinddtcos=-sind2dt2cos=-2cos-sin代入(1)式,化简为:M+my-mL2sin+mLcos=u (2)倒立摆在转动方向上,其转矩平衡方程为:md2yGdt2Lcos-md2zGdt2Lsin=mgLsin (3)或md2dt2y+LsinLcos-md2dt2LcosLsin=mgLsin (4)化简后得:mycos+mL=mgsin (5)线性化:当和较小时 ,有和较小时 ,有sin0cos10式(2)经过线性化处理后得: M+my+mL=u (6)式(5)经过线性化处理后得: my+mL=mg (7)选择状态变量:x1=, x2=, x3=y, x4=y。则其空间表达式为x1x2x3x4=0100M+mgML0000001-mgM000x1x2x3x4+0-1ML01Mu, y1y2=10000010x1x2x3x44 基于状态观测器的状态反馈极点配置设L=0.8m, M=5Kg ,m=0.5Kg , g=9.8ms2。则系统的状态空间表达式为x1x2x3x4=010013.4750000001-0.98000x1x2x3x4+0-0.2500.2u, y1y2=10000010x1x2x3x4其中,u为输入,y为输出。4.1 系统能控性和能观性的判断接下来使用matlab2007和线性系统的能控性判据,通过是否为满秩来判断能控性。程序如下:%系统能控性和能观性判断A = 0 1 0 0;13.475 0 0 0;0 0 0 1;-0.98 0 0 0;B = 0;-0.25;0;0.25;C = 1 0 0 0;0 0 1 0;Rc = rank(ctrb(A,B)ro = rank(obsv(A,C)语句运行结果为:12rc = 4ro = 4这表明系统能控性矩阵满秩,系统能控,可以进行状态反馈极点配置;能观性矩阵满秩,系统能观可以设计状态观测器。因此,可以设计具有状态观测器的状态反馈控制系统。4.2 系统和状态观测器极点的配置在matlab2007的工作窗口输入如下的命令:eig(A),计算出系统矩阵A的特征值为:设计状态观测器矩阵,使的特征值的实部均为负,且其绝对值要大于状态反馈所配置极点的绝对值。因此,可以配置控制系统的极点为:-5、-5.2、-5.6、-6,并且可设计状态观测器的极点为:-20、-21、-22、-23。4.3 状态反馈矩阵和状态观测器矩阵输入如下命令:P = -5 -5.2 -5.6 -6;K = place (A,B,P) %状态反馈矩阵KP1 = -20 -21 -22 -23;G1 = place (A,C,P1);G = G1 %状态观测器矩阵G得到状态反馈矩阵为:得到状态观测器的矩阵为:即:G=42.851.04471.8322.390.9443.15-19.17464.64, K=-1050.8-297.6-356.6-263.05 倒立摆系统仿真模型以及Simulink仿真5.1 倒立摆Simulink仿真模型采用MATLAB/Simulink构造基于状态观测器一级倒立摆状态反馈控制系统的仿真模型,如下图所示。图 3 单级倒立摆Simulink仿真模型5.2 倒立摆Simulink仿真曲线图首先,在MATLAB的Command Window中输入矩阵A,B,C,G和K的值,并且在模型中的积分器中设置非零初值,这里设置积分器Integrator的初值为1;0;0;0,积分器Integrator1的初值为1;0;-1;0。然后运行仿真程序,得到的仿真曲线。图 4基于状态观测器的单级倒立摆系统状态控制仿真曲线图从上图仿真结果可以看出,可以将倒立摆的杆子与竖直方向的偏角控制在=0(即小球和杆子被控制保持在竖直倒立状态),并且小车最终停留在坐标原点上。其中绿色线表示角度,黑色线表示角速度,红色线表示位移,蓝色线表示速度。6 倒立摆系统Matlab仿真动态模型6.1 运动中倒立摆小车仿真效果图在系统的仿真过程中,小车左右移动,位移和摆球的角度逐渐减小,最终达到一个动态平衡状态,运行中的倒立摆小车仿真效果如下:图 5 运动中的倒立摆小车6.2 稳定后倒立摆小车仿真效果图在闭环的系统控制中,倒立摆系统的位移和角度趋于零,最终达到动态平衡状态,其稳定后倒立摆小车仿真效果图如下:图 6 稳定后的倒立摆小车7 总结本次课程设计主要选题是基于状态观测器单级倒立摆控制系统的设计。通过对一级倒立摆系统的状态反馈极点配置设计和倒立摆系统的建模,实现了系统的能控性和能观性进行了分析。通过本次电机拖动与运动控制综合设计,我对课本自动控制原理、过程控制系统与仪表和电机与拖动等理论基础知识的认识和理解有了进一步的提高。课程设计是我们专业课程知识综合应用的实践训练,其提高了综合运用各门知识分析问题,解决问题的能力。运用本专业所学课程的理论和生产实际知识来独立完成本次课程设计。总言而之,通过本次的课程设计,我受益颇多,巩固和掌握了许多相关的专业知识。参考文献1 赵广元MATLAB与控制系统仿真实践M北京:北京航空航天大学出版社,20112 张德江计算机控制系统M北京,机械工业出版社,20153 程鹏自动控制原理(第二版)M北京:高等教育出版社,20094 阮毅,陈伯时电力拖动自动控制系统运动控制系统第4版M北京:机械工业出版社,20145 赵士鑫.基于状态观测器的倒立摆控制系统的设计与研究J.中国优秀硕士学位论文全文数据库,2016,(1):7-19.附录倒立摆系统MATLAB2007仿真动态模型代码%单级倒立摆小车控制系统动态模型A = 0 1 0 0;13.475 0 0 0;0 0 0 1;-0.98 0 0 0;%设置倒立摆小车控制系统参数B = 0;-0.25;0;0.2;C = 1 0 0 0;0 0 1 0;K = -1050.8 -297.6 -356.6 -263.0 ;G = 42.85 1.04;471.83 22.39;0.94 43.15;-19.17 464.64;sim(CAR.mdl); %运行倒立摆小车控制系统simulink模型CAR.mdlmidpoint=0; %系统的底座中点,单位:mH_PULLEY = 0.14; %滑轮的直径,单位:mH_CAR = 0.4; %小车车体高度,单位:mH_WHEEL = 0.08; %小车轮子直径,单位:mL = 0.8; %倒立摆杆长度,单位:mLINEWIDTH = 4.0; %画倒立摆杆的线粗CARWIDTH = 3.0; %画车体的线粗ARROWWIDTH = 2.5; %画车体行车方向箭头的线粗PULLYWIDTH = 2; %画滑轮的线粗TRACKWIDTH = 2.5; %轨道的线粗 BELTWIDTH = 1.5; %尼龙带的线粗N = length(yout.signals.values); %仿真得到的采样数据点个数for i=1:N %FOR循环画出倒立摆小车控制过程的动画 clf; y = yout.signals.values(i,1); theta = yout.signals.values(i,2)*pi/180; y_line = y+L*sin(theta); %摆杆顶端坐标(y_line,z_line) z_line = L*cos(theta)+H_CAR;plot(y+0.04),(y+0.3),(y+0.3),(y-0.3),(y-0.3),(y-0.04),H_CAR,H_CAR,H_WHEEL,H_WHEEL,H_CAR,H_CAR,b,LineWidth,CARWIDTH);%画车体 hold on plot(y,y,H_CAR,H_CAR+L+0.2,-k,LineWidth,1);%画垂直虚线 hold on %画车体中间的半圆 r = 0.04; hseta = 0:0.001:pi; %步长 yh = y+r*cos(hseta); zh = H_CAR+r*sin(hseta); plot(yh,zh,b,LineWidth,CARWIDTH); hold on; %画两个车轮 yl_circle = y-0.2; yr_circle = y+0.2; z_circle = H_WHEEL/2; r = H_WHEEL/2; seta = 0:0.001:2*pi; yyl = yl_circle+r*cos(seta); yyr = yr_circle+r*cos(seta); zz = z_circle+r*sin(seta); plot(yyl,zz,yyr,zz,b,LineWidth,CARWIDTH); hold on; plot(y,y_line,H_CAR,z_line,r,LineWidth,LINEWIDTH); %画单摆杆 hold on; r_ball = 0.05; %画摆球,设置半径 y_ball = y_line + r_ball * cos(seta); z_ball = z_line + r_ball * sin(seta); fill(y_ball,z_ball,r); %对摆球填充颜色为红色 hold on; %画四个滑轮 L_BODY = 3; %机座主体长度的一半 pl_circle = midpoint - L_BODY; %左滑轮pully的横坐标,其中2.5为机座的长度的一半 pr_circle = midpoint + L_BODY; %右滑轮pully的横坐标 up_circle = (H_CAR+H_WHEEL-H_PULLEY)/2 ; %上滑轮高度 down_circle = -0.5; %下滑轮的高度 r_p = H_PULLEY/2; %滑轮的半径 seta = 0:0.001:2*pi; %画圆步长 ypl = pl_circle + r_p*cos(seta); ypr = pr_circle + r_p*cos(seta); zup = down_circle + r_p*sin(seta); %上滑轮画圆函数 zdp = up_circle + r_p*sin(seta); plot(ypl,zup,ypr,zup,b,LineWidth,PULLYWIDTH); hold on; plot(ypl,zdp,ypr,zdp,b,LineWidth,PULLYWIDTH); hold on; %画轨道track线 pl_track = pl_circle + (H_CAR+H_WHEEL-H_PULLEY)/2; %轨道左端点 pr_track = pr_circle - (H_CAR+H_WHEEL-H_PULLEY)/2; %轨道右端点 plot(pl_track pr_track,0 0,k,LineWidth,TRACKWIDTH); hold on; plot(pl_track pl_circle,0 up_circle,k,LineWidth,TRACKWIDTH); hold on; plot(pr_track pr_circle,0 up_circle,k,LineWidth,TRACKWIDTH); hold on; plot(pl_circle pr_circle,down_circle down_circle,k,LineWidth,TRACKWIDTH); hold on; %画尼龙带线belt plot(pl_circle - r_p) (pl_circle - r_p),up_circle down_circle,b,LineWidth,BELTWIDTH); hold on; plot(pr_circle + r_p) (pr_circle + r_p),up_circle down_circle,b,LineWidth,BELTWIDTH); hold on; plot(pl_circle pr_circle,(down_circle-r_p) (down_circle-r_p),b,LineWidth,BELTWIDTH); hold on; %画尼龙带运动动态显示标志 B_Length = L_BODY * 0.2; %尼龙带运动动态显示线段长度,为机座主体长度的一半的20%,即机座主体长度的10% Dist = L_BODY * 0.05; %尼龙带运动动态显示标志与车体的距离 Bl1 = y - 0.3 - Dist; %左边尼龙带端点1,其中0.3为车体长度的一半 Bl2 = y - 0.3 - Dist -B_Length ; %左边尼龙带端点2,其中0.3为车体长度的一半 Br1 = y + 0.3 + Dist; %右边尼龙带端点1 Br2 = y + 0.3 + Dist + B_Length; %右边尼龙带端点2 if Bl2(midpoint - L_BODY) & Br2(midpoint + L_BODY) %尼龙带动态显示标志完全在轨道上 plot(Bl1 Bl2,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,g,LineWidth,BELTWIDTH); hold on; plot(Br1 Br2,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,y,LineWidth,BELTWIDTH); hold on; plot(pl_circle Bl2,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,b,LineWidth,BELTWIDTH); hold on; plot(y - 0.3 Bl1,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,b,LineWidth,BELTWIDTH); hold on; plot(pr_circle Br2,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,b,LineWidth,BELTWIDTH); hold on; plot(y + 0.3 Br1,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,b,LineWidth,BELTWIDTH); hold on; end if Bl2(midpoint + L_BODY) %尼龙带运动动态显示标志偏离在轨道右侧 plot(Bl2 pl_circle,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,b,LineWidth,BELTWIDTH); hold on; plot(Bl1 Bl2,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,g,LineWidth,BELTWIDTH); hold on; plot(y - 0.3 Bl1,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,b,LineWidth,BELTWIDTH); hold on; plot(y + 0.3 Br1,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,b,LineWidth,BELTWIDTH); hold on; plot(pr_circle Br1,(H_CAR+H_WHEEL)/2 (H_CAR+H_WHEEL)/2,y,LineWidth,BELTWIDTH); hold on; end if i1 & i yout.signals.v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论