实验14.docx
- 文档编号:26570317
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:39
- 大小:593.75KB
实验14.docx
《实验14.docx》由会员分享,可在线阅读,更多相关《实验14.docx(39页珍藏版)》请在冰豆网上搜索。
实验14
目录
一、实验内容及目的2
二、实验方案内容2
1.非线性环节正弦波响应曲线2
1)死区特性2
2)饱和特性3
3)滞环特性4
4)摩擦特性5
5)继电器特性6
2.非线性系统的单位负反馈响应曲线和相平面图8
1)死区特性8
2)饱和特性9
3)滞环特性10
4)继电器特性11
3.描述函数法分析系统稳定性13
4.非线性环节在控制系统中的应用15
三、实验结果及分析17
1.非线性环节正弦波响应曲线17
2.非线性系统的单位负反馈响应曲线和相平面图21
1)继电特性21
2)滞环特性22
3)饱和特性23
4)死区特性24
3.描述函数法25
4.非线性阻尼控制26
5.非线性系统特性分析28
四、实验中遇到的问题28
一、实验内容及目的
本次实验的内容主要为绘制非线性环节的正弦波响应曲线,非线性系统的单位负反馈响应曲线和相平面图,以及用描述函数法分析非线性系统的稳定性。
通过本次实验掌握相平面法和描述函数法。
2、实验方案内容
1.非线性环节正弦波响应曲线
1)死区特性
死区特性是当输入信号较小时,死区特性的输出为零;当输入信号的绝对值大于或等于某一定值时,死区特性的输出不为零,并与输入呈线性关系。
代码如下
clc;
clearall;
closeall;
xian=0.6;
st=10;
dt=0.01;
lp=st/dt;
t=dt:
dt:
st;
w=3;
u=sin(w*t);
Y=[];
fori=1:
lp
ifu(i)>xian
y=u(i)-xian;
elseifu(i)<-xian
y=u(i)+xian;
else
y=0;
end
end
Y=[Yy];
end
plot(t,Y);
title('ËÀÇøÌØÐÔ');
2)饱和特性
饱和特性的变化规律是当输入信号较小时,即在一定范围内,饱和非线性环节的输出与输入呈线性关系;当输入信号超过该范围时,非线性环节的输出呈饱和状态。
代码如下:
clc;
clearall;
closeall;
xian=0.6;
st=10;
dt=0.01;
lp=st/dt;
t=dt:
dt:
st;
w=3;
u=sin(w*t);
Y=[];
fori=1:
lp
ifu(i)>xian
y=xian;
elseifu(i)<-xian
y=-xian;
else
y=u(i);
end
end
Y=[Yy];
end
plot(t,Y);
title('±¥ºÍÌØÐÔ');
3)滞环特性
代码如下
clc;
clearall;
closeall;
xian=0.5;
st=10;
dt=0.01;
lp=st/dt;
t=dt:
dt:
st;
w=3;
u=sin(w*t);
Y=[];
y=0;
fori=1:
lp-1
ifu(i)-xian>y&&u(i+1)>u(i)
y=u(i)-xian;
elseifu(i)+xian y=u(i)+xian; end end Y=[Yy]; end t=dt: dt: st-dt; plot(t,Y); title('¼ä϶ÌØÐÔ'); 4)摩擦特性 代码如下 clc; clearall; closeall; dong=0.3;%¶¯Ä¦²Á×èÁ¦ jing=0.5;%¾²Ä¦²Á×èÁ¦ do=0;%Ô˶¯×´Ì¬£¬0Ϊ¾²Ö¹£¬1ΪÔ˶¯ st=10; dt=0.01; lp=st/dt; t=dt: dt: st; w=3; u=sin(w*t); Y=[]; fori=1: lp ifu(i)>jing&&u(i)>0 do=1; end ifu(i)<-jing&&u(i)<0 do=1; end ifdo==1 ifu(i) do=0; end ifu(i)>-dong&&u(i)<0 do=0; end end ifdo==0 y=0; end ifdo==1 ifu(i)>0 y=u(i)-dong; end ifu(i)<0 y=u(i)+dong; end end Y=[Yy]; end plot(t,Y); title('Ħ²ÁÌØÐÔ'); 5)继电器特性 代码如下 理想继电器 clc; clearall; closeall; xian=1; st=10; dt=0.01; lp=st/dt; t=dt: dt: st; w=3; u=sin(w*t); Y=[]; fori=1: lp ifu(i)>0 y=xian; elseifu(i)<0 y=-xian; end end Y=[Yy]; end plot(t,Y); title('ÀíÏë¼ÌµçÆ÷ÌØÐÔ'); 死区继电器 clc; clearall; closeall; xian=0.3; st=10; dt=0.01; lp=st/dt; t=dt: dt: st; w=3; u=sin(w*t); Y=[]; fori=1: lp ifu(i)>xian y=1; elseifu(i)<-xian y=-1; else y=0; end end Y=[Yy]; end plot(t,Y); title('ËÀÇø¼ÌµçÆ÷ÌØÐÔ'); 一般继电器 clc; clearall; closeall; xian1=0.3; xian2=0.8; st=10; dt=0.01; lp=st/dt; t=dt: dt: st; w=3; u=sin(w*t); Y=[]; fori=1: lp-1 ifu(i+1)>u(i) ifu(i+1)>xian2 y=1; elseifu(i+1)<-xian1 y=-1; else y=0; end end end ifu(i+1) ifu(i+1)>xian1 y=1; elseifu(i+1)<-xian2 y=-1; else y=0; end end end Y=[Yy]; end t=t(1: lp-1); plot(t,Y); title('Ò»°ã¼ÌµçÆ÷ÌØÐÔ'); 2.非线性系统的单位负反馈响应曲线和相平面图 1)死区特性 代码如下 clc; clearall; closeall; dt=1; st=1000; lp=st/dt; k=0.1; T=10; a=exp(-dt/T); b=1-a; x(1: 2)=0; e0=0; y1=[]; t1=[]; xx=[]; yx=[]; fori=1: lp r=1; e=r-x (2); e1=(e-e0)/dt; e0=e; if(e>=0.1);u=2;end if(e<-0.1);u=-2;end if(e>=-0.1&&e<0.1);u=0;end x (1)=x (1)+u*dt; x (2)=x (2)*a+k*b*x (1); y1=[y1x (2)]; t1=[t1i*dt]; xx=[xxe]; yx=[yxe1]; end xx=xx(2: end); yx=yx(2: end); figure (1) plot(t1,y1); title('ËÀÇøÌØÐÔ') figure (2) plot(xx,yx); title('ËÀÇøÌØÐÔÏàƽÃæͼ'); 2)饱和特性 代码如下 clc; clearall; closeall; k=1; T=10; dt=1; st=200; lp=fix(st/dt); a=exp(-dt/T); b=1-a; r=1; x1=0; xi=0; ui=0; e2=[]; e3=[]; e0=0; t=[0]; y=[0]; fori=1: lp e=r-x1; e1=(e-e0)/dt; e0=e; ife>1 u=1; elseife>=-1 u=e; elseu=-1; end end ui=ui+u*dt; x1=a*x1+k*b*ui; y=[yx1]; t=[ti*dt]; ifi>1 e2=[e2e];e3=[e3e1]; end end plot(t,y); gridon; title('±¥ºÍÌØÐÔÇúÏß'); holdon; figure (2); plot(e2,e3); gridon; title('±¥ºÍÌØÐÔÇúÏß'); 3)滞环特性 代码如下 clc; clearall; closeall; k=1; T=10; dt=0.1; st=200; r=1; lp=fix(st/dt); a=exp(-dt/T); b=1-a; e0=0; e2=[]; e3=[]; x(1: 2)=0; t=[]; y=[]; h=0.1; M=1; fori=1: lp e=r-x (2); e1=(e-e0)/dt; e0=e; ife>=h u=M; elseife>-h ife1>0 u=-M; elseu=M; end elseu=-M; end end x (1)=x (1)+u*dt; x (2)=a*x (2)+k*b*x (1); ifi>1 e2=[e2e]; e3=[e3e1]; end y=[yx (2)]; t=[ti*dt]; end plot(t,y,'r'); gridon; title('ÖÍ»·ÌØÐÔ'); figure (2); plot(e2,e3); gridon; title('ÖÍ»·ÌØÐÔ'); 4)继电器特性 代码如下 clc; clearall; closeall; k=1; T=10; dt=0.1; st=100; lp=fix(st/dt); a=exp(-dt/T); b=1-a; x(1: 2)=0; t=[]; y=[]; yz=[]; h=0.5; r=1;M=1;e0=0;e2=[];e3=[]; fori=1: lp e=r-x (2);%Îó²î e1=(e-e0)/dt;%Îó²îµÄµ¼Êý e0=e; ife>h u=M; elseife>=-h u=0; elseu=-M; end end x (1)=x (1)+u*dt; x (2)=a*x (2)+k*b*x (1); y=[yx (2)]; t=[ti*dt]; ifi>1 e2=[e2e];e3=[e3e1]; end end plot(t,y,'r');gridon; holdon; k=1; T=20; dt=0.1; st=100; lp=fix(st/dt); a=exp(-dt/T); b=1-a; x(1: 2)=0; t1=[]; y1=[]; r=1; M=1; e0=0; e4=[]; e5=[]; fori=1: lp e=r-x (2); e1=(e-e0)/dt; e0=e; ife>=0 u=M; elseu=-M; end x (1)=x (1)+u*dt; x (2)=a*x (2)+k*b*x (1); y1=[y1x (2)]; t1=[t1i*dt]; ifi>1 e4=[e4e];e5=[e5e1]; end end plot(t1,y1); legend('Ò»°ã¼ÌµçÌØÐÔ','ÀíÏë¼ÌµçÌØÐÔ'); holdon; figure (2); plot(e2,e3,'r',e4,e5,'b'); legend('Ò»°ã¼ÌµçÌØÐÔ','ÀíÏë¼ÌµçÌØÐÔ'); title('¼ÌµçÌØÐÔÏàƽÃæͼ') gridon; 3.描述函数法分析系统稳定性 非线性系统的稳定判据: 如果线性部分开环频率特性G(jw)是稳定的,则 1)如果G(jw)曲线不包围 曲线,则非线性系统是稳定的 2)如果G(jw)曲线包围 曲线,则非线性系统是不稳定的 3)如果G(jw)曲线与 曲线相交,则在非线性系统中产生周期运动 给定一系统,由饱和非线性环节和传递函数 ,求出其kc=15。 绘制图像分析其稳定性。 代码如下 计算临界增益 clc; clearall; closeall; sys1=tf(1,[0.110]); sys2=tf(1,[0.251]); sysk=sys1*sys2; [Gm,Pm,a,b]=margin(sysk); sys=feedback(sysk*Gm,1); step(sys); 描述函数分析 clearall; closeall; clc; T1=0.1; T2=0.25; K=15; Astart=0.01; M=1; Aend=1; A=Astart: 0.01: Aend; lp1=fix((Aend-Astart)/0.01); NA=zeros(lp1+1,1); fori=1: lp1+1 NA(i)=4*M/(pi*A(i)); end m_NA=-1./NA; num=[K]; den=conv([T11],[T210]); w=5: 0.1: 100; [rem,img,w]=nyquist(num,den,w); plot(real(m_NA),imag(m_NA),'r-','linewidth',2); holdon; plot(rem,img,'k-','linewidth',2); gridon; a0=spline(real(m_NA),A,-0.0667) na0=spline(A,NA,a0) w0=spline(rem,w,-0.0667) 阶跃响应曲线 clc; closeall; clearall; k=15; T1=0.1; T2=0.25; dt=0.001; st=10; lp=fix(st/dt); fori=1: lp r(i)=1; end x1=0; x2=0; x3=0; a1=exp(-dt/T1); b1=1-a1; a2=exp(-dt/T2); b2=1-a2; y=[0]; t=[0]; e1=0; le=[]; lde=[]; delta=1; u=0; fori=1: lp e=r(i)-x3; le=[lee]; temp=(e-e1)/dt; lde=[ldetemp]; ifabs(e)<=delta u=2*e; else u=2*sign(e); end x1=x1+dt*k*u; x2=a1*x2+b1*x1; x3=a2*x3+b2*x2; y=[yx3]; t=[ti*dt]; e1=e; end ks=num2str(k); subplot(2,1,1); title(text); plot(t,y); [aa,bb,cc,dd,ee,ff,gg]=value(y,dt); gridon; legend(gg); subplot(2,1,2); ec=y-1; plot(t,ec); gridon; text=['k=',ks]; 4.非线性环节在控制系统中的应用 对象传递函数为 ,采用微分先行的方法控制。 然后在微分反馈前加入死区环节进行控制,比较控制的效果。 代码如下 clc; clearall; closeall; k=2; T=1; xian=0.7; st=20; dt=0.01; lp=st/dt; r=1; x(1: 2)=0; a=exp(-dt/T); b=1-a; y=0; t=[]; Y=[]; y0=0; y1=0; fori=1: lp e=r-y1; x (1)=x (1)*a+k*e*b; x (2)=x (2)+x (1)*dt; ifx (2)<-xian y=x (2)+xian; elseifx (2)>xian y=x (2)-xian; else y=0; end end y1=(y-y0)/dt+x (2); y0=y; Y=[Yx (2)]; t=[ti*dt]; end [v1,v2,v3,v4,v5,v6,v7]=value(Y,dt); plot(t,Y); legend(v7,4); 三、实验结果及分析 1.非线性环节正弦波响应曲线 在正弦信号的输入下,线性系统的输出响应是同频率的正弦信号,仅其振幅和相位发生变化。 而非线性系统对正弦信号输入的输出响应相当复杂,其输出量中包含有倍频和分频等谐波分量,有时可能出现跳跃或不连续的现象。 2.非线性系统的单位负反馈响应曲线和相平面图 1)继电特性 2)滞环特性 3)饱和特性 4)死区特性 3.描述函数法 描述函数 k=15 K=2 非线性系统的稳定判据: 如果线性部分开环频率特性G(jw)是稳定的,则 1)如果G(jw)曲线不包围 曲线,则非线性系统是稳定的 2)如果G(jw)曲线包围 曲线,则非线性系统是不稳定的 3)如果G(jw)曲线与 曲线相交,则在非线性系统中产生周期运动 4.非线性阻尼控制 死区为0.7时 无死区时 采用非线性阻尼控制,能减小调节时间。 5.非线性系统特性分析 非线性系统具有以下特点 1.不能应用叠加原理 2.系统的稳定性和输出响应不仅与系统的结构和参数有关(与线性系统相同),还与系统的初始条件及输入信号的形式和大小有关。 3.当输入量为正弦函数时,输出的稳态分量则往往是包含有高次谐波分量的非正弦函数。 而且还可能发生一些线性系统不会遇到的现象: 1)跳跃谐振: 输入的ω连续变化,输出的幅值和相位在某点发生突变。 2)频率捕捉: 在一定的条件下,自振荡频率可能会被外加信号的频率所改变。 3)倍频振荡或分频振荡: 输出的频率可能是输入频率的整数倍或反之。 4.在无外加作用的情况下,可能会产生具有一定频率和振幅的稳定的等幅振荡,称为自激振荡或极限环(可观察到)。 线性系统只有在临界稳定的情况下,才产生极限环,且不稳定,不能观察到。 四、实验中遇到的问题 1.K=2时,描述函数法中两条曲线仍然相交,为什么响应曲线却是稳定的?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 14
![提示](https://static.bdocx.com/images/bang_tan.gif)