1、MATLAB数值分析技术在丁坝建模中的应 用 陈晓燕 张小霞 张新华 辽宁省清河水库管理局 四川大学水力学与山区河流 开发保护国家重点实验室 摘 要: 应用MATLAB 的数值分析功能, 尤其是其简便易操作且能同步可视化的 cftool 工具 (Curve Fitting Tool) , 对数值模拟中物理模型建立时遇到的空间曲面函 数难以确定的问题, 做了具体分析及计算, 通过实验模型中几个关键点拟合出 了与实验丁坝坝头曲面符合度很高的二次曲面函数, 应用此函数建立的数值模 拟实验地形结构与原物理实验结构符合良好, 由此避免了地形设置不恰当引起 的误差, 提高了精度。 关键词: 数值分析; M
2、ATLAB; 数据拟合; 数值模拟; 丁坝; 基金:国家自然科学基金 (51379137;51579162) 1 研究背景 随着计算机科学的不断进步, 很多理论上解难以解决的问题, 都可以通过数值 模拟的方式得到满足工程实际需要的近似解。常用的数学模型多采用 C语言或 Fortran语言编写的, 在解决工程问题时, 通常需要针对具体问题建立对应的 几何或地形模型并划分网格, 若能用数学函数准确地反映实际地形将会极大地 提高模拟结果的可靠性, 也能更好地解释一些工程现象及其产生的原因。 但是, 实际可获取的地形数据总是有限的, 而且不一定是规整的、结构化的。在 利用C语言或Fortran语言编制
3、数值模拟模型中添加精细化的地形模块比较耗时, 不能同步可视化并适时调整模型。 根据已有数据及其具体地形特征, 选取适宜的 数值分析方法, 并应用 MATLAB 实现数据插值或数据拟合, 求解插值函数则更为 方便、快捷, 并且易于核查分析结果的准确性。 2 理论基础 2.1 数值分析方法 应用有限的地形数据获取较为精确的物理模型属于数据拟合问题, 在数值分析 中, 常被称为数值逼近, 是为离散数据 (不论何种途径得到) 建立简单连续模 型的方法。数值逼近方法有插值法和拟合法两种1, 两种方法又可根据处理方 式或选取的函数类型不同分为许多具体方法, 详细方法可参考有关文献。 2.2 MATLAB简
4、介 MATLAB (Matrix Laboratory) 是矩阵实验室的简称, 和Mathematica, Maple 并称为三大数学软件。MATLAB主要应用于工程计算、控制设计、信号处理与通 讯、图像处理、信号检测、金融建模设计与分析等领域, 具有六大主要特性和优 点:友好的工作平台和编程环境10, 简单易用的程序语言, 强大的科学计算机 数据处理能力, 出色的图形处理功能, 应用广泛的模块集合工具箱, 实用的程 序接口和发布平台。 目前, MATLAB 已经把工具箱延伸到了几乎所有科学研究和工程应用领域。 3 案列分析 3.1 研究工况 张小霞12在对自编二维的浅水模型 (SWE) 验证
5、时, 采用了蔡荣13的丁坝定 床水槽实验数据。试验水槽长 7.2 m、宽2 m、高约30 cm, 水槽底部铺设平整, 模型河床的纵比降为 0.16%。实验中丁坝布置在水槽中部, 结构如图 1所示。丁 坝坝体为不透水丁坝, 丁坝横断面采用梯形断面, 迎水坝坡为1.01.5, 背水 坝坡为12, 坝头坡面为光滑曲面, 坝头坡 1.03.5。流量为15 L/s, 尾水水 深3.36 cm。 图1 实验丁坝结构示意图 (单位:cm) 下载原图 3.2 数据分析及模型建立 为验证SWE模型中水动力模块的可靠性, 将丁坝结构作进一步分析。 以丁坝左上 角底部为坐标原点, 建立坐标系如图2所示, 其中分别以
6、坝宽、坝长、坝高方向 为x, y, z 轴。 根据丁坝结构示意图可以将丁坝分为 4个面, 其中面 1-3为平面, 所有参数可以准确设置;面4为曲面, 曲面4上各点的坐标确定需要进一步分析, 由其形状可以推知曲面 4为一个二次曲面, 可由Z=f (x, y) 表示出来, 式中x 和y的最高次项都不超过 2次。曲面4上有 5条特征线分别为图2中 L1-L5, 同 时有5 个边界点, 可以直接由丁坝结构示意图推求得到, 为提高数值逼近精度又分别增加特征线L1-L4的4个中点, 一共构成9个特征点, 根据所建坐标模型 推求出各点坐标并列于表 1。 图2 丁坝特征点/线/面示意图 下载原图 3.3 Ma
7、tlab 模型求解 以上分析表明:需要求解的问题曲面4的表达式, 已知条件曲面4上的 几个特征边界点线及曲面 4大致符合的函数类型, 所求函数在已知数据空间内, 并且知道函数为二次曲面函数, 结合插值法和拟合法两种数值逼近方法的优缺 点及适用性, 可知该问题更适合用拟合法求解。 表1 特征点坐标 下载原表 因此, 采用 MATLAB 曲线拟合工具cftool (Curve Fitting Tool) 实现对 19 点的二次曲面拟合。通过选用不同的拟合增强方式并调整 x, y的最高项次数 (2 次或1 次) , 得到的最佳拟合结果如图3所示。 图3 点 1-9二次曲面拟合结果 下载原图 此次拟合
8、回归平方和 SSE=1.4510, 决定系数 R=0.990 3, 拟合得到的曲面 4 的表达式: 比较图3和丁坝示意图图1, 可以发现模拟结果形式符合, 但存在一定偏差, 尤 其是坝头底部的曲线明显偏向右侧, 和原实验中丁坝坝头底部曲线不符。 为调整 拟合图形, 可在丁坝坝头底部曲线 L5上增加 2个控制点。为此需要先求出 L5 的表达式, 通过点3, 4, 5三个点进行二次曲线拟合, 最佳拟合结果如图4所示, 拟合曲线L5的表达式为式 (2) 。 图4 丁坝坝头底部曲线拟合结果 下载原图 由式 (2) , 推求出曲线 L5上两点10 (0.08, 0.79, 0.00) 和11 (0.25
9、, 0.83, 0.00) , 加上前面表2中列出的9个点, 用此11个点对曲面4进行二次拟合, 调 整不同的拟合增强方式并改变 x, y的最高项次数, 得到的最佳拟合结果如图 5 所示, 其回归平方和 SSE=1.39910, 决定系数 R=0.992 7, 拟合得到的曲面 4 的表达式为式 (3) 。比较图5 和丁坝示意图图 1, 发现模拟结果符合较好。 图5 点 1-11二次曲面拟合结果 下载原图 3.4 拟合结果应用情况 在SWE模型中采用拟合式3求取坝头各网格点上的高程, 得到初始河道地形图如 图6所示。对丁坝细节应用数值拟合, 并采用 MATLAB可视化分析得到了较为准 确细致的丁
10、坝结构, 将图6与图1相比较, 上述方法具有较高的真实性, 应用模 拟函数可以构建出与上下游坝面以及河底均能平滑相接的地形模型。 图6 SWE 模型水动力验证模拟试验地形图 下载原图 为检验丁坝模型对水动力模拟结果的影响, 分别应用上述拟合丁坝结构和简化 为立方体结构的丁坝进行河槽水动力计算。 除丁坝结构外, 其余参数均按照蔡荣 实验进行设置。计算区域长 7.2 m、宽2 m, 采用非均匀网格, 在丁坝位置处网 格较密, 离丁坝越远网格尺寸越大。对于拟合丁坝 X, Y方向的最小网格均为 0.01 m, 总网格数为 34282个, 时间步长取为 0.001 s/步。对于简化丁坝采 用长0.67
11、m、宽0.35 m、高0.1 m 的立方体, 在计算区域内X, Y方向的最小网 格均为0.02 m, 总网格数为 22262个, 时间步长取为 0.01 s/步。 图7为模拟流速与蔡荣实验测得的流速分布图, 其中图7a为蔡荣实测数据。对 拟合丁坝水动力模拟和简化丁坝水动力模拟结果提取相关断面的流速数据, 应 用tecplot 绘制流速矢量分别如图 7b和图 7c所示。 整体上SWE模型计算结果都 很好地模拟出了丁坝作用下水流流速分布, 与实测保持较高的一致性。 在丁坝附 近, 拟合丁坝的计算流速与实验更加接近。 模拟结果与蔡荣实验数据误差分析如表 2所示。如图 7 (a) 所示, 测量了9个
12、断面的流速, 从左到右依次编号。 在有测量数据的点 (速度为零的点不包括在内) 位上, 分别比较拟合丁坝和简化丁坝计算结果的相对误差和绝对误差, 然后取 平均求得断面平均的相对误差和绝对误差分别列于表2中。 图7 应用结果比较图 下载原图 表2 特征点坐标 下载原表 简化丁坝整体平均流速绝对误差为 0.056 m/s, 比拟合丁坝整体平均流速绝对误 差 (0.047 m/s) 高出近 0.01 m/s;相应的整体平均相对误差高出 3%。由此可见, 应用上述拟合所得地形模型进行数值模拟计算, 得到水动力模拟结果与蔡荣实 验数据吻合更好, 可降低或避免由于丁坝设置不妥造成的模拟误差。 4 结语 针
13、对大型数值计算中常遇到的物理模型二次曲面拟合问题, 以丁坝坝头曲面为 例, 应用 MAT-LAB中的数值分析工具成功的拟合了丁坝坝头曲面, 提高了数值 计算的精度和效果。 当然它也存在一些不利影响, 为了保证模拟计算稳定, 提高 物理模型精度的同时必然要求更小的网格尺寸及更短的时间步长, 在以上案列 中拟合丁坝模拟耗时远远高于简化丁坝模拟耗时。 另外, 为了取得较好的拟合精 度, 应特别注意, 获取尽量准确的原始数据以及体现模型特征的数据点。 参考文献 1张文娟, 张国华, 杨继业.基于广义延拓的数值逼近方法J.纺织高校基础 科学学报, 2007, 20 (3) :281285. 2奚梅成.数
14、值分析方法M.合肥:中国科学技术大学出版社, 2004. 3南京大学数学系.数值逼近方法M.北京:科学出版社, 1978. 4程正兴.数据拟合M.西安:西安交通大学出版社, 1986. 5吴亚娟, 刘晓锋, 赵兴强.MATLAB在计算方法教学与实验中的应用J. 通化师范学院学报, 2006, 27 (2) :3336. 6韩艳丽, 李凤萍.插值与曲线拟合J.中国西部科技, 2009, 8 (11) :9192. 7李庆扬, 王能超, 易大义.数值分析M.武汉:华中理工大学出版社, 1982. 8邱斌, 乐科军, 朱建军, 等.卫星精密星历的曲线移位插值方法J.工程勘 察, 2008 (11) :6468. 9张雪峰, 李文林.Matlab在高等数学中的几点应用J.安阳师范学院学报, 2009, 2009 (5) :121123. 10姬慧玲, 孔群璐, 马红星.基于 matlab 的电力系统潮流计算方法:CN, CN 103441496 AP.2013. 11吴云天, 史启朝.三维模拟四维的Matlab实现J.陕西科技大学学报, 2009, 27 (4) :146150. 12张小霞.丁坝对改善水生生物栖息地作用的数值模拟研究D.成都:四川大 学, 2016. 13蔡荣.澜沧江丁坝局部冲刷试验及其防护研究D.重庆:重庆交通大学, 2012.