文档详情

单片机控制的角度和位移伺服系统 自动控制综合毕业设计 课程设计

沈***
实名认证
店铺
DOC
1.09MB
约32页
文档ID:156943039
单片机控制的角度和位移伺服系统 自动控制综合毕业设计 课程设计_第1页
1/32

自动控制综合设计——单片机控制的角度和位移伺服系统指导老师 专 业 姓 名 学 号 设计时间 年 月目录一、设计目的及意义··································1二、控制对象及控制目标······························12.1控制对象·····································12.2控制目标·····································3三、设计方案及总体思路·····························3 3.1系统总体设计图·······························3 3.2直流伺服电动机的静态特性···········4 3.3直流伺服电机的动态特性·······················5四、初步分析系统性能································6五、具体设计········································9 5.1内环设计·····································9 5.2外环设计····································13六、性能分析·······································18七、具体实现、单片机编程···························197.1离散化······································197.2单片机编程··································20八、工程设计法(最佳二阶阻尼比法)···················25九、设计结论········································26十、工作总结及心得体会······························27十一、参考文献······································28一、设计目的及意义(1)、理论联系实际,加强对自动控制理论的理解。

增强分析问题、解决问题的能力2)、熟悉MATLAB软件,掌握它在控制系统设计当中的应用,能熟练进行系统建模、性能分析、模型仿真等操作3)、用单片机进行编程,实现PID的控制算法,了解控制算法的具体实现及单片机软件仿真过程4)、开发创新意识,增进对科学技术的兴趣5)、培养严肃认真的科学态度二、控制对象及控制目标2、1控制对象大多数现代火车和交通工具采用电气牵引机车,火车的电气机车驱动装置速度控制部分的原理图2、1所示,可得到其传递函数功率放大器直流电动机传感器图2、1 机车驱动装置速度控制原理图装置采用转速计产生与速度成比例的电压信号,与分别为指令与速度信号检测值,于是差值信号放大器的输出为由于稳定时,此时希望系统调节系统部分不工作,即若令,则有,可得代入上式并进行Laplace变换得功率放大器的特性是非线性的,可以由来描述,平衡工作点是,于是采用小偏差线性化方法得线性化模型对增量进行Laplace变换得直流电机控制部分中的转动惯量为电动机转动轴惯量与负载折合至电动机转轴的等效惯量,为电动机所受粘性阻尼与折合至电动机轴的负载等效阻尼若电机负载部分的相关参数为,,,,,则有,,于是应用MATLAB编程得到机车驱动装置速度控制系统(即机械系统)的传递函数为:g1=540;g2=tf([10],[1 1]);g3=tf([1],[1 0.5]);g4=feedback(g2*g3,1);gs=feedback(g1*g4,0.1)Transfer function:5400---------------------s^2 + 1.5 s + 550.52、2控制目标(系统性能指标)(1)、单位阶跃响应时,调整时间少于 2 秒 (2)、超调量少于 5% (3)、稳态误差少于 1%三、设计方案及总体思路3、1系统总体设计图根据设计大纲的要求,本次设计的系统框图如下:机械系统积分环节电机传递函数PIPID控Gs(s)1/sGp(s) 速度环 — —位置环图3、1 系统总体设计图上图为最终设计图,控制系统采用串级控制。

