控制系统数字仿真实验报告.docx

上传人:b****5 文档编号:8240162 上传时间:2023-01-30 格式:DOCX 页数:20 大小:443.63KB
下载 相关 举报
控制系统数字仿真实验报告.docx_第1页
第1页 / 共20页
控制系统数字仿真实验报告.docx_第2页
第2页 / 共20页
控制系统数字仿真实验报告.docx_第3页
第3页 / 共20页
控制系统数字仿真实验报告.docx_第4页
第4页 / 共20页
控制系统数字仿真实验报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

控制系统数字仿真实验报告.docx

《控制系统数字仿真实验报告.docx》由会员分享,可在线阅读,更多相关《控制系统数字仿真实验报告.docx(20页珍藏版)》请在冰豆网上搜索。

控制系统数字仿真实验报告.docx

控制系统数字仿真实验报告

实验一数字仿真方法验证

班级:

姓名:

学号:

1.实验目的

1.掌握基于数值积分法的系统仿真、了解各仿真参数的影响;

2.掌握基于离散相似法的系统仿真、了解各仿真参数的影响;

3.熟悉MATLAB语言及应用环境。

二、实验环境

网络计算机系统,MATLAB语言环境

三、实验内容

(1)试将示例1的问题改为调用ode45函数求解,并比较结果。

1.脚本m文件vdp.m

functiondy=vdp(t,y)

dy=[y-2*t/y];

end

2.脚本m文件ode.m

