基于双闭环PID控制的一阶倒立摆控制系统设计 - 图文
更新时间:2023-12-27 20:11:01 阅读量: 教育文库 文档下载
基于双闭环PID控制的一阶倒立摆控制系统设计
福州大学至诚学院
题 目:姓 名:系 别:专 业:
本科生课程设计
基于双闭环PID控制的一阶
倒立摆控制系统设计
电气工程及其自动化
电气工程与自动化
目 录
1 任务概述-----------------------------------------------------1
2 系统建模-----------------------------------------------------2
3 仿真验证-----------------------------------------------------5
4 双闭环PID控制器设计----------------------------------10
5 仿真实验 -----------------------------------------------------13
6 检验系统的鲁棒性-----------------------------------------15
7 结论--------------------------------------------------------------------19
8 体会--------------------------------------------------------------------19
1 任务概述
1.1 设计概述
如图1 所示的“一阶倒立摆控制系统”中,通过检测小车位置与摆杆的摆动角,来适当控制驱动电动机拖动力的大小,控制器由一台工业控制计算机(IPC)完成。
图1 一阶倒立摆控制系统
这是一个借助于“SIMULINK封装技术——子系统”,在模型验证的基础上,采用双闭环PID控制方案,实现倒立摆位置伺服控制的数字仿真实验。
1.2 要完成的设计任务:
(1)通过理论分析建立对象模型(实际模型),并在原点进行线性化,得到线性化模型;将实际模型和线性化模型作为子系统,并进行封装,将倒立摆的振子质量m和倒摆长度L作为子系统的参数,可以由用户根据需要输入;
(2)设计实验,进行模型验证;
(3)一阶倒立摆系统为“自不稳定的非最小相位系统”。将系统小车位置作为“外环”,而将摆杆摆角作为“内环”,设计内化与外环的PID控制器;
(4)在单位阶跃输入下,进行SIMULINK仿真;
1
(5)编写绘图程序,绘制阶跃响应曲线,并编程求解系统性能指标:最大超调量、调节时间、上升时间;
(6)检验系统的鲁棒性:将对象的特性做如下变化后,同样在单位阶跃输入下,检验所设计控制系统的鲁棒性能,列表比较系统的性能指标(最大超调量、调节时间、上升时间)。
倒摆长度L不变,倒立摆的振子质量m从1kg分别改变为1.5kg、2kg、2.5kg、0.8kg、0.5kg;
倒立摆的振子质量m不变,倒摆长度L从0.3m分别改变为0.5m、0.6m、0.2m、0.1m。
2 系统建模
2.1 对象模型
一阶倒立摆的精确模型的状态方程为:
((
)/(
)/(
+) )
若只考虑θ在其工作点θ0 = 0附近的细微变化,这时可以将模型线性化,这时可以近似认为:
0,θ,1;
一阶倒立摆的简化模型的状态方程为:
(θ) /()
( θ) /()
2
2.2 模型建立及封装
1、建立以下模型:
图2 模型验证原理图
2、由状态方程可求得:
Fcn:(4/3*u[1]+4/3*m*l*sin(u[3])*power(u[2],2)-10*m*sin(u[3])*cos(u[3]))/(4/3*(1+m)-m*power(cos(u[3]),2))
Fcn1:(cos(u[3])*u[1]+m*l*sin(u[3])*cos(u[3])*power(u[2],2)-10*(1+m)*sin(u[3]))/(m*l*power(cos(u[3]),2)-4/3*l*(1+m)) Fun2:(4*u[1]-30*m*u[3])/(4+m)
Fun3:(u[1]-10*(1+m)*u[3])/(m*l-4/3*l*(1+m))
(其中J =mL^2/3,小车质量M=1kg,倒摆振子质量m,倒摆长度2L,重力加速度g=10m/s^2)
3
将以上表达式导入函数。
3、匡选要封装区后选择[Edit>>Create Subsystem]便得以下系统:
图3 子系统建立
4、鼠标右击子系统模块,在模块窗口选项中选择[Edit>>Edit Mask>>Parameters],则弹出如下窗口,添加参数m和l。
图4 添加参数
4
5、将精确模型subsystem和简化模型subsystem1组合成以下系统以供验证(输入信号是由阶跃信号合成的脉冲,幅值及持续时间为0.1s)。
图5 系统模块封装
3 仿真验证
3.1 实验设计
假定使倒立摆在(θ=0,x=0)初始状态下突加微小冲击力作用,则依据经验知,小车将向前移动,摆杆将倒下。
3.2 编制绘图子程序
1、新建M文件输入以下程序并保存。
clc load xy.mat
t=signals(1,:); %读取时间信号 f=signals(2,:); %读取作用力F信号
x=signals(3,:); %读取精确模型中的小车位置信号 q=signals(4,:); %读取精确模型中倒摆摆角信号
5
xx=signals(5,:); %读取简化模型中的小车位置信号 qq=signals(6,:); %读取简化模型中倒立摆摆角信号 figure(1) %定义第一个图形 hf=line(t,f(:)); %连接时间-作用力曲线 grid on;
xlabel('Time(s)') %定义横坐标 ylabel('Force(N)') %定义纵坐标 axis([0 1 0 0.12]) %定义坐标范围 axet=axes('Position',get(gca,'Position'),... 'XAxisLocation','bottom',...
'YAxisLocation','right','color','none',...
'XColor','k','YColor','k'); %定义曲线属性 ht=line(t,x,'color','r','parent',axet); %连接时间-小车位置曲线
ht=line(t,xx,'color','r','parent',axet); %连接时间-小车速度曲线
ylabel('Evolution of the xposition(m)') %定义坐标名称 axis([0 1 0 0.1]) %定义坐标范围 title('Response x and x''in meter to a f(t) pulse of 0.1 N' ) %定义曲线标题名称
gtext ('\\leftarrow f (t)'),gtext ('x (t) \\rightarrow') , gtext (' \\leftarrow x''(t)')
6
figure (2) hf=line(t,f(:)); grid on xlabel('Time') ylabel('Force(N)') axis([0 1 0 0.12])
axet=axes('Position',get(gca,'Position'),... 'XAxisLocation','bottom',...
'YAxisLocation','right','color','none',... 'XColor','k','YColor','k');
ht=line(t,q,'color','r','parent',axet); ht=line(t,qq,'color','r','parent',axet); ylabel('Angle evolution (rad)') axis([0 1 -0.3 0])
title('Response \\theta(t)and \\theta'' in rad to a f(t) pulse of 0.1 N' )
gtext('\\leftarrow f (t)'), gtext ('\\theta (t) \\rightarrow'), gtext (' \\leftarrow \\theta''(t)'3.3 仿真验证
7
2、在系统模型中,双击子系统模块,则会弹出一个新窗口,在新窗口中输入m和l值,点击OK并运行,如图7所示。
图6 参数输入
3、运行M文件程序,执行该程序的结果如图8所示。
8
图7 模型验证仿真结果
从中可见,在0.1N的冲击力下,摆杆倒下(θ由零逐步增大), 小车位置逐渐增加,这一结果符合前述的实验设计,故可以在一定程度上确认该“一阶倒立摆系统”的数学模型是有效的。同时,由图中也可以看出,近似模型在0.8s以前与精确模型非常接近,因此,也可以认为近似模型在一定条件下可以表达原系统模型的性质。
9
4 双闭环PID控制器设计
一级倒立摆系统位置伺服控制系统如图10所示。
内环 r(s)X
D2'(s)D1'(s)外环-一级倒立摆D1(s)-D2(s)F(s)1.6?2s2?40?(s)?0.4s2?10s2G1(s)X(s)G2(s)
图10 一级倒立摆系统位置伺服控制系统方框图
4.1内环控制器的设计
内环采用反馈校正进行控制。
图11 内环系统结构图
D(s)?r(s)--+K1.6G2(s)D2'(s)?(s)反馈校正采用
PD控制器,设其传递函数为D'(s)?K1s?K2,为了抑制干扰,在2前向通道上加上一个比例环节D2(s)?K。 10
控制器参数的整定:
设D2(s)的增益K??20,则内环控制系统的闭环传递函数为: KKsG2(s)64W2(s)??2'1?KKsG2(s)D2(s)s?64K1s?64K2?40?0.7?K1?0.175??K2?1.625令: ?
??64K2?40?64???64K1?2?0.7?64
内环控制器的传递函数为: '
D2(s)?0.175s?1.62564内环控制系统的闭环传递函数为:W 2(s)?2s?11.2s?64
4.2外环控制器的设计
外环系统前向通道的传递函数为:
64(?0.4s2?10)W2(s)G1(s)?22s(s?11.2s?64)?(s)X(s)Xr(s)-D1(s)K3(?s?1)W2(s) D1(s) K=1 'G1(s)图12 外环系统结构图
11
对外环模型进行降阶处理,若忽略W2(s)的高次项,则近似为一阶传递函数为: 64W2(s)?11.2s?6410G1(s)?2对模型G1(s)进行近似处理,则G1(s)的传递函数为: s
外环控制器采用PD形式,其传递函数为: D 1(s)?K3(?s?1)
采用单位反馈构成外环反馈通道,即D'(s)?1,则系统的开环传递函数为 1
57W(s)?W2(s)G1(s)D1(s)?2K3(?s?1)s(s?57)采用基于Bode图法的希望特性设计方法,得K3?0.12,??0.877,取??1,则外
环控制器的传递函数为:
一级倒立摆D1(s)?0.12(s?1)Xr(s)
- F(s)0.12(s?1)--201.6W(s)X(s)?(s)X调节器0.175s?1.625θ调节器图13 系统仿真结构图
12
5 仿真实验
1、根据已设计好的PID控制器,可建立图14系统,设置仿真时间为20ms,单击运行。(其中的对象模型为精确模型的封装子系统形式)
图14 SIMULINK仿真框图
2、新建M文件,输入以下命令并运行。
%将导入到PID.mat中的仿真试验数据读出 load PID.mat t=signals(1,:); q=signals(2,:); x=signals(3,:);
%drawing x(t) and thera(t) response signals %画小车位置和摆杆角度的响应曲线 figure(1)
13
hf=line(t,q(:)); grid on
xlabel ('Time (s)') axis([0 10 -0.3 1.2]) ht=line(t,x,'color','r'); axis([0 10 -0.3 1.2])
title('\\theta(t) and x(t) Response to a step input') gtext('\\leftarrow x(t)'),gtext('\\theta(t) \%uparrow')
执行该程序的结果如图9所示,从中可见,双闭环PID控制方案是有效的。
图15 系统仿真结果图
14
6 检验系统的鲁棒性
检验系统的鲁棒性:将对象的特性做如下变化后,同样在单位阶跃输入下,检验所设计控制系统的鲁棒性能,列表比较系统的性能指标(最大超调量、调节时间、上升时间)。
6.1 编写程序求系统性能指标
新建pid.m文件,输入以下命令并保存 load PID.mat clc
t=signals(1,:); x=signals(2,:); q=signals(3,:); figure(1) hf=line(t,q(:)); grid on
axis([0 10 -0.3 1.2]) ht=line(t,x,'color','r'); r=size(signals); e=r(1,2);
C=x(1,e); %得到系统终值
y_max_overshoot=100*(max(x)-C)/C %超调量计算 r1=1;
while (x(r1)<0.1*C) r1=r1+1; end r2=1;
while (x(r2)<0.9*C) r2=r2+1; end
x_rise_time=t(r2)-t(r1) %上升时间计算 s=length(t);
while x(s)>0.98*C&&x(s)<1.02*C s=s-1; end
15
x_settling_time=t(s) %调整时间计算 C1=q(1,e);
[max_y,k]=max(q);
q_max_overshoot=max(q)-C1%超调量计算 q_rise_time=t(k) %上升时间计算 s=length(t);
while q(s)>-0.02&&q(s)<0.02 s=s-1; end
q_settling_time=t(s) %调整时间计算
6.2 改变参数验证控制系统的鲁棒性
倒摆长度L不变,倒立摆的振子质量m从1kg分别改变为1.5kg、2kg、2.5kg、0.8kg、0.5kg;倒立摆的振子质量m 不变,倒摆长度L 从0.3m 分别改变为0.5m、0.6m、0.2m、0.1m。在单位阶跃输入下,检验所设计系统的鲁棒性。
1、双击subsistem改变输入参数并运行,再运行pid.m文件,得到响应曲线及性能指标,记录表1
图16 改变输入参数
16
对象参数 振子质量 m/kg 1 1.5 2 2.5 0.8 0.5 1 1 1 1 L/m 0.3 0.3 0.3 0.3 0.3 0.3 0.5 0.6 0.2 0.1 14.1155 10.2458 5.1799 8.3506 15.4510 17.2827 11.9832 12.0245 15.1632 16.2328 0.1251 0.1406 0.1649 0.1962 0.1196 0.1166 0.1551 0.1693 0.1102 0.0973 5.6095 4.9286 4.1058 5.7144 7.4006 8.0565 5.2784 5.6026 7.1334 7.5863 倒摆长度 x θ x 最大超调量 性能指标 调节时间 θ 4.0100 3.3381 3.33381 4.7558 4.0793 4.3415 3.8402 3.5867 4.1097 4.2172 x 1.2605 1.1199 0.7730 0.6862 1.2632 1.3468 1.1323 1.2342 1.3124 1.2786 上升时间 θ 1.3331 1.4550 1.4857 1.5169 1.3277 1.3154 1.4286 1.4752 1.3363 1.3264 表1 性能坐标比较
2、仿真实验的结果如图11所示:
17
18
7 结论
结论:
1、原系统在0.1N的冲击力下,摆杆倒下(θ由零逐步增大), 小车位置逐渐增加,这一结果符合前述的实验设计,故可以在一定程度上确认该“一阶倒立摆系统”的数学模型是有效的。验证实验中,通过精确模型与简化模型比较,从图中可以看出,0.8s以前是非常接近,因此,也可以认为近似模型在一定条件下可以表达原系统模型的性质。
2、经过双闭环PID 控制的系统,能跟随给定并稳定下来,且θ终值为0使摆杆不倒。说明PID控制有效。
3、改变倒立摆的摆杆质量m和长度L。从图11中可以看出,在参数变化的一定范围内系统保持稳定,控制系统具有一定的鲁棒性。
遇到问题:
1、如何设计使m,l参数可改变。
2、建立子系统时,子系统模块变成由两输入和两个输出。
3、仿真验证时响应不合要求,加入PID控制后运行很久仍无结果。 4、系统性能指标编程无从下手,对θ性能指标定义不明确。
如何解决:
1、请教老师后得知,可将已知参数代人模型,将m,l设为变量并封装即可。
2、询问同学,他们也遇到同样问题,只要将精确模型仿真图和简化模型仿真图独立出来再建立子系统就可变成一个输入和两个输出。
3、经检查图2模型验证原理图发现反馈引出点错误,改正后问题得以解决。
4、查看课本相关程序及询问同学得以启发,请教老师,明确指标定义,检查编程过程中错误完成编程任务。
8 体会
通过MATLAB实践,加强了用MATLAB对控制系统进行仿真,加深了对自动控制的应用与理解。从对一阶倒立摆的模型建立、系统模型的仿真验证及PID的控制调节的应用,使我明白如何将自动控制原理运用于实际中。由于系统模型在材料及课本中已经告诉我们,所以做起来相对容易,如果要完全由我们分析和设计就会更困难。要解决实际问题还远远不够,所以要更加注重实践,多下功夫才能学好。
19
7 结论
结论:
1、原系统在0.1N的冲击力下,摆杆倒下(θ由零逐步增大), 小车位置逐渐增加,这一结果符合前述的实验设计,故可以在一定程度上确认该“一阶倒立摆系统”的数学模型是有效的。验证实验中,通过精确模型与简化模型比较,从图中可以看出,0.8s以前是非常接近,因此,也可以认为近似模型在一定条件下可以表达原系统模型的性质。
2、经过双闭环PID 控制的系统,能跟随给定并稳定下来,且θ终值为0使摆杆不倒。说明PID控制有效。
3、改变倒立摆的摆杆质量m和长度L。从图11中可以看出,在参数变化的一定范围内系统保持稳定,控制系统具有一定的鲁棒性。
遇到问题:
1、如何设计使m,l参数可改变。
2、建立子系统时,子系统模块变成由两输入和两个输出。
3、仿真验证时响应不合要求,加入PID控制后运行很久仍无结果。 4、系统性能指标编程无从下手,对θ性能指标定义不明确。
如何解决:
1、请教老师后得知,可将已知参数代人模型,将m,l设为变量并封装即可。
2、询问同学,他们也遇到同样问题,只要将精确模型仿真图和简化模型仿真图独立出来再建立子系统就可变成一个输入和两个输出。
3、经检查图2模型验证原理图发现反馈引出点错误,改正后问题得以解决。
4、查看课本相关程序及询问同学得以启发,请教老师,明确指标定义,检查编程过程中错误完成编程任务。
8 体会
通过MATLAB实践,加强了用MATLAB对控制系统进行仿真,加深了对自动控制的应用与理解。从对一阶倒立摆的模型建立、系统模型的仿真验证及PID的控制调节的应用,使我明白如何将自动控制原理运用于实际中。由于系统模型在材料及课本中已经告诉我们,所以做起来相对容易,如果要完全由我们分析和设计就会更困难。要解决实际问题还远远不够,所以要更加注重实践,多下功夫才能学好。
19
正在阅读:
基于双闭环PID控制的一阶倒立摆控制系统设计 - 图文12-27
2016年汽车电子行业现状及发展趋势分析12-24
北京大学软件与微电子学院05-12
高中语文必修二理解性默写练习题12-01
华迈云快速安装手册 - 图文02-27
醇酸树脂的制备102-28
【精编文档】甘肃省民勤县第一中学2018-2019学年高一地理下学期期中试卷文.doc08-26
卖场实战操作流程终01-27
施工组织设计试题库07-06
烟草专卖许可证管理办法实施细则(试行)09-26
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 闭环
- 倒立
- 控制系统
- 基于
- 图文
- 控制
- 设计
- PID
- 辽宁省财政厅关于发行2016年辽宁省政府专项债券(二期)有关事项的通知
- 百年校庆接待工作方案(精选多篇)
- 小学体育游戏大全
- 写字楼物业租赁合同
- 洽洽实习报告
- 新闻理论基础
- DOCK皮肤rainmeter
- 度七年级上册生物教学计划
- 浅谈语文教学中小学生环保意识的培养
- 基于竞合模式的江苏环太湖地区旅游发展战略研究 2003docx - 图文
- 散文阅读 - 句段作用分析
- 2018-2019年张家口市赤城县东卯镇中心小学三年级上册科学期末复习无答案
- 浙江省诸暨中学2017-2018学年高二上学期第二阶段考试题 英语
- 2018年秋八年级语文上册 第11课《中国石拱桥》说课稿 新人教版
- 2019年高考历史考点专项训练:从赫鲁晓夫改革到戈尔巴乔夫改革
- 2016-2017学年高中地理中图版必修一习题:第一章第一节地球在宇宙中 Word版含解析
- 广东省县级以上机关2012年考试录用公务员报名登记表
- 2019届高考物理二轮专题训练:3专题三力与曲线运动Word版含解析
- 最新-七年级生物上册《形形色色的生物》学案导学教学设计 北师大版 精品
- 高考二轮复习跟踪测试:情态动词专题