分为主控回路(位置环)和副控回路(速度环),每个环节设计相应的控制器以及时纠正系统在工作过程中由于扰动或者其他因素引起的误差,确保系统精度和响应的快速性如果只用最外环(位置环)进行控制,误差将得不到及时的反馈和纠正,影响加工精度本设计运用PI控制方法(副控回路)和数字PID 控制方法(主控回路),分别对速度环和位置环进行设计,使系统满足设计要求的性能指标3、2直流伺服电动机的静态特性静态特性是指电动机在稳态情况下工作时,其转子转速、电磁力矩和电枢控制电压三者之间的关系图3、2 直流伺服电动机的静态特性原理图直流伺服电动机运行特性的一般表达式为:ω= Ua/(Ceφ)-Ra/(CeCmφ2)Tm在采用电枢电压控制时,令ωo= Ua/(Ceφ); k= Ra/(CeCmφ2)所以:ω=ωo-kTm此式即为电枢控制时,直流伺服电动机静态特性方程1)当Tm=0,即空载时,ω=ωo= Ua/(Ceφ) ωo:理想空载角速度(2)当ωo=0,即启动或堵转时,Tm=Td= Ua/(Ceφ) Td:启动转矩直流伺服电动机的机械特性表达式: ω=ωo -Ra/(CeCmφ2)Tm图3、3 机械特性图 图3、4 调节特性图直流伺服电动机的调节特性表达式:ω= Ua/(Ceφ)-kTm3、3直流伺服电机的动态特性直流伺服电动机的动态特性是指当给电动机电枢加上阶跃电压时,转子转动随时间的变化规律,用ω=f(t)描述。

建立其平衡方程:转矩T 与电流 I有关 ,电动势 e 与旋转速度有关,通过常数 Kt、Ke建立方程式在单输入单元中,Kt=Ke根据牛顿定律和基尔霍夫定理,可列出下列方程式:利用 Laplace 转换可以把上面的式子变换如下式:通过消除I(s) 我们就能得到开环传递函数, 其中转动速度作为输出,而电压作为输入根据增益K不同选值,我们可以看到电动机角速度的单位阶跃响应规律图3、5 电动机角速度的单位阶跃响应图从响应图上可以看出,当取不同值时,电动机角速度的过渡过程也不同在欠阻尼情况(0<ζ<1)下,电动机角速度的过渡过程是一个衰减的震荡过程;在临界阻尼情况(ζ=1)下,电动机角速度的过渡过程是一条指数曲线;在过阻尼情况(ζ>1)下,电动机角速度的过渡过程也是一条指数曲线,但过渡过程变长了因此,调整参数可以调整系统的电动机角速度的过渡过程四、初步分析系统性能根据设计大纲的要求采用永磁式小惯量直流电动机作为系统的执行元件,并采用具有恒转矩调速特点的电枢电压控制方式至于电机型号的选择,要根据生产现场的实际情况,进行电机功率估算、发热校核、转矩过载校核,确定电机相关参数,并查表选用最符合要求的电机型号。

具体设计步骤大致为: 1.功率估算:2、发热校核直流伺服电机的参数为:转子的旋转惯量 (J) = 0.01 kg.m^2/s^2 机械系统的阻尼比(b) = 0.1Nms 电磁力常数 (K=Ke=Kt) = 0.01 Nm/Amp 电阻 (R) = 1ohm电感 (L) = 0.5 H 输出半径r=0.1m 输入(V): 电压 输出(theta): 角速度转子和轴假设为刚性的电机的开环传递函数为, 其中转矩T作为输出,而电压作为输入运用MATLAB运算得到电机的传递函数:J=0.01;b=0.1;K=0.01;R=1;L=0.5;gp=tf([K],[J*L J*R+b*L b*R+K^2])Transfer function: 0.01---------------------------0.005 s^2 + 0.06 s + 0.1001而由前面可知机械系统的传递函数为从而应用MATLAB编程对系统进行初步分析gp=tf([0.01],[0.005 0.06 0.1001]);%电机传递函数gs=tf([5400],[1 1.5 550.5]) ;%被控对象传递函数g1=tf([1],[1 0]);g2=gp*gs*g1; %外环开环传递函数g3=feedback(g2,1); %外环闭环传递函数step(g3)图4、1 初始系统阶跃响应图>> bode(g2)图4、2 初始系统Bode图由图可知,显然系统是稳定,但响应时间太长,超调量为7.36%,大于2%,达不到设计要求,需加控制器进行改进,下面分别对速度环和位置环进行设计。

