基于双闭环PID控制的一阶倒立摆控制系统设计.docx

上传人:b****1 文档编号:1331822 上传时间:2022-10-20 格式:DOCX 页数:21 大小:948.17KB
下载 相关 举报
基于双闭环PID控制的一阶倒立摆控制系统设计.docx_第1页
第1页 / 共21页
基于双闭环PID控制的一阶倒立摆控制系统设计.docx_第2页
第2页 / 共21页
基于双闭环PID控制的一阶倒立摆控制系统设计.docx_第3页
第3页 / 共21页
基于双闭环PID控制的一阶倒立摆控制系统设计.docx_第4页
第4页 / 共21页
基于双闭环PID控制的一阶倒立摆控制系统设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于双闭环PID控制的一阶倒立摆控制系统设计.docx

《基于双闭环PID控制的一阶倒立摆控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于双闭环PID控制的一阶倒立摆控制系统设计.docx(21页珍藏版)》请在冰豆网上搜索。

基于双闭环PID控制的一阶倒立摆控制系统设计.docx

基于双闭环PID控制的一阶倒立摆控制系统设计

福州大学至诚学院

本科生课程设计

题目:

基于双闭环PID控制的一阶倒立摆控制系统设计

姓名:

学号:

系别:

电气工程系

专业:

电气工程与自动化

年级:

07级

指导教师:

 

2010年4月28日

 

1、系统模型的建立…………………………………………………3.

2、模型验证……………………………………………….……….4.

3、设计的内外环的PID控制器………………………………………10.

4、SIMULIN仿真…………………………………………………...13.

5、检测系统的鲁棒性………………………………………………16.

6、遇到问题…………………………………………………………19.

7、心得体会…………………………………………………………..20.

8、结论…………………………………...…………………………21.

9、参考文献…………………………………………………………..22.

一.系统模型的建立

如图01所示的“一阶倒立摆控制系统”中,设计一个能通过检测小车的位置与摆杆的摆动角,来适当控制电动机驱动力的大小的控制系统。

图01

1)对模型的理论分析建立一阶倒立摆的精确模型(实际模型)如下所示:

2).点进行线性化后得到(近似模型):

若只考虑摆角在工作点等零附近的细微变化,这是可以将模型线性化,得到近似模型,将J=m(l^2)/3,M=1kg代入即可得到要求的关于参数m、l的模型,让后再进行线性化表达式在模型验证中。

 

二.模型验证

1)子系统的建立

实际模型

图1

Fcn:

(((4*m*(l^2))/3)*u[1]+l*m*((4*m*(l^2))/3)*sin(u[3])*(u[2]^2)-10*(m^2)*(l^2)*sin(u[3])*cos(u[3]))/(((4*m*(l^2))/3)*(1+m)-(m^2)*(l^2)*power(cos(u[3]),2))

Fcn1:

(m*l*cos(u[3])*u[1]+(m^2)*(l^2)*sin(u[3])*cos(u[3])*(u[2]^2)-10*(1+m)*m*l*sin(u[3]))/((m^2)*(l^2)*power(cos(u[3]),2)-(1+m)*(4*m*(l^2))/3)

线性模型

图2

Fcn2:

(30*(1+m*u[2]-3*u[1])/(l*(4+m)

Fcn3:

(5*u[1]-30*m*u[2])/(4+m)

做完以上之后点击鼠标左键不放对图形进行选定,接着右击creatsubsystem如下图所示:

图3

2)模型的封装:

倒立摆的振子质量m和倒摆长度L作为子系统的参数:

图4

双击函数模块:

图5

欲改变其中的任一个参数只要点击其中二者之一的函数方块就行,在其中的m,l改就行了。

有两种实现的方法:

一种是利用示波器观察如下图所示,另一种是采用绘图程序实现。

1)示波器实现如图6:

图6

 

示波器显示结果如图7所示

图7

2)用程序实现:

%Inertedpendulum

%Modeltestinopenloop

%Signalsrecuperation

%将导入到xy.mat中的仿真试验数据读出

loadxy.mat

t=signals(1,:

);%读取时间信号

f=signals(2,:

);%读取作用力F信号

x=signals(3,:

);%读取精确模型中的小车位置信号

q=signals(4,:

);%读取精确模型中的倒摆摆角信号

xx=signals(5,:

);%读取简化模型中的小车位置信号

qq=signals(6,:

);%读取简化模型中的倒立摆摆角信号

%Drawingcontrolandx(t)responsesignals

%画出在控制力的作用下的系统响应曲线

%定义曲线的纵坐标、标题、坐标范围和曲线的颜色等特征

figure

(1)%定义第一个图形

hf=line(t,f(:

));%连接时间-作用力曲线

gridon;

xlabel('Time(s)')%定义横坐标

ylabel('Force(N)')%定义纵坐标

axis([0100.12])%定义坐标范围

axet=axes('Position',get(gca,'Position'),...

'XAxisLocation','bottom',...

'YAxisLocation','right','Color','None',...

'XColor','k','YClor','k');%定义曲线属性

