PAGE
PAGE 3
计算机仿真大作业
摘要:本次计算机仿真大作业主要是利用matlab进行操作的。内容主要涉及对Matlab程序的基本操作(文件的写入和读出),函数式的表达,波形的绘制,应用Simulink建立子系统并对子系统进行封装,以及对PID控制器的参数进行整定这三个方面。PID的参数整定要用到Simulink建立系统,并且要设计M文件,采用编程法求取系统阶跃响应的性能指标。
关键字: PID整定法 Simulink 子系统封装 M文件
目录
摘要………..…………………………………………………….…………………..-1-
TOC \o "1-3" \h \z \u 一、基本操作-3-
1. 写文件操作-3-
HYPERLINK \l "baidusnap0"2.读文件数据并画图操作-3-
HYPERLINK \l "baidusnap0"3.构造新函数并绘图操作-4-
4.读取数据绘制传递函数波特图操作-5-
二、子系统封装-6-
1.用Simulink建立系统-7-
2.观察输入输出波形-7-
3.数据导出-8-
三、PID控制器参数整定-9-
1、采用工程整定法分别设置控制器参数-10-
1.1建立原控制系统的Simulink仿真模型-11-
1.2对原控制系统进行仿真-12-
1.3求取系统临界稳定增益-13-
2、PID控制仿真并绘图-13-
2.1 P控制仿真-14-
2.2 PI控制仿真-14-
2.3 PID控制仿真-15-
3、制作M文件求取系统阶跃响应性能指标-15-
四、总结-16-
五、参考文献-16-
一、基本操作
程序实现:
自己定义一组数据,并将其保存到文件data.dat。要求第一列为时间t(t为等差数列,0≤t≤200);第二列为与t对应的201个幅值数据,作为信号f 1 (t )的幅值;第三列为按s的降幂排列的传递函数分子系数;第四列为按s的降幂排列的分母系数。第三列、第四列的数据个数不能超过5个。
MATLAB文本:
>> a=0:1:200;
>> b= random('Poisson',0:200,1,201);
>> c=[9 7 4 3 1];
>> d=[7 4 3 2 1];
>> fid=fopen('d:\data.dat','wt');
>> fprintf(fid,'%4d',a);
>> fprintf(fid,'\n');
>> fprintf(fid,'%4d',b);
>> fprintf(fid,'\n');
>> fprintf(fid,'%4d',c);
>> fprintf(fid,'\n');
>> fprintf(fid,'%4d',d);
>>fclose(fid);
图1 data.dat 的读入
读入data.dat数据,画出f 1 (t )的时域波形。
MATLAB文本:
fid=fopen('d:\data.dat','rt');
>> t=fscanf(fid,'%d',201);
>> f1=fscanf(fid,'%d',201);
>> fclose(fid);
>> plot(t,f1)
title('f1-t曲线图');
xlabel('t');ylabel('f1');
图2 f1曲线图
3、
求取f 2 (t ),将结果保存到result.mat文件,画出其时域波形。
MATLAB文本:
for n=1:10
f2(n)=2*f1(n);
end
for n=11:100
if abs(f1(n))<15
f2(n)=f1(n)*f1(n);
else
f2(n)=f1(n-3);
end
end
for n=101:201
f2(n)=f1(n-3);
end
plot(t,f2)
title('f2-t曲线图');
xlabel('t');ylabel('f2');
fid=fopen('d:\