五、具体设计PID控制算法简单,结构改变灵活,技术成熟,适应性强,可靠性高,在控制工程中得到了广泛的应用PID的传递函数为:G(s)=Kp+Ki/s+Kd*s式中 Kp————比例系数 Ki————积分时间常数Kd————微分时间常数简单说来,PID控制器各校正环节的作用如下:(1) 比例环节 即时成比例地反映控制系统的偏差信号e(t),偏差信号一旦产生,控制器立即产生控制作用,以减少偏差2) 积分环节 主要用于消除静差,提高系统的无差度积分作用的强弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之则越强3)微分环节 能反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个早期的修正信号,从而加快系统的动作速度,减少调节时间PID控制的特殊情况:Kd=Ki=0 P控制Kd=0 PI控制Ki=0 PD控制PID控制器设计的根本任务是选择适当的三个参数Kp,Ki,Kd,有实验法和解析法两类方法,这次设计,我采用串级控制,参数整定采用实验法5、1内环设计内环选用PI控制器,为确定Kp,Ki,参数最佳,选择用MATLAB编程实现,再用MATLAB-SIMULINK建模与仿真检验。

syms Kpgp=tf([0.01],[0.005 0.06 0.1001]);%电机传递函数for Kp=[30:5:50]; g1=Kp*gp; w1=feedback(g1,1); step(w1) hold onend图5、1 内环系统Kp调节图从上图所示,随着Kp的增大超调量变大,响应也越来越快,但系统的振荡也越来越厉害,选择Kp=45较为合适固定Kp=45,Ki用MATLAB-SIMULINK建模与仿真比较试验:syms KiKp=45;gp=tf([0.01],[0.005 0.06 0.1001]);%电机传递函数g1=tf([1],[1 0]);for Ki=[40:2:50]; g2=(Kp+Ki*g1)*gp; w2=feedback(g2,1); step(w2) hold onend图5、2 内环系统Ki调节图从上图所示,随着Ki的增大超调量变大,响应加快,但系统的稳态误差也越来越大,选择Ki=48较为合适最终确定内环PI控制参数为Kp=45,Ki=48;整个内环设计中参数满足单位阶跃响应时系统超调量少于5%,稳态误差等于1%,调整时间接近于2,所以需要加外环来辅助控制,以更加至于满足系统性能要求,使系统更优美。

再使用MATLAB-SIMULINK建模仿真:图5、3 内环系统仿真图响应结果为:图5、4 内环系统阶跃仿真图超调量小于5%,响应时间小于2秒,系统稳定进一步用MATLAB 分析:gp=tf([0.01],[0.005 0.06 0.1001]);%电机传递函数pi=tf([45 48],[1 0]);g0=gp*pi;g1=feedback(g0,1);step(g1)图5、5 内环设计阶跃响应图图5、6 内环设计Bode图5、2外环设计外环选用PID控制器,为确定Kp,Ki,Kd,参数最佳,选择用MATLAB编程实现,再用MATLAB-SIMULINK建模与仿真检验syms Kpg1=tf([0.45 0.48],[0.005 0.06 0.5501 0.48]);%内环设计传递函数g2=tf(1,[1,0]);gs=tf([5400],[1 1.5 550.5]) ;%被控对象传递函数for Kp=[0.2:0.1:1]; g3=Kp*g1*g2*gs; w1=feedback(g3,1); step(w1) hold onend图5、7 外环系统Kp调节图从上图所示,随着Kp的增大超调量变大,响应也越来越快,但系统的振荡也越来越厉害,故系统取Kp=0.3~0.4的值比较好,选择Kd=0.385合适。

