控制系统设计9195914Word文档下载推荐.docx
《控制系统设计9195914Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《控制系统设计9195914Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。
若不能达到指标要求,分析原因,重新设计,直到对实际系统的控制达到满意的结果。
具体实验操作见附录1。
图3倒立摆实验装置
1.3实验准备及注意事项
1.为了安全起见,在进行系统连线、拆卸与安装前,必须关闭系统所有电源。
2.使用前请仔细检查连线,确保接线正确无误。
如果码盘连线接反或断线,将会发生冲撞。
3.为了避免设备失控时造成人身伤害,操作时人员应该与设备保持安全距离,一定不要站在摆的两端。
4.如果发生异常,按下空格键,系统会提示“急停按钮被触发,无法继续控制系统,按任意键退出程序。
”
5.超速时,系统会自动关闭伺服电机,并出现“小车失速,系统被终止,按任意键退出程序。
1.4课程设计任务书
哈尔滨工业大学课程设计任务书
姓名:
院(系):
专业:
班号:
任务起至日期:
年月日至年月日
课程设计题目:
一阶倒立摆控制器设计
已知技术参数和设计要求:
本课程设计的被控对象采用固高公司的一阶倒立摆系统GIP-100-L。
系统内部各相关参数为:
小车质量0.5Kg;
摆杆质量0.2Kg;
小车摩擦系数0.1N/m/sec;
摆杆转动轴心到杆质心的长度0.3m;
摆杆惯量0.006kg*m*m;
采样时间0.005秒。
设计要求:
1.推导出系统的传递函数和状态空间方程。
用Matlab进行脉冲输入仿真,验证系统的稳定性。
2.设计PID控制器,使得当在小车上施加1N的脉冲信号时,闭环系统的响应指标为:
(1)稳定时间小于5秒
(2)稳态时摆杆与垂直方向的夹角变化小于0.1弧度
3.设计最优控制器,使得当在小车上施加0.2m的阶跃信号时,闭环系统的响应指标为:
(1)摆杆角度和小车位移的稳定时间小于5秒
(2)的上升时间小于1秒
(3)的超调量小于20度(0.35弧度)
(4)稳态误差小于2%。
工作量:
1.建立一阶倒立摆的线性化数学模型;
2.倒立摆系统的PID控制器设计、MATLAB仿真及实物调试;
3.倒立摆系统的最优控制器设计、MATLAB仿真及实物调试。
工作计划安排:
同组设计者及分工:
各项工作独立完成
指导教师签字___________________
年月日
教研室主任意见:
教研室主任签字___________________
年月日
*注:
此任务书由课程设计指导教师填写。
第2章一阶倒立摆的数学模型
设计目的:
建立一阶倒立摆系统的数学模型,并在摆角附近将其非线性数学模型线性化,学生通过实际数学模型的推导,加深对系统建模和模型线性化问题的理解。
对系统加入输入信号,进行Matlab仿真,理解不稳定极点对系统稳定性的影响。
写出系统的动态方程,得出传递函数和状态空间方程。
2.1一阶倒立摆数学模型的推导
对系统建立数学模型是系统分析、设计的前提,而一个准确又简练的数学模型将大大简化后期的工作。
为了简化系统分析,在实际的模型建立过程中,要忽略空气流动阻力,以及各种次要的摩擦阻力。
这样,可将倒立摆系统抽象成小车和匀质刚性杆组成的系统,如下图所示。
本系统内部各相关参数定义如下:
小车质量
摆杆质量
小车摩擦系数
摆杆转动轴心到杆质心的长度
摆杆惯量
加在小车上的力
小车位置
摆杆与垂直向上方向的夹角
摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)
下图是系统中小车和摆杆的受力分析图。
其中,和为小车与摆杆相互作用力的水平和垂直方向的分量。
注意:
在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。
应用Newton方法来建立系统的动力学方程过程如下:
分析小车水平方向所受的合力,可以得到以下方程:
由摆杆水平方向的受力进行分析可以得到下面等式:
即:
把这个等式代入上式中,就得到系统的第一个运动方程:
(2-1)
为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:
力矩平衡方程如下:
此方程中力矩的方向,由于
,故等式前面有负号。
合并这两个方程,约去和,得到第二个运动方程:
(2-2)
1.微分方程模型
设,当摆杆与垂直向上方向之间的夹角与1(单位是弧度)相比很小,即时,则可以进行近似处理:
,,。
为了与控制理论的表达习惯相统一,即一般表示控制量,用来代表被控对象的输入力,线性化后得到该系统数学模型的微分方程表达式:
(2-3)
2.传递函数模型
对方程组(2-3)进行拉普拉斯变换,得到
(2-4)
推导传递函数时假设初始条件为0。
由于输出为角度,求解方程组(2-4)的第一个方程,可以得到
把上式代入方程组(2-4)的第二个方程,得到
整理后得到以输入力为输入量,以摆杆摆角为输出量的传递函数:
其中
若取小车位移为输出量,可得传递函数:
3.状态空间数学模型
由现代控制理论原理可知,控制系统的状态空间方程可写成如下形式:
方程组(2-3)对解代数方程,得到如下解:
整理后得到系统状态空间方程:
以上就是一阶倒立摆小车系统的状态空间表达式。
2.2系统MATLAB仿真和开环响应
1.传递函数
在Matlab中,拉普拉斯变换后得到的传递函数可以通过计算并输入分子和分母矩阵来实现。
假设系统内部各相关参数为:
小车质量0.5Kg
摆杆质量0.2Kg
小车摩擦系数0.1N/m/sec
摆杆转动轴心到杆质心的长度0.3m
摆杆惯量0.006kg*m*m
采样时间0.005秒
文件trans.m用于求系统传递函数、传递函数的极点以及开环脉冲响应。
%——————trans.m——————
%倒立摆传递函数、开环极点及开环脉冲响应
%输入倒立摆传递函数G(S)=num/den
M=0.5;
m=0.2;
b=0.1;
I=0.006;
g=9.8;
l=0.3;
q=(M+m)*(I+m*l^2)-(m*l)^2;
%计算并显示多项式形式的传递函数
num=[m*l/q00]
den=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0]
%计算并显示传递函数的极点p
[r,p,k]=residue(num,den);
s=p
%求传递函数的脉冲响应并显示
t=0:
0.005:
5;
impulse(num,den,t)
%显示范围:
横坐标0-1,纵坐标0-60,此条语句参数可根据仿真输出曲线调整
axis([01060])
grid
%——————end——————
执行上面的文件,得到系统传递函数的分子(num)与分母(den)多项式的Matlab表示及系统的开环极点(s),显示结果如下所示:
>
trans
num=
4.545500
den=
1.00000.1818-31.1818-4.45450
s=
-5.6041
5.5651
-0.1428
0
由此可知,系统传递函数的多项式表达式为:
系统的开环极点为、、、,由于有一个开环极点位于平面的右半部,开环系统不稳定。
MATLAB仿真的开环脉冲响应(即给系统加一个脉冲推力)曲线如下图所示,系统不稳定。
2.状态空间法
状态空间法可以进行单输入多输出系统设计,因此在这个实验中,我们将尝试同时对摆杆角度和小车位置进行控制。
为了更具挑战性,给小车加一个阶跃输入信号。
我们用Matlab求出系统的状态空间方程各矩阵,并仿真系统的开环阶跃响应。
在这里给出一个state.m文件,执行这个文件,Matlab将会给出系统状态空间方程的A,B,C和D矩阵,并绘出在给定输入为一个0.2m的阶跃信号时系统的响应曲线。
state.m程序如下:
%——————state.m——————
%倒立摆状态方程及开环阶跃响应
%输入倒立摆相关参数
%p用于状态方程计算
p=I*(M+m)+M*m*l^2;
%输入倒立摆状态方程并显示
A=[0100;
0-(I+m*l^2)*b/p(m^2*g*l^2)/p0;
0001;
0-(m*l*b)/pm*g*l*(M+m)/p0]
B=[0;
(I+m*l^2)/p;
0;
m*l/p]
C=[1000;
0010]
D=[0;
0]
%求开环系统的阶跃响应并显示
T=0:
U=0.2*ones(size(T));
[Y,X]=lsim(A,B,C,D,U,T);
plot(T,Y)
横坐标0-2,纵坐标0-100,此条语句参数可根据仿真输出曲线调整
axis([020100])
执行上面的文件,得到系统的状态空间A、B、C、D矩阵,显示结果如下所示:
state
A=
01.000000
0-0.18182.67270
0001.0000
0-0.454531.18180
B=
1.8182
4.5455
C=
1000
0010
D=
MATLAB仿真的开环阶跃响应曲线如下图所示,系统不稳定。
图中,实线是摆杆角度响应曲线,虚线是小车位置响应曲线。
2.3模型仿真实验
1.实验步骤
实际系统参数如下,按照上面给出的例子求系统的传递函数、状态空间方程,并进行脉冲响应和阶跃响应的Matlab仿真。
小车质量1.096Kg
摆杆质量0.109Kg
小车摩擦系数0.1N/m/sec
摆杆转动轴心到杆质心的长度0.25m
摆杆惯量0.0034kg*m*m
摆杆与垂直方向的夹角
采样频率0.005秒
在进行实际系统的Matlab仿真时,请将采样频率改为实际系统的采样频率。
2.设计报告要求
(1)推导一阶倒立摆的数学模型,并将其在工作点线性化,给出微分方程、传递函数和状态空间表达式三种数学模型。
(2)给出仿真结果和响应曲线。
(3)分析系统的稳定性。
第3章倒立摆系统的PID控制算法设计
本章主要利用PID控制算法对一阶倒立摆系统进行控制器设计。
在设计的过程中,要求熟悉控制参数、、对系统性能的影响,然后按照所要求的控制指标并综合实际响应结果恰当地调整参数。
运用MATLAB仿真软件可以快捷地进行系统仿真和参数调整,本章第2节的内容即是运用MATLAB软件对PID控制系统的设计和仿真。
第3节中,将对控制系统进行实际的运行和参数调试,以获得一组最佳的PID控制参数。
学习PID控制器的设计方法,了解控制器各个参数对系统性能的影响,学会根据控制指标要求和实际响应调整PID控制器的参数。
设计PID控制器,使得当在小车上施加1N的脉冲信号时,闭环系统的响应指标为:
3.1理论分析
1.PID控制原理
在模拟控制系统中,控制器最常用的控制规律是PID控制。
常规PID控制系统原理框图如下图所示。
系统由模拟PID控制器KD(S)和被控对象G(S)组成。
PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差
将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。
其控制规律为
或写成传递函数的形式
式中:
——比例系数;
——积分时间常数;
——微分时间常数。
在控制系统设计和仿真中,也将传递函数写成
——积分系数;
——微分系数。
简单说来,PID控制器各校正环节的作用如下:
(1)比例环节:
成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。
(2)积分环节:
主要用于消除稳态误差,提高系统的型别。
积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
(3)微分环节:
反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
2.摆杆角度控制
这个控制问题和我们以前遇到的标准控制问题有些不同,在这里输出量为摆杆的位置,它的初始位置为垂直向上,我们给系统施加一个扰动,观察摆杆的响应。
系统框图如下:
图中是控制器传递函数,是被控对象传递函数。
考虑到输入,结构图可以很容易地变换成
该系统的输出为
其中:
——被控对象传递函数的分子项
——被控对象传递函数的分母项
——PID控制器传递函数的分子项
——PID控制器传递函数的分母项
被控对象的传递函数是
PID控制器的传递函数为
只需调节PID控制器的参数,就可以得到满意的控制效果。
3.小车位置控制
小车位置作为输出时,系统框图如下:
其中,是摆杆传递函数,是小车传递函数。
由于输入信号,所以可以把结构图转换成:
其中,反馈环代表我们前面设计的摆杆的控制器。
从此框图我们可以看出此处只对摆杆角度进行了控制,并没有对小车位置进行控制。
小车位置输出为:
其中,,,,分别代表被控对象1和被控对象2传递函数的分子和分母。
和代表PID控制器传递函数的分子和分母。
下面我们来求,根据前面实验二的推导,有
可以推出小车位置的传递函数为
其中
可以看出,==,小车的算式可以简化成:
3.2PID控制算法的MATLAB仿真
1.摆杆角度控制算法的仿真
文件pid1.m是输出为摆杆角度时系统的脉冲响应仿真软件,其中参数、、分别为PID控制器的比例、微分和积分参数。
文件如下:
%——————pid1.m——————
%摆杆角度PID控制
%输入倒立摆传递函数G1(S)=num1/den1
num1=[m*l/q00];
den1=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0];
%输入控制器PID数学模型Gc(s)=numPID/denPID
Kp=1;
Ki=1;
Kd=1;
numPID=[KdKpKi];
denPID=[10];
%计算闭环系统传递函数G(s)=num/den
%多项式相乘
num=conv(num1,denPID);
%多项式相加
den=polyadd(conv(denPID,den1),conv(numPID,num1));
%求整个系统传递函数的极点
%显示极点
%求取多项式传递函数的脉冲响应
impulse(num,den,t)
横坐标0-5,纵坐标0-10,此条语句参数可根据仿真输出曲线调整
axis([05010])
文件中用到求两个多项式之和的函数polyadd,它不是Matlab工具,因此必须把它拷贝到polyadd.m文件中,并把该文件和源文件一起拷贝到MATLAB工作区。
polyadd.m文件如下:
%——————polyadd.m——————
%求两个多项式之和
function[poly]=polyadd(poly1,poly2)
iflength(poly1)<
length(poly2)
short=poly1;
long=poly2;
else
short=poly2;
long=poly1;
end
mz=length(long)-length(short);
ifmz>
poly=[zeros(1,mz),short]+long;
poly=long+short;
现在,就可以进行系统脉冲响应的PID控制仿真了。
PID控制参数取为,,,闭环系统极点为:
-8.0412
3.3105
0.0034
脉冲响应曲线如下:
有2个闭环极点位于平面右半部,系统不稳定。
从系统响应曲线也可看出,系统响应是不稳定的,不能满足要求,需要调整参数、和,直到获得满意的控制结果。
首先增加比例系数,观察它对响应的影响,取,,,闭环极点为:
-2.3635+20.4396i
-2.3635-20.4396i
-0.0001
系统脉冲响应曲线如下:
系统闭环极点均位于平面左半部,系统稳定。
系统稳定时间约为2秒,满足要求。
由于此时稳态误差为0,所以不需要改变积分环节(你可以改变积分系数,观察系统响应如何变化);
系统响应的超调量比较大,为了减小超调,增加微分系数,取,观察响应曲线:
系统响应满足指标要求。
2.小车位置控制算法的仿真
pid2.m是仿真小车位置变化的m文件,文件如下:
%——————pid2.m——————
%小车位置PID控制
%输入倒立摆传递函数G1(s)=num1/den1,G2(s)=num2/den2
q=(M+m)*(I+m*l^2)-(m*l)^2;
num2=[-(I+m*l^2)/q0m*g*l/q];
den2=den1;
num=conv(num2,denPID);