计算机仿真__MATLAB课程设计报告
《计算机仿真》
MATLAB课程设计报告
学院: 自动化学院
专业: 自动化专业
班级:
姓名:
学号:
2013年1月14日
目录
一、1
1、定义一组数据1
2、1
3、作f2(t)的波形2
4、求传递函数以及伯德图3
二、4
1、用simlink建立系统4
2、锯齿波输入下的输出5
3、在工作空间绘制波形图6
三、参数整定
1、8
2、整定10
3、13
四、总结与体会1
五、参考文献1基本操作
程序实现:
1、自己定义一组数据,并将其保存到文件data.dat。要求第一列为时间t(t为等差数列,0≤t≤200);第二列为与t对应的201个幅值数据,作为信号f 1 (t )的幅值;第三列为按s的降幂排列的传递函数分子系数;第四列为按s的降幂排列的分母系数。第三列、第四列的数据个数不能超过5个。
2、读入data.dat数据,画出f 1 (t )的时域波形。
求取f 2 (t ),将结果保存到result.mat文件,画出其时域波形。
4、按 data.dat中的第三列、第四列,求取其对应的传递函数,绘制其bode图。
报告要求:简述程序的实现过程。
各环节实现过程:
直接在excel中按要求写入一组数据,即第一列201个数据t代表201个时间0--200;第二列是与第一列对应的201个幅值数据;第三列为按s的降幂排列的传递函数分子系数;第四列为按s的降幂排列的分母系数。
要画出f1(t)的时域波形,具体做法是:先读取excel中的数据,把它们放入一个矩阵A,取矩阵的第一列作为输入x,取矩阵的第二列作为输入y,最后用plot命令绘制出f1(t)的时域波形。具体编程及f1(t)的时域波形如下:A=xlsread(':\data.dat.xls', 'sheet1');x=A(:,1);y=A(:,2);plot(x,y)
图 f1(t)时域波形图
先读取excel中的数据到矩阵X和Y中,t从0--9时,把Y矩阵第二列的前十行的数据写为原来的二倍,即f2(t)=2*f1(t), (0<=t<10);t从10--100时,把单元格A11--B101之间的90行2列的数据读入矩阵B,找出矩阵B第二列的数据中大于等于15的数据,并把它们清除;然后B中剩下元素就做乘方运算作为对应的f2(t),即f2(t)=f1(t)^2;取单元格A11--B201之间的190行2列的数据读入矩阵C,把矩阵C中属于矩阵B的元素清除,矩阵Y中对应的第二列的幅值数据就是原幅值数据的超前3秒的幅值,即f(t)=f1(t-3)。具体实现代码及其时域波形如下:X=xlsread('J:\data.dat.xls', 'sheet1');
Y=xlsread('J:\data.dat.xls', 'sheet1');
Y(1:10,2)=2*X(1:10,2);
B=xlsread('J:\data.dat.xls','sheet1','A11:B101');
B(find(abs(B(:,2))>=15),:)=[];
Y(B(:,1)+1,2)=X(B(:,1)+1,2).^2;
C=xlsread('J:\data.dat.xls','sheet1','A11:B201');
C(B(:,1)-9,:)=[];Y(C(:,1)+1,2)=X(C(:,1)-2,2);
x=Y(:,1);y=Y(:,2);plot(x,y)
图 f2(t)时域波形图
通过语句将结果保存到result.mat 文件中,具体代码如下:
xlswrite('G:\result.mat.xls',Y, 'sheet1');
读取表格中的C1--C4单元格中的数据,放在矩阵A中,把A转置后作为传函的分子的系数;读取表格中的D1--D5单元格中的数据,放在矩阵B中,把B转置后作为传函的分母的系数。>>A=xlsread('J:\data.dat.xls', 'sheet1','C1:C5');
>>num=A';
>>B=xlsread('J:\data.dat.xls', 'sheet1','D1:D5');
>>den=B';
>>G=tf(num,den)
G =
3 s^4 + 6 s^3 + 9 s^2 + 5 s + 4
-------------------------------
6 s^4 +