固定Kp=0.385,Ki用MATLAB-SIMULINK建模与仿真比较试验:syms Kig1=tf([0.45 0.48],[0.005 0.06 0.5501 0.48]);%内环设计传递函数g2=tf(1,[1,0]);gs=tf([5400],[1 1.5 550.5]) ;%被控对象传递函数for Ki=[0.01:0.02:0.1]; p1=tf([0.385 Ki],[1 0]); g3=p1*g1*g2*gs; w2=feedback(g3,1); step(w2) hold on end 图5、8 外环系统Ki调节图从上图所示,随着Ki的增大超调量变大,响应也越来越快,但系统的振荡也越来越厉害,故系统取Ki=0.003~0.005的值比较好,选择Ki=0.0039合适固定Kp=0.385,Ki=0.0039,Kd用MATLAB-SIMULINK建模与仿真比较试验:syms Kdg1=tf([0.45 0.48],[0.005 0.06 0.5501 0.48]);%内环设计传递函数g2=tf(1,[1,0]);gs=tf([5400],[1 1.5 550.5]) ;%被控对象传递函数for Kd=[0.0001:0.0002:0.001]; p1=tf([Kd 0.385 0.0039],[1 0]); g3=p1*g1*g2*gs; w3=feedback(g3,1) step(w3) hold on end图5、9 外环系统Kd调节图从上图所示,随着Kd的增大超调量变大,响应也越来越快故系统取Ki=0.0005~0.0007的值比较好,选择Ki=0.0006合适。

最终确定外环PID控制参数为Kp=0.385,Ki=0.0039,Kd=0.0006;整个外环设计中参数满足单位阶跃响应时系统超调量少于5%,稳态误差等于1%,调整时间小于2s,满足系统性能要求再使用MATLAB-SIMULINK建模仿真:图5、10 外环系统阶跃仿真图响应结果为:图5、11 内环系统阶跃仿真图超调量小于5%,响应时间小于2秒,系统稳定六、性能分析时域分析 画出系统的阶跃频域分析 画出BODE图和零极点分布图具体程序如下:g1=tf([0.45 0.48],[0.005 0.06 0.5501 0.48]);%内环设计传递函数g2=tf(1,[1,0]);%积分环gs=tf([5400],[1 1.5 550.5]) ;%被控对象传递函数pid=tf([0.385 0.0039 0.0006],[1 0]);g0=g1*g2*gs*pid;g1=feedback(g0,1);step(g1)bode(g1)pzmap(g0)%零极点分布图图6、1 系统阶跃响应图图6、2 系统Bode图图6、3 系统零极点分布图由以上各图可以看出,系统性能很好,所以,PID各参数定为:外环kp=0.385,ki=0.0039。

kd=0.0006;内环kp=45,ki=48下面将系统进行离散化七、具体实现、单片机编程7、1 离散化具体程序如下:g1=tf([5400],[1 1.5 550.5]); %机械系统传递函数g2=tf([0.48 0.45],[0.005,0.06,0.5501 0.48]); %内环传递函数g3=tf(1,[1,0]); %积分环pid=tf([0.385 0.0039 0.0006],[1 0]); %外环PID控制器g4=g1*g2*gs*pid;%系统开环传递函数g5=feedback(g0,1); %系统闭环传递函数g6=c2d(g5,0.01)Transfer function: 7.59e-005 z^6 + 0.0005848 z^5 - 0.001409 z^4 + 4.616e-005 z^3 + 0.001345 z^2 - 0.0005735 z- 6.969e-005 -------------------------------------------------------- z^7 - 6.807 z^6 + 19.92 z^5 - 32.47 z^4 + 31.85 z^3 - 18.8 z^2 + 6.182 z - 0.8737Sampling time: 0.01step(g6,g5)图7、1 系统离散化阶跃响应图7、2单片机编程传统的PID控制器的动作规律为: (7-1)其中,——偏差;——比例增益系数;——积分增益系数;——微分增益系数。

