Simulink交互式仿真.docx
- 文档编号:2800737
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:12
- 大小:338.95KB
Simulink交互式仿真.docx
《Simulink交互式仿真.docx》由会员分享,可在线阅读,更多相关《Simulink交互式仿真.docx(12页珍藏版)》请在冰点文库上搜索。
Simulink交互式仿真
8.7.4系统平衡点和普通状态轨线图
【例8.7-7】求图8.7-13所示两个模型的平衡点。
模型(b)输入端比模型(a)多一个输入口。
exm080707_1.mdl
exm080707_2.mdl
(a)
(b)
图8.7-13待求平衡点的非线性系统块图模型
(1)
(2)
xa=trim('exm080707_1',[-0.1;-0.3])%<1>
xb=trim('exm080707_1',[0;1])%<2>
xa=
-0.8944
-1.7889
xb=
0.8944
1.7889
(4)
Axa=linmod2('exm080707_1',xa);
eig_Axa=(eig(Axa))'
Axb=linmod2('exm080707_1',xb);
eig_Axb=(eig(Axb))'
eig_Axa=
-1.3944-2.6457i-1.3944+2.6457i
eig_Axb=
3.4110-2.6222
(6)
[xa2,ua]=trim('exm080707_2',[-0.1;-0.3],0)%<3>
[xb2,ub]=trim('exm080707_2',[0;1],1)%<4>
xa2=
-0.7487
-1.4974
ua=
1.1974
xb2=
0.6810
1.3620
ub=
1.6810
(2)
%exm080707_1m.m
clf;
xx=[-2,-1,0,1,1,1,1
1,1,1,1,0,-1,-2];
set_param('exm080707_1','InitInArrayFormatMsg','None')
nxx=size(xx,2);
fork=1:
nxx
opts=simset('initialstate',xx(:
k));%<5>
[t,x]=sim('exm080707_1',10,opts);%<6>
plot(x(:
1),x(:
2));
holdon
end
gridon,holdoff
xlabel('x1');ylabel('x2')
title('普通状态轨线')
图8.7-14多初始点出发的状态轨线和平衡点
.1.1M码和Simulink模型的综合运用
101单步仿真和精良状态轨线图
【例8.7-8】绘制非线性系统
块图模型的精良状态变化轨线。
(1)
function[DX1,DX2,DP]=exm080708_zzy(x1,x2,h)
opts=simset('solver','ode5','fixedstep',h);%<2>
n=length(x1);
DX1=zeros(n,n);DX2=DX1;DP=DX1;
disp('正在逐点计算,请稍等!
')
forii=1:
n;
forjj=1:
n;
opts=simset(opts,'initialstate',[x1(ii);x2(jj)]);%<8>
[~,x]=sim('exm080707_1',h,opts);%<9>
dx1=x(2,1)-x1(ii);
dx2=x(2,2)-x2(jj);
L=sqrt(dx1^2+dx2^2);
DP(jj,ii)=L/h;
ifL>1.e-10
DX1(jj,ii)=dx1;DX2(jj,ii)=dx2;%<15>
end
end
end
disp('计算结束')
(2)
%exm080708m.m
h=0.01;
x1=(-2.5:
0.25:
2.5)';x2=x1;
k=3.5;
set_param('exm080707_1','InitInArrayFormatMsg','None')
xs=trim('exm080707_1',[-0.1;-0.3]);
xus=trim('exm080707_1',[0;1]);
[DX1,DX2,DL]=exm080708_zzy(x1,x2,h);
pcolor(x1,x2,DL)
shadinginterp
alpha(0.5)
colorbar
holdon
quiver(x1,x2,k*DX1,k*DX2,0)
plot(xs
(1),xs
(2),'bo',xs
(1),xs
(2),'+','MarkerSize',10)
plot(xus
(1),xus
(2),'bo',xus
(1),xus
(2),'.','MarkerSize',10)
gridoff
holdoff
xlabel('x1'),ylabel('x2')
title('精良状态轨线斜率图')
shg
图8.7-15精良状态轨线迹斜率图
102仿真模型和优化指令的协调
【例8.7-9】题目背景:
在迄今的自动控制教材中,凡讨论积分性能指标时,几乎总会提到所谓的ITAE传递函数标准型,并列出相应的分母多项式系数表。
但值得指出的是:
这些数据是20世纪50年代初期,用模拟计算机仿真得到的。
因此,这些数据的准确性带有明显的时代缺陷。
与
不同,ITAE性能函数
无法解析计算,而只能通过数值计算进行。
图8.7-16计算
的块图模型
(1)问题的形成
(2)
(3)
%exm080709m.m
globalaJc
amin=min(a0);
na=length(a0);
nd=na+2;
opts=optimset('MaxFunEvals',300*na);
CF=zeros(Kr,nd);Jk=zeros(1,Kr);
forkk=1:
Kr
ar=a0+2*amin*(rand(1,na)-0.5);%<8>
a=fminsearch(@exm080709_itae,ar,opts);
cf=[1,a,1];
CF(kk,:
)=cf;
Jk(kk)=Jc;
end
[Jmin,kmin]=min(Jk);
cfmin=CF(kmin,:
);
%exm080709_itae.m
functionJc=exm080709_itae(aa)
globalaJc
a=aa;
Tspan=[0,0.1,20];%<4>
opts=simset('RelTol',0.0001);
[~,~,Jt]=sim('exm080709',Tspan,opts);%<6>
Jc=Jt(end);
(4)
clear
Kr=5;
a0=[3.25,6.60,8.60,7.45,3.95];
exm080709m
Jmin,cfmin
Jmin=
8.3338
cfmin=
Columns1through6
1.00002.15195.62906.93386.79253.7398
Column7
1.0000
(5)
old=tf(1,[1,a0,1]);
new=tf(1,cfmin);
[yold,told]=step(old,50);
[ynew,tnew]=step(new,50);
plot(told,yold,'b','LineWidth',1)
axis([0,18,0,1.1])
holdon,plot(tnew,ynew,'r','LineWidth',3),holdoff
xlabel('t')
title('ITAE6阶新老标准型的阶跃响应比较')
legend('Old','New',4),gridon
图8.7-17新老标准型的阶跃响应局部放大比较图
表8.7-2ITAE标准型新系数(黑体)和老“经典”系数(细体)对照
阶次
ITAE值
传递函数分母多项式系数
2
1.99
1.9519
11.41
11.50491
3
3.144
3.1383
11.752.151
11.78282.17151
4
4.626
4.5913
12.103.402.751
11.95213.34582.64731
5
7.155
6.3215
12.805.005.503.401
12.06674.49764.67303.25681
6
9.656
8.3338
13.256.608.607.453.951
12.15195.62906.93386.79253.73981
7
15.003
10.6290
14.4810.4215.0515.5410.644.5801
12.21696.74339.346911.5778.67784.32261
8
18.680
13.2051
15.2012.8021.6025.7522.2013.305.151
12.26817.831311.847217.532516.064511.30944.80691
●研究表明:
ITAE函数搜索空间的形状非常复杂,凹凸不平,小谷很多,许多地方深谷高峰相邻。
要找到真正最小值点决非易事。
虽可以肯定:
单点标准型的新系数比老系数具有更小的ITAE值;但不能断言这新系数一定指示着最小值点。
.2数值计算方面的考虑
.2.1微分方程解算器Solver
101ode45和ode23运作机理简要
102ode113运作机理简要
103ode15s和ode23s运作机理简要
104不同解算器解Stiff方程的表现
【例8.8-1】求微分方程
在
时的解。
图8.8-1微分方程的块图模型exm080801
(1)关于exm080901.mdl的说明
(2)
symstxxd
xs=dsolve('D2x+100*Dx+0.9999*x=0','x(0)=1,Dx(0)=0','t')
xsd=diff(xs,'t')
HL2=ezplot(xd-xsd,[0,10,-0.012,0]);
set(HL2,'LineWidth',3)
title(['x''=',char(xsd)])
xs=
9999/(9998*exp(t/100))-1/(9998*exp((9999*t)/100))
xsd=
9999/(999800*exp((9999*t)/100))-9999/(999800*exp(t/100))
图8.8-2微分方程的解x和它的导数dx/dt
(3)
tt=(0:
4000)/10;
xx0=subs(xsd,t,tt);
Tspan=600;
opts=simset('Solver','ode45');
[tt1,xx1,s]=sim('exm080801',Tspan,opts);
opts=simset('Solver','ode15s');
[tt2,xx2,s]=sim('exm080801',Tspan,opts);
plot(tt,xx0,'k',tt1,xx1(:
2),'b:
',tt2,xx2(:
2),'r-.')
axis([246247-8.55e-4-8.35e-4])
legend('Symbolic','ode45','ode15s',0)
xlabel('t'),ylabel('dx/dt')
title('Stiff方程的三种算法结果比较局部放大')
ns1=length(xx1)
ns2=length(xx2)
ns1=
18085
ns2=
101
图8.8-3不同方法的解算结果比较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Simulink 交互式 仿真