当前位置:首页 > 自动控制原理 0904103054 刘立财
成绩
课程设计报告
题
目 线性控制系统的校正及分析
课 程 名 称 自 动 控 制 原 理 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 09电气工程及其自动化1班 学 生 姓 名 刘立财 学 号 0904103054 课程设计地点 C214 课程设计学时 一周 指 导 教 师 陈 丽 换
金陵科技学院教务处制
一 、设计目的:
1、 了解控制系统设计的一般方法、步骤。
2、 掌握对系统进行稳定性分析、稳态误差分析以及动态特性分析的方法。 3、 掌握利用MATLAB对控制理论内容进行分析和研究的技能。 4、 提高分析问题解决问题的能力。
二、设计内容与要求: 设计内容
1、阅读有关资料。
2、对系统进行稳定性分析、稳态误差分析以及动态特性分析。 3、绘制根轨迹图、Bode图、Nyquist图。 4、设计校正系统,满足工作要求。
设计题目:
已知单位负反馈系统的开环传递函数G(S)?K0,试用频
S(S?1)(0.25S?1)率法设计串联校正装置,要求校正后系统的静态速度误差系数Kv?5s?1,系统的相角裕度??450,校正后的剪切频率?C?2rads。
设计要求:
1、能用MATLAB解复杂的自动控制理论题目。 2、能用MATLAB设计控制系统以满足具体的性能指标。
3、能灵活应用MATLAB的CONTROL SYSTEM 工具箱和SIMULINK仿 真软件,分析系统的性能。
三、设计方法,步骤,时间分配
1、基于MATLAB用频率法对系统进行串联校正设计,使其满足给定的频域性能指标。要求程序执行的结果中有校正装置传递函数和校正后系统开环传递函数,校正装置的参数T,β等的值。
⑴首先,由静态速度误差系数Kv?5,取Kv?10,则有:
Kv?lims?G(s)?lims?s?0s?0K0?K0?10
s(s?1)(0.25s?1)所以,该系统的开环传递函数为
1
G(s)?10
s(s?1)(0.25s?1)⑵确定未校正系统的剪切频率?C0,相角裕度?0和幅值裕度Kg。 MATLAB程序如下: >> k=10;nun1=1;
>> den1=conv([1 0],[1 1]); >> den=conv([0.25 1],den1); >> s1=tf(k*nun1,den); >> figure(1); >> margin(s1)
图1-1 滞后校正前系统的伯德图
所以,剪切频率?C0?2.78rad/s,相角裕度?0??15?,幅值裕度Kg=-6.02dB。 ⑶利用MATLAB语言计算出滞后校正器的传递函数。
Gc1(s)?1?Ts
1??Ts根据题目要求,取校正后系统的剪切频率wc?2.5rad/s,??9.5。并编写求滞后校正器传递函数的MATLAB程序
MATLAB程序如下:
2
wc=2.5;k0=10;n1=1;
d1=conv(conv([1 0],[1 1]),[0.25 1]); beta=9.5;T=1/(0.1*wc);
>> betat=beta*T;Gc1=tf([T 1],[betat 1]) 程序结果为:
即对于校正后系统的滞后校正补偿器传递函数为:
4s?1Gc(s)?
38s?1⑷利用MATLAB语言计算出超前校正器的传递函数。
要计算出校正后系统的传递函数,就编写求校正器的传递函数的MATLAB程序,其中调用了求超前校正器传递函数的函数leadc(),leadc.m保存在matlab7.0\\work\\文件夹下,其中key=1时,为var=gama,是根据要求校正后的相角稳定裕度计算滞后校正器;当key=2时,为var=wc,则是根据要求校正后的剪切频率计算校正器。若已知系统的开环传递函数与要求校正后的相角稳定裕度或剪切频率,求系统串联滞后校正器传递函数时,就可以调用此函数。leadc.m编制如下:
function [Gc]=leadc(key,sope,vars)
% MATLAB FUNCTION PROGRAM leadc.m %
if key==1
gama=vars(1);gama1=gama+5; [mag,phase,w]=bode(sope); [mu,pu]=bode(sope,w); gam=gama1*pi/180;
alpha=(1-sin(gam))/(1+sin(gam)); adb=20*log10(mu); am=10*log10(alpha); wc=spline(adb,w,am); T=1/(wc*sqrt(alpha)); alphat=alpha*T;
Gc=tf([T 1],[alphat 1]); elseif key==2 wc=vars(1);
num=sope.num{1};den=sope.den{1}; na=polyval(num,j*wc); da=polyval(den,j*wc); g=na/da; g1=abs(g);
h=20*log10(g1); a=10^(h/10);
3
共分享92篇相关文档