[tzy]=ode45(,vdp'z[01]zl);

plot(t,y);

xlabel(1t1);

ylabel(1y1);

3.运行

4.

1.8

1.7

1.6

1.5

1.4

1.3

1.2

(二)试用四阶RK法编程求解下列微分方程初值问题。

仿真时间

2s,取步长h=0.1o

dy2

—=y-t

dt

y(0)=1

脚本m文件rkrk.m

clear

to=o;

yO=l;

h=O・l;

n=2/h;

y(l)=l;

t

(1)=0;

fori=0:

n-1

kl=y0-t0*t0;

k2=(y0+h*kl/2)-(tO+h/2)*(t0+h/2);k3=(y0+h*k2/2)-(tO+h/2)*(t0+h/2);k4=(y0+h*k3)-(tO+h)*(tO+h);

yl=yO+h*(kl+2*k2+2*k3+k4)/6;tl=tO+h;

yO=yl;

tO=tl;

y(i+2)=yl;

t(i+2)=tl;

end

yi

ti

figure

(1)

plot(tzy,»r');

xlabel('t*);ylabel('y*);

运行

(三)试求示例3分别在周期为5s的方波信号和脉冲信号下的响应,

仿真时间20s,采样周期Ts=0.1o

1.脚本m文件t3.m

clear

%Createsystemmodel

A=[-0.5572-0.7814;0.78140];

B=[l;0];

C=[1.96916.4493];

D=0;

sys=ss(A,BzCzD);

%Pulseresponseofthesystem

subplot(221)

[u,t]=geri5ig(1pulse1z5,20,0.1)

plot(t/u);

holdon

lsim(sys,uzt);

xlabel('t*);

ylabel(*Y*);

tPulseresponseofthesystem1);

holdoff

grid

%Squareresponseofthesystem

subplot(222)

[u,t]=geri5ig(1square1z5,20,0.1)

plot(t,u);

holdon

lsim(sys,uzt);

xlabel('t*);

ylabel(*Y*);

titleLSqumreresponseofthesystem');

holdoff

grid

2.

运行

 

四、实验体会

这是控制系统数字仿真课程的第一次实验,我熟悉了matlab软件的基本操作,学会了如何运用数值积分方法中常用的函数(如ode45)去解常系数微分方程,虽然存在一定的误差,但在误差允许的范围内,而且相对于Euler法,代码明显大幅度简化。

通过第三个小实验我还学会了如何运用离散相似法去解常见的状态参数方程。

实验二SIMULINK动态仿真

一、实验目的

1.掌握SIMULINK动态仿真;

2.熟悉MATLAB语言及应用环境。

二、实验环境

网络计算机系统,MATLAB语言环境

三、实验内容

(一)Simulink的基本操作

(1)运行Simulink

(2)常用的标准模块

(3)模块的操作

(二)系统仿真及参数设置

(1)算法设置(Solver)

(2)工作空间设置(WorkspaceI/O)

(三)学会运用SIMULINK建立仿真模型,进行仿真。

1.某系统框图如图所示,试用SIMULINK进行仿真,并比较在无饱和非线性环节

下系统仿真结果。

建立系统模型:

实验结果:

示波器1

Timeoffset:

0

示波器2

 

2.己知系统结构图如下:

图.含饱和非线性环节系统方框图

己知输入为信号电平从1~6,非线性环节的上下限为±1,取步长h=0.1,仿真时间为10秒,试绘制系统的响应曲线。

输入信号为1・6的节约信号时,实验响应曲线如下:

Timeoffset:

0

四、实验体会

通过本次试验,我体会到了MATLAB里的Simulink模块强大的建模仿真功能。

通过Simulink动态仿真,我们能实时观测部分模块对系统整体的影响,从而可以很好地设法调节系统元件环节参数,改善系统性能,因此MATLAB的Simulink动态仿真适用于模拟系统,调节系统的部分参数。

实验三PID控制器设计

一、实验目的

1.了解PID控制原理,掌握相应PID控制器设计仿真程序的应用;

2.掌握计算机辅助系统瞬态性能指标的计算;

3.掌握计算机辅助系统频率性能分析;

二、实验环境

网络计算机系统,MATLAB语言环境

三、实验内容

已知如图所示单位反馈系统

500s+5000

s'+33$“+337?

+1775s'+4950s+5000

要求:

编写主文件:

clear

clc

sys=tf([5005000],[133337177549505000]);

figure

(1)

nyquist(sys)

[Re,Imzwl]=nyquist(sys);

gridon

figure

(2)

bode(sys)

[mag,phase,w2]=bode(sys);

gridon

sysclose=feedback(sys,1);

[z,p,k]=zpkda1v1)

运行结果:

CommandWindow

-19.9388

-5.146942.ol03i

-5.1469-2.51081

-1.3837十3.6577i

-1.3837-3.6577i

k=

500

由运行结果知,系统的极点全位于复平面的左半平面,故该闭环系统是稳定的。

2.应用Ziegler-Nichols方法设计P控制器、PI控制器和PID控制器。

编写函数m文件pidmargin.m

function[sysc,KpzTizTd]=pidmargin(sys,type)margin(sys)

[Gm,PmzWg,Wc]=margin(sys);

Kcr=Gm;

Wcr=Wg;

Tcr=2*pi/Wcr;

switchtype

case1

disp(1PControler1)

Kp=0•5大Ker

Ti=!

NoDesign1

Td=!

NoDesign1

sysc=Kp;

case2

disp(1PIControler1)

Kp=0.4大Ker

Ti=0•8大Ter

Td=!

NoDesign1

sysc=Kp*(1+tf1[Ti,0]));

case3

disp(1PIDControler1)

Kp=0•6大Ker

Ti=0.5大Ter

Td=0.12*Tcr

sysc=Kp*(1+tf(1,[Tiz0])+tf([Td0],1));

end

end

编写脚本m文件:

elf

sys=tf([5005000],[133337177549505000]);

sysgroup=feedback(sys,1);

fori=l:

3

type=i;

[sysc,KpzTi,Td]=pidmargin(sys,type);

sysopen=sysc大;sys;

sysclose=feedbmck(sysopen,1);

sysgroup=appenci(sysgroup,sysclose);

endelf

fori=l:

4

subplot(2,2,i)

step(sysgroup(i,i))end

运行结果如下:

»Trial_3_2

PControler

1.7849

Ti=

NoDesign

Td=

NoDesign

PIControler

Kp=

1.4279

Ti=

1.0882

Td=

NoDesign

PIDControler

Kp=

2.1419

Ti=

0.6801

Td=

0.1632

3・计算比较原系统与P控制系统、PI控制系统、PID控制系统的瞬态性能指标。

编写函数m文件pidmargin.m(同2中的pidmargin.m)

编写脚本m文件

elf

sys=tf([5005000],[133337177549505000]);

sysgroup=feedback(sys,1);

fori=l:

3

type=i;

[sysc,KpzTi,Td]=pidmargin(sys,type);

sysopen=sysc*sys;

sysclose=feedback(sysopen,1);

sysgroup=append(sysgroup,sysclose);

end

fori=l:

4

step(sysgroup(i,i));

[num,den]=tfdatn(sysgroup(i,i),1v1);

Finalvalue=polyval(num,0)/polyval(den,0)

[y,t]=step(sysgroup(「i));

[Ymax,k]=max(y);

Peaktime=t(k)

OvershootPercent=100大(Ymax-Finalvalue)/Finalvalue

n=l;

whiley(n)<0.1大Finalvalue,n=n+l;end

m=l;

whiley(m)<0•9大Finalvalue,m=m+l;end

RiseTime=t(m)-t(n)

r=length(t);

while(y(r)>0.98*Finalvalue&y(r)<1•02大Finalvalue)

r=r-l;

end

SettlingTime=t(r)

end

运行结果如下:

Finalvalue=

0.5000

Peaktime=

1.1632

OvershootPercent

22.9899

RiseTime=

0.4653

SettlingTime=

2.9527

Finalvalue=

0.6409

Peaktime=

1.0187

OvershootPercent=

44.5805

RiseTime=

0.3661

SettlingTime=

5.0297

Finalvalue=

Peaktime=

1.1921

OvershootPercent=

12.8370

RiseTime=

0.5356

SettlingTime=

4・2673

Finalvalue=

1

Peaktime=

0.8881

OvershootPercent=

23.5012

RiseTime=

0.3714

SettlingTime=

3.0357

四、实验体会

在第二个实验中主程序通过调用函数m文件pidmargin.m,实现了PID控制器的设计,并在单位阶跃函数作用下的系统输出,列于同一张表,便于分析;第三个实验在第二个实验的基础上,将系统在阶跃函数作用下的状态参数返回,从而实现经PID控制器修正后的系统与原系统进行量化对比,显示校正效果。

本次实验,我学会了如何运用matlab画系统的Bode图和Nyquist图,很大程度上简化了系统稳定性、动态特性等相关问题的求解。

实验四模糊逻辑控制器设计

一、实验目的

1•了解模糊逻辑控制原理;

2.掌握MATLAB辅助模糊逻辑控制器设计流程;

二、实验环境

网络计算机系统,MATLAB语言环境

三、实验内容设有前后两车(目标车与本车),其速度y与油门控制输入u间的传递函数均为

心)_4