为了用计算机实现PID控制规律,必须将连续形式的微分方程变成离散形式的差分方程,设T为采样周期(T=0.01);用矩形求和的方法近似积分作用,用向后差分的方法近似微分作用,即:于是,(7-1)式可改写为下面的差分方程形式: (7-2)将上式进行Z变换,由于: 于是,(7-1)式的Z变换可以写成如下形式:于是,得到PID控制规律的脉冲传递函数形式为:式中:; ;;PID 控制器的控制原理可以用下图描述:Kpu(Kt)e(Kt)KiT(z+1)a(z-1)U(z)E(z)Kd(z-1)Tz图7、2 PID控制原理图前面给出了PID控制规律的算法,但是如果按(7-2)式计算u(k),输出值与过去的所有状态都有关系,计算时就需要占用大量计算机的内存和计算时间,这对用于实时控制的计算机来说非常不利,为此将(7-2)式改写成递推形式根据(7-2)式写出系统在第k-1个采样时刻的输出值为: (7-3)用(7-2)式两边减(7-3)式,得到:(7-4)按照(7-4)式计算采样时刻k的输出量u(k),只需要知道采样时刻k、k-1、k-2上的偏差值,和k-1时刻的输出值,因此大大节约了计算机的内存和计算时间。

但是按照上式进行计算,计算机每输出u(k)一次,就需要作四次加法,两次减法,四次乘法和两次除法若将该式整理成如下的形式:式中的a0,a1,a2的定义与前面相同,它们是常数 ,可以算出开始初始化取给定值、反馈值形成偏差取a0,e(k)作乘法取a1,e(k-1)作乘法取a2,e(k-2)作乘法作u(k-1) +a2*e(k-2)-a1*e(k-1)+a0*e(k)输出u(k)数据传送u(k)→u(k-1)e(k)→e(k-1)e(k-1)→e(k-2)延时一个周期图7、3 PID控制器程序框图单片机上的PID算法程序如下:Uk0 DATA 51H ; u(k-1)地址 Uk1 DATA 52H ; u(k)地址 Ek0 DATA 62H ; e(k-2)地址 EK1 DATA 61H ;e(k-1)地址 EK2 DATA 60H ; e(k)地址 ORG 00H AJMP START ORG 30HSTART: MOV SP,#30HLOOP: MOV EK2,P3 ;取P3口的偏差e(k) MOV R0,#Ek2 ;R0存放e(k)地址 MOV A,@R0 MOV R7,A ;R7存放e(k)值 MOV B,#a0 MUL AB ;a0,e(k)作乘法 MOV R5,A ;乘积放入R5 MOV R0,#EK1 MOV A, @R0 MOV R6,A ;R6存放e(k-1)值 MOV B, #a1 MUL AB ;a1,e(k-1)作乘法 MOV R4,A ;乘积放入R4 MOV R0,#EK0 MOV A, @R0 MOV B, #a2 ; MUL AB ;a2,e(k-2)作乘法 SUBB A, R4 ADD A, R5 MOV R5,A ;R5存放a2*e(k-2)-a1*e(k-1)+a0*e(k)值 ADD A, Uk0 ;相加后A为u(k) MOV P1,A ;输出u(k) MOV Uk0,A ;u(k)赋给u(k-1) MOV EK0,EK1 ;e(k-2)赋给e(k-1) MOV EK1,EK2 ;e(k)赋给e(k-1) LCALL DELAY ;调用延时一个周期的子程序 SJMP LOOP END八、工程设计法(最佳二阶阻尼比法)设计的系统框图如下DsG0s图8、1 工程设计法下的系统结构图采用数字控制器的模拟化设计g1=tf([0.01],[0.005 0.06 0.1001]);%电机传递函数g2=tf([5400],[1 1.5 550.5]) ;%被控对象传递函数gs0=g1*g2Transfer function: 54----------------------------------------------------0.005 s^4 + 0.0675 s^3 + 2.943 s^2 + 33.18 s + 55.11>> gs1=zpk(gs0)Zero/pole/gain: 10800-----------------------------------------(s+9.997) (s+2.003) (s^2 + 1.5s + 550.5)设 即要求满足等式: 解方程得:则时域分析与频率分析gs=tf([1],[0.4985 0.9985 0])Transfer function: 1---------------------0.4985 s^2 + 0.9985 sbode(gs)g1=feedback(gs,1)Transfer function: 1-------------------------0.4985 s^2 + 0.9985 s + 1>> step(g1)图8、2 工程设计法下的Bode图和阶跃响应图比较:从bode图和step响应图看,PID设计效果更好,但二阶工程法设计较简便。

