通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 机械电子 >> MATLAB >> Matlab基础 >> 文章正文

Matlab 数值计算方面的考虑
责任编辑:admin   更新日期:2005-8-6


9.7 数值计算方面的考虑
9.7.1 微分方程解算器Solver

9.7.1.4 不同解算器处理Stiff系统时表现
【 * 例 9.7.1 .4-1 】求微分方程 时的解。本例演示:对于 Stiff 方程,如果解算方法选择不当将产生严重后果。

(1)用符号计算求此方程解析解 和它的导函数
xsym=dsolve('D2x+100*Dx+0.9999*x=0','x(0)=1,Dx(0)=0','t')
dxsym=diff(xsym,'t')
xsym =
9999/9998*exp(-1/100*t)-1/9998*exp(-9999/100*t)
dxsym =
-9999/999800*exp(-1/100*t)+9999/999800*exp(-9999/100*t)

(2)构作 SIMULINK 模型 exm9714_1.mdl (如图 9.7.1 . 4-1-1 所示)

图 9.7.1 . 4-1-1 Stiff 系统仿真模型

(3)运行以下指令画出三种计算结果的局部放大图
t=(0:5000)/10;x=eval(char(dxsym)); % 产生绘解析解图形的数据
Tspan=500;
opts=simset('Solver','ode45');
[tt1,xx1,s]=sim('exm9714_1',Tspan,opts);%ODE45 解 Exm9714_1 模型
opts=simset('Solver','ode15s');
[tt2,xx2,s]=sim('exm9714_1',Tspan,opts);%ODE15S 解 Exm9714_1 模型
plot(t,x,'k',tt1,xx1(:,2),'b:',tt2,xx2(:,2),'r-.') % 绘比较图
axis([246 247 -8.55e-4 -8.35e-4]) % 局部放大
legend('Symbolic','ODE45','ODE15S',0)
ns1=length(xx1) %ODE45 解点数
ns2=length(xx2) %ODE15S 解点数
ns1 =
15072
ns2 =
101


图 9.7.1 . 4-1-2 不同方法解 Stiff 方程的结果比较


9.7.2 积分步长和容差
9.7.2.1 积分步长的选择
【例 9.7.2 .1-1 】以例 9.5.2-1 的多采样模型 exm952_1.mdl 为基础。试验解算器、工作模式、采样转移模块的影响。

(1)在例 9.5.2 -1 中,采用变步长 ode45 解算器 ,工作正常。
(2)采用任何一种定步长解算器,比如 ode5 ,如果工作模式选 MultiTasking ,那么运行仿真后,将显示“出错”信息,指出存在速率冲突。
(3)如果定步长解算器 ode5 时,采用 SingleTasking 工作模式,那么仿真正常运行。
(4)如果定步长解算器 ode5 时,采用 Auto 工作模式,仿真后,将显示与多任务模式下相同的“出错”信息。

9.7.2.2 计算容差的选择


9.7.3 代数环问题

9.7.3.1 代数环的形成
【例 9.7.3 .1-1 】研究方程组 的解算问题。

(1)用 SIMULINK 对方程组建立如图 9.7.3 .1-1 所示的模型(带代数环)


图 9.7.3 .1-1 按原始方程所建的模型 exm9731_1.mdl


9.7.3.2 代数环的处理
【例 9.7.3 .2-1 】本例以例 9.7.3.1-1 为基础。演示:通过重组模型,直接消除代数环,建立等价模型。

(1)对式( 9.7.3 .1-1 )两边的 项进行合并,得
(2)据以上两个方程建立等价模型 exm9732_2.mdl (见图 9.7.3 .2-1 )


图 9.7.3 .2-1 消除了代数环的等价模型

【 * 例 9.7.3 .2-2 】本例以例 9.7.3.1-1 为基础。演示:
(A)利用“记忆”模块中断代数环。
(B)“记忆”模块的副作用。
(C)与前两个模型做性能比较。

(1)利用 exm9731_1.mdl ,制作采用“记忆”模块切断代数环的新模型 exm9732_2.mdl 。

图 9.7.3 . 2-2-1 用“记忆”模块切断代数环的模型 exm9732_2.mdl

(2)运行以下指令,观察不同模型的仿真性能
clear all
tic;[t1,x1,y1]=sim('exm9731_1',5);T1=toc;
tic;[t2,x2,y2]=sim('exm9732_1',5);T2=toc;
tic;[t3,x3,y3]=sim('exm9732_2',5);T3=toc;
disp([blanks(4),' 有代数环 ',blanks(3),' 无代数环 ',blanks(3),' 带记忆块 '])
disp([T1,T2,T3])
plot(t1,y1,'g','LineWidth',6),hold on
plot(t2,y2,'r','LineWidth',2)
plot(t3,y3,'b'),hold off
legend('with loop','without loop','memory',4)
Warning: Block diagram 'exm9731_1' contains 1 algebraic loop(s).
Found algebraic loop containing block(s):
'exm9731_1/k3'
'exm9731_1/Sum'
'exm9731_1/k2'
'exm9731_1/Sum1' (algebraic variable)
有代数环 无代数环 带记忆块
3.0800 0.1100 0.2700


图 9.7.3 . 2-2-2 不同模型的仿真性能比较

 
  • 上一篇文章:
  • 下一篇文章:
  • 热门文章
    Olldbg常见问题
    汇编语言的艺术(组合语言的艺术)--观
    汇编语言的艺术(组合语言的艺术)--准
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言---程式设计 (4)
    虚拟8086模式
    SYS命令使用说明
    javascript + CSS 实现动态菜单显
    推荐文章
    自制Windows XP SP2自动安装光盘
    SQLServer注入工具改进版 v1.02
    使用photoshop CS进行自然美肤
    Photoshop绘制诺基亚手机
    PHOTOSHOP制作秋日之梦
    PHOTOSHOP鼠绘名模王爱萍
    Photoshop制作晶莹飞溅的水珠
    教你用PHOTOSHOP做放大镜
    鼠绘美女及服装修画全过程