+2*0.7*25+4

现要求设计一模糊控制器,使得

1)控制汽车(本车)由静止启动,追赶200m外时速90km的汽车(目

标车)并与其保持30m距离。

2)目标车速度改为时速110km时,仍与其保持30m距离。

3)目标车速度改为时速70km时,仍与其保持30m距离。

第一步利用simulink构造系统仿真模型。

根据题意,可做出系统结构图如图1所示。

图中,为了控制系统设计方便,将两

车的距离相减后再减掉30,用模糊控制使其趋于0。

图1系统结构图

进一步,利用simulink构造了系统仿真模型,如图2所示。

考虑到实际的汽车速度存在极限,系统模型中加入了饱和非线性模块进行模拟。

图中的e和u除以20是为了使输出量限定在10左右。

然后,将系统模型以文件f-car.mdl保存。

图2系统simulink仿真模型

第二步设计模糊逻辑规则

以误差量(两车距离)及误差对时间的变化量作为输入进行模糊规则设计。

本例采用位置型模糊控制器,即控制规则的条件为:

ife为AandAe为Bthenu为Co按一般方法,可得一套控制规律[]如表1所示

表1控制规律

e

NB

NM

ZE

PM

PB

Ae

PB

PB

PM

PM

ZE

NB

NM

ZE

PM

PB

NM

NM

NB

NM

表中P=POSITIVEN=NEGATIVEZE=ZERO表1所示的控制规则库中尚有一些空缺,为了防止受控对象因为无效条件而失控,可以将(e,Ae)按下式转换为极坐标(厂,0)

r=+△,,0=cos-1(-)

r

而将规则库填满,从而得到表2所示极坐标形式的模糊控制规则:

表2极坐标形式的模糊控制规则

Y

NB

ZE

PB

e

PB

ZE

NM

NB

PM

ZE

PM

PB

ZE

ZE

PM

PB

NM

ZE

NM

NB

NB

ZE

NM

NB

由上表可知,此例中,我们分别将

y分为PBZENB

e分为PBPMZENMNB

y分为PBPMZENMNB

因此,根据该表可以写出15条规则。

如,对应表中第二行、第三列的规则为:

if(/isPB)and(0isPM)then(yisPB)

等等。

第三步设计隶属函数

对输入量匚。

和输出量y,均取三角形的隶属函数,具体范围与大小如图3和4

 

所示:

图3input的隶屈度函数

第四步,根据前面的隶属度函数、控制规则,利用Toolox\FuzzyLogic中的模糊推理系统编辑器,建立模糊推理系统(即生成FIS文件)。

第五步,将FIS文件添加到第一步建立的模型文件中,完成汽车模糊逻辑控制系统的设计。

然后仿真分析,输出曲线。

实验结果:

4.实验体会

本次实验设计的模糊控制器在完全符合题目的要求,在10秒内将两车距离控制在了30km以内,故本次试验基本成功。

模糊逻辑工具箱使得我们可以通过简单的逻辑规则设置便可以实现模糊控制,可以看到其还是基于反馈控制的。

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

当前位置:首页 > 表格模板 > 表格类模板

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

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