ht=line(t,x,'color','r','parent',axet);%连接时间-小车位置曲线

ht=line(t,xx,'color','r','parent',axet);%连接时间-小车速度曲线

ylabel('Evolutionofthexposition(m)')%定义坐标名称

axis([0100.1])%定义坐标范围

title('Responsexandx''inmetertoaf(t)pulseof0.1N')%定义曲线标题名称

gtext('\leftarrowf(t)'),gext('x(t)\rightarrow'),gtext('\leftarrowx''(t)')

%drawingcontrolandtheta(t)responsesingals

figure

(2)

hf=line(t,f(:

));

gridon

xlabel('Time')

ylabel('ForceinN')

axet=axes('Position',get(gca,'Position'),...

'XAxisLocation','bottom',...

'YAxisLocation','right','Color','None',...

'XColor','k','YClor','k');

ht=line(t,q,'color','r','parent',axet);

ht=line(t,qq,'color','r','parent',axet);

ylabel('Angleevolution(rad)')

axis([01-0.30])

title('Response\theta(t)and\theta''(t)inradtoaf(t)pulseof0.1N')

gtext('\leftarrowf(t)'),gext('\theta(t)\rightarrow'),gtext('\leftarrow\theta''(t)')

在·m文件里写入如上程序,在运行该程序之前,先运行系统。

之后再运行此程序得出波形图如图所示。

观察结果如图8所示:

图8

 

三、设计的内外环的PID控制器

一阶倒立摆系统为“自不稳定的非最小相位系统”。

将系统小车位置作为“外环”,将摆杆摆角作为“内环”,设计的内外环的PID控制器。

其模型图如图9所示:

图9

3.1内环控制器设计

对系统内环采用反馈校正进行控制,其方框图如图6所示。

图6内环反馈校正方框图

反馈校正采用PD控制器,设其传递函数为,为了抑制干扰,在前向通道上加上一个比例环节。

设的增益,则内环控制系统的闭环传递函数为:

则内环控制器的传递函数为

内环控制系统的闭环传递函数为:

3.2外环控制器设计

图7外环系统结构图

由图7可知外环系统前向通道的传递函数为:

可见,系统开环传递函数为一个高阶且带不稳定零点的“非最小相位系统”。

因此,首先对系统外环模型进行降阶处理,若忽略W2(s)的高次项,则可近似为一阶传递函数为:

其次,对模型1G(s)进行近似处理,则1G(s)的传递函数为:

外环控制器也采用PD形式,其传递函数为

为了使系统有较好的跟随性,采用单位反馈构成外环反馈通道,即1D’'(s)=1,则系统的开环传递函数为

采用第十章基于Bode图法的希望特性设计方法,得K3=0.12,τ=0.877,取τ=1,则外环控制器的传递函数为:

一级倒立摆双闭环控制系统的方框图如图8所示。

图8一级倒立摆双闭环控制系统的方框图

 

四、在单位阶跃输入下,进行的SIMULINK仿真如下以及用示波

器观察的结果:

1)用示波器现实结果如图10所示:

图10

2)程序结果:

loadPID.mat

t=signals(1,:

);

q=signals(2,:

);

x=signals(3,:

);

%drawingx(t)andtheta(t)responsesignals

%画小车位置和摆杆角度的响应曲线

figure

(1)

hf=line(t,q));

gridon;

xlabel('Time(s)')

ylabel('Angleevolution(rad)')

axis([010-0.31.2])

axet=axes('Position',get(gca,'Position'),...

'XAxisLocation','bottom',...

'YAxisLocation','right','Color','None',...

'XColor','k','YClor','k');

ht=line(t,x,'color','r','parent',axet);

ylabel('Evolutionofthexpotion(m)')

axis([01-0.31.2])

title('\theta(t)and\x(t)Responsetoastepinput')

gtext('\leftarrowx(t)'),gext('\theta(t)\uppwrrow')

同上可知,得出的波形图如图11所示:

图11

3)编程求解系统性能指标:

最大超调量(max_overshoot)、

调节时间(settling_time)、上升时间(rise_time)。

LoadPID2049.mat

t=ans(1,:

);

y=ans(2:

3,:

);

figure

(1)

hf=line(t,q(:

));

gridon

axis([010-0.31.2])

ht=line(t,y,'color','r');

C=1;

C=dcgain(y);

max_overshoot=100*(max_y-C)/C%超调量计算

s=length(t);%调整时间计算

whiley(s)>0.98*C&&y(s)<1.02*C

s=s-1;

end

settling_time=t(s)

r1=1;%上升时间计算,以从稳态值的10%上升到90%定义

while(y(r1)<0.1*C)

r1=r1+1;

end

r2=1;

while(y(r2)<0.9*C)

r2=r2+1;

end

rise_time=t(r2)-t(r1)

step(sys)

运行完原理图之后,打开程序PID2049.m文件运行。

之后会出现波形,把波形图复制在word里,而在MATLAB中会出现

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

当前位置:首页 > 经管营销 > 公共行政管理

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

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