机电控制系统仿真 实验报告.docx
《机电控制系统仿真 实验报告.docx》由会员分享,可在线阅读,更多相关《机电控制系统仿真 实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
机电控制系统仿真实验报告
科技学院
ScienceandTechnologyCollege
上机调试报告
课程名称:
机电控制系统仿真
指导教师:
专业班级:
姓名:
学号:
成绩:
2012年12月
第一次上机:
MATLAB语言基础
1.1问题描述
本次上机共进行了3个问题的调试,分别是:
1命令窗口中矩阵的定义与常用矩阵的生成;
2矩阵的运算;
3二维图形的绘制
4多项式根的求解与反求
5循环语句的应用
1.2程序编制
对应于问题①的程序如下:
a=ones(3,2)
b=ones(3)
v=[1,2,3,4]
a=diag(v)
a=rand(3,2)
a=1;b=2;c=3;x=[5bc;a*ba+cc/b]
a=linspace(1,10,10)
a=eye(3,2)
b=eye(3)
a=zeros(3,2)
b=zeros(3)
对应于问题②的程序如下:
a=[123;456;235];b=inv(a)
c=det(a)
d=rank(a)
a=[123;345];[m,n]=size(a)
length(A)=max(size(A))
a=[123;456]'
a1=[123;456].'
b=[1+2i2-7i]'
b2=[1+2i2-7i].'
对应于问题③的程序如下:
xlabel('time/s')
ylabel('amplitude/1')
axis([0,6.28,-1.5,1.5])
figure
(2)
subplot(2,1,1)
plot(t,y2)
xlabel('time/s')
ylabel('amplitude/1')
axis([0,6.28,-1.5,1.5])
subplot(2,1,2)
plot(t,y3)
xlabel('time/s')
ylabel('amplitude/1')
axis([0,6.28,-1.5,1.5])
t=0:
0.01:
2*pi;
y=sin(t);
y1=sin(t+0.5*pi);
y2=cos(t);
y3=cos(t+0.5*pi);
figure
(1)
subplot(1,2,1)
plot(t,y)
xlabel('time/s')
ylabel('amplitude/1')
axis([0,6.28,-1.5,1.5])
subplot(1,2,2)
plot(t,y1)
对应于问题④的程序如下:
p=[1-12025116];a=roots(p)
r=[11.7473,2.7028,-1.2251+1.4672i,-1.2251-1.4672i];
p=poly(r)
a=[123];b=[12];c=conv(a,b)
对应于问题⑤的程序如下:
A=zeros(9);
fori=1:
1:
9
forj=1:
1:
9
a(i,j)=i*j;
ifia(i,j)=0
end
end
end
1.3运行结果
对应于问题①,运行程序后得到结果如下:
对应于问题②,运行程序后得到结果如下:
对应于问题③,运行程序后得到结果如下:
对应于问题④,运行程序后得到结果如下:
a=
11.7473
2.7028
-1.2251+1.4672i
-1.2251-1.4672i
p=1.0000-11.9999-0.001525.0012116.0023
c=1476
对应于问题⑤,运行程序后得到结果如下:
第二次上机:
MATLAB的符号运算
2.1问题描述
本次上机共进行了5个问题的调试,分别是:
1命令窗口中符号矩阵的定义;
2命令窗口中符号矩阵的修改;
3计算不定积分
4拉氏变换和反拉氏变换
5方程求解
6用matlab表示传递函数
2.2程序编制
对应于问题①的程序如下:
A=sym('[a,2*b;3*a,0]')
B=['[a,2*b]';'[3*a,0]']
对应于问题②的程序如下:
A1=subs(A,'b','c')
A1(2,2)='4*b'
对应于问题③的程序如下:
m=int(int('x*exp(-x*y)','x'),'y')
对应于问题④的程序如下:
n=laplace(m)
k=ilaplace(n)
对应于问题⑤的程序如下:
f='a*x^2+b*x+c';solve(f)%方程f=ax2+bx+c求解
f='a*x^2+b*x+c';solve(f,'b')%指定求解变量为b
对应于问题⑤的程序如下:
num=[1,1];den=[1,2,1];%传递函数分子分母系数(降幂排列)
G=tf(num,den)
2.3运行结果
对应于问题①,运行程序后得到结果如下:
B=
[a,2*b]
[3*a,0]
A=
[a,2*b]
[3*a,0]
对应于问题②,运行程序后得到结果如下:
A1=
[a,2*(c)]
[3*a,4*b]
A1=
[a,2*(c)]
[3*a,0]
对应于问题③,运行程序后得到结果如下:
m=
1/y*exp(-x*y)
对应于问题④,运行程序后得到结果如下:
n=k=
1/y/(s+y)1/y*exp(-y*t)
对应于问题⑤,运行程序后得到结果如下:
ans=
1/2/a*(-b+(b^2-4*a*c)^(1/2))
1/2/a*(-b-(b^2-4*a*c)^(1/2))
对应于问题⑥,运行程序后得到结果如下:
Transferfunction:
s+1
-------------
s^2+2s+1
第三次上机:
控制系统的MATLAB分析
3.1问题描述
本次上机共进行了8个问题的调试,分别是:
1系统传递函数的求解;
2带反馈的传递函数系统阶跃响应和单位脉冲响应求解;
3阻尼比变化时的阶跃响应求解
4系数变化时的系统阶跃响应求解
5输入为任意函数的系统响应求解
6判定系统稳定性
7典型环节的波德(Bode)图绘制
8奈奎斯特图的绘制
3.2程序编制
对应于问题①的程序如下:
symstsrRcC;
r=1*sym('heaviside(t)')+t*sym('heaviside(t)');
c=t+0.9-0.9*exp(-10*t);
R=laplace(r);
C=laplace(c);
G0=C/R;
G=factor(G0)
对应于问题②的程序如下:
num=[20];
den=[1836400];
sys1=tf(num,den);
sys=feedback(sys1,1);
t=0:
0.1:
10;
y=step(sys,t);
plot(t,y)
%dc=dcgain(numc,denc)
dc=dcgain(sys)
num=[20];
den=[1836400];
sys1=tf(num,den);
sys=feedback(sys1,1);
t=0:
0.1:
10;
y=impulse(sys,t);
plot(t,y)
num=1;t=0:
0.1:
19.9
forbc=0.1:
0.1:
1
den=[1,2*bc,1];
sys=tf(num,den);
i=i+1;
step(sys,t)
holdon
end
对应于问题③的程序如下:
对应于问题④的程序如下:
num=1;den=conv(conv([10],[0.51]),[4,1]);
rangek=[1.4,2.3,3.5];
t=linspace(0,20,200)';
forj=1:
3
s1=tf(num*rangek(j),den);
sys=feedback(s1,1);
y(:
j)=step(sys,t);
end
plot(t,y(:
1:
3)),grid
gtext('k=1.4'),gtext('k=2.3');gtext('k=3.5')
对应于问题⑤的程序如下:
对应于问题⑥的程序如下:
holdon;
plot(t,u,':
');
clear
P=[12345];
roots(P)
num=1;den=[11];sys=tf(num,den);
t=0:
0.01:
10;
u=sin(2*t);
lsim(sys,u,t);
holdon;
%固有频率为1,阻尼比0.1的振荡环节
num=[1];
den=[10.01];
sys2=tf(num,den);
figure(3)
bode(sys2)
%惯性环节
num=[1];
den=[11];
figure
(2)
sys1=tf(num,den);
bode(sys1)
%积分环节
num=[1];
den=[10];
sys=tf(num,den);
figure
(1)
bode(sys)
对应于问题⑦的程序如下:
sys=tf(num3,den3);
figure
(1)
nyquist(sys);
title('nyquistplot')
figure
(2)%绘制冲击响应曲线验证判断
[numc,denc]=cloop(num3,den3);
impulse(numc,denc)
num1=[16.70];
den1=conv([0.851],conv([0.251],[0.06251]));
[num2,den2]=cloop(num1,den1);
num3=10*num2;
den3=den2;
[z,p,k]=tf2zp(num3,den3);
%P=num3+den3;%roots(P)
对应于问题⑧的程序如下:
3.3运行结果
对应于问题①,运行程序后得到结果如下:
对应于问题②,运行程序后得到结果如下:
对应于问题③,运行程序后得到结果如下:
对应于问题④,运行程序后得到结果如下:
对应于问题⑤,运行程序后得到结果如下:
对应于问题⑥,运行程序后得到结果如下:
对应于问题⑦,运行程序后得到结果如下:
对应于问题⑧,运行程序后得到结果如下:
第四次上机:
控制系统的Simulink仿真
4.1问题描述
本次上机共进行了1个问题的调试:
带单位响应的阶跃响应模型建立与验证。
4.2程序编制
模型建立如下:
“StartSimulation”之后,双击“Scope”的下图:
“Command”验证程序及结果如下: