控制系统CAD综合大作业

  • 格式:doc
  • 大小:134.50 KB
  • 文档页数:6

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《MATLAB 基础与控制系统CAD 》仿真作业

学生学号: 0910200313 学生姓名: 马丽

一、 求如下非线性二阶系统的时间响应(20分)

32

122111/8.0/x

x dt dx x e x dt dx t -=+-=-

其中2)0(,0)0(21==x x ,要求绘出]3,0[∈t 的系统状态响应曲线。 解: 建立M 文件

function yp=a(t,x) yp=zeros(2,1);

yp(1)=-x(1)*exp(1-t)+0.8*x(2); yp(2)=x(1)-x(2)^3; 在命令行求解: y0=[0,2]

[t,x]=ode45(‘a’,[0,3],y0); plot(t,x(:,1),t,x(:,2)); 结果如下图

二、 已知系统的开环传递函数如下 (20分)

210

()525

G s s s =++

(1) 把G(s)转换成零极点形式的传递函数,判断开环系统稳定性。 (2) 判别系统在单位负反馈下的稳定性,并求出闭环系统在0~10秒内的脉

冲响应和单位阶跃响应,分别绘出响应曲线。

解(1)

num=[10]; den=[1,5,25]; [z,p,k]=tf2zp(num,den) 结果: z = Empty matrix: 0-by-1

p =

-2.5000 + 4.3301i -2.5000 - 4.3301i

k =

10

则所求零极点传递函数为

)

3301.45000.2)(33301.45000.2(10

)(j s j s s G ++-+=

由零极点传递函数可知,函数的极点都在s 平面的左半平面,所以该开环系统稳定.

(3) 由开环传递函数可得单位负反馈的传递函数为

35

510

)(2++=s s s T

脉冲响应:

num=[10]; den=[1,5,35];

impulse(num,den,0:0.1:10);

阶跃响应

num=[10]; den=[1,5,35]; step(num,den,0:0.1:10)

三、 某单位负反馈系统如下图所示,(20分)

(1) 当比例控制器增益K =1时,在Simulink 中搭建系统,当输入为阶跃函

数时,用示波器观察系统的输出,绘出输出曲线。

(2) 把(1)中的对象输出和时钟输出输入Workspace 中,通过在命令窗口中执

行M 文件求出系统在阶跃输入下的超调量(%σ)和峰值时间(p t ),写出源程序。

(3) 调节控制器增益,使超调量%32%σ<且稳态误差2.0

值的范围。 解

搭建的系统如图

响应曲线

(2)

function y=dongtai(t,x)

[a,b]=max(x);

i=1;

while (x(i+3)-x(i))/x(i)>0.002||(x(i+3)-x(i))/x(i)<-0.002 i=i+1;

end

overshoot=(x(b)-x(i))/x(i)

tp=t(b)

在命令窗口调用指令为:

dongtai(t,y)

运行结果:

overshoot =

0.1136

tp =

0.7839

q=1; w=1;

t=[];

for n=1:0.00001:7;

number=10*n;

fenmu=[1 5 10];

sys=tf(number,fenmu);

close_sys=feedback(sys,1);

k=step(close_sys);

overshoot=(max(k)-dcgain(close_sys))/dcgain(close_sys);

a(s)=overshoot;

w=w+1;

ess=abs(1-dcgain(close_sys));

b(s)=ess;

if ess<0.2& overshoot<0.32

t(u)=n;

u=u+1;

end;

end;

zuixiao=min(t)

zuida=max(t)

输出:

zuixiao =

4

zuida =

function y=dongtai(t,x,k)

[a,b]=max(x);

i=1;

while (x(i+3)-x(i))/x(i)>0.002||(x(i+3)-x(i))/x(i)<-0.002

i=i+1;

end

overshoot=(x(b)-x(i))/x(i)

ess=1/(1+k)

命令窗口指令:

dongtai(t,y,5.004)

运行结果:

overshoot =

0.3200

ess =

0.1666

注意:1.仿真报告提交打印稿,由班长收齐后,于12月30日前统一提交。

2.仿真报告要求给出仿真结果、绘制图形和结果分析,并附源程序。

3.仿真程序和报告须独立完成,报告要规范且简明扼要,严禁雷同。