九、设计结论此次设计外环参数kp=0.385,ki=0.0039,kd=0.0006;内环参数kp=45,ki=48;系统超调量小于5%较好;调整时间、稳态误差都能满足系统性能指标根据SIMULINK仿真和MATLAB编程实现调整确定参数,最后结果满足性能要求,但此次PID控制的参数是通过试验法调整的,参数未必最好,整个系统抗干扰能力不强,在抗干扰方面希望得到改进十、工作总结及心得体会为时一个月的课程设计让我受益匪浅此次设计从设计大纲着手开始清楚自己设计的任务与目的首先明确自己的控制对象,由于经过查阅相关资料和文献书籍确定了火车机车驱动装置速度控制为控制对象在开始做时思维很模糊,不知从何下手,随着时间的消耗,越来越明确自己设计的方向,从着手的恍惚到后来越渐清晰,并最终完成了设计通过这次设计,有很多新的收获,现总结如下:(1)万事开头难,但也只是“开头难”,只要用心,再难的事情也能解决,做设计必须明确自己的目标,要有步骤的完成当遇到难题时切忌着急,应找出自己错的地方以便改正,不能马虎,尤其对待科学,更应具备严肃认真的科学态度;(2)与别人一起探讨很重要我深刻体会到:集体的智慧是无限的三人行,必有我师,无论是老师,还是同学,只要勤于发问,乐于探讨,总能找到更好的解决问题的办法,发现更深一层的问题,这对启迪思维和开发创新意识是很有帮助的;(3)调节PID的参数我运用的是串级控制的两步法:先整内环,再整主环的参数,根据Kp,Ki,Kd三参数的作用整定,采用试凑法PID整定参数时,发现对响应曲线变化影响较大的那个参数(此时曲线已经基本满足要求),用for循环,细微改变参数值,选出最好的曲线对应的参数值。

不知可否用for循环同时循环改变两个参数的值,画出更多曲线选出最优的;(4)打算用状态空间极点配置法设计,但不知能系统的状态空间表达式;故采用二阶工程设计法设计,但其控制效果不如用PID算法的效果好这次控制器的设计,引发了我的很多思考对控制对象施以控制的要求,以及具体实现后,在现实生活中的可以用具体事物实现这次设计让我在理论与实际之间的概念转换上得到很大的启发还有就是任何一项设计的具体实现是需要我们的耐心和细心十一、参考文献[1] 姜学军、刘新国等,计算机控制技术(第2版),北京:清华大学出版社,2009.7[2] 张若青、罗学科等,控制工程基础及MATLAB实践,北京:高等教育出版社,2008.2[3] 张德丰,MATLAB控制系统设计与仿真,北京:电子工业出版社,2009.6[4] 张德丰,MATLAB自动控制系统设计,北京:机械工业出版社,2010.1[5] 冯巧玲,吴娟等,自动控制原理(第2版),北京:北京航空航天大学出版社,2007.12[6] 唐介,电机与拖动(第二版),北京:高等教育出版社,2007.12[7] 李广弟、朱月秀等,单片机基础(第3版),北京:北京航空航天大学出版社,2007.6。

[8] 薛定宇,控制系统计算机辅助设计,北京:清华大学出版社2005.10。

下载提示
相关文档
正为您匹配相似的精品文档