资源描述:
22 铁路航测 2 0 0 1年第 4期 Ex c e l VBA 编 程及 其在 铁 路 曲线 拨 道计 算 中的应 用 徐 庆 元 中南 大学 土 建 学 院 摘要 用传统 方法进行铁路 曲线拨 道计 算 , 编程I作 量 太 , 程序调 试复 杂且 容 易出 错 。 E x c e l 具有 强太的数据 处理 功能 . 最优化规 划求 解就是其 中之一 。 介 绍如何 利用 Ex c e l VAB 缩 程 实 现 铁 路 曲 线 最 优 化 拨 道 计 算 。 关 键 词E x c e l 最 优 化VB A铁 路 曲线拨 道 计 算 在铁 路 曲线 拨道 计 算 中 , 选 配最 佳 曲线半 径 和缓 和 曲线 长度来 满 足控 制 点要 求 , 最后 达 到 总拨 量最 小 的 目的 . 这 实际 上 是数 学 上 的规 划求解 非线性 问题 。 对 于这样一 个问题 , 如 果 用 传 统 的 编程方 法完 全 从底 层 开始 程序 设 计 , 实 现起来 复杂 , 编 程 工作 量大 , 程序 调试 复杂 . 最后 结果 的正 确性 也 难于保证 在传统 的编程方 式下 , 输人数 据文件 、 应 用 程序 和输 出结 果相互 独立 , 不在 同一集成 环境 . 应用 时也有不 便之处 。 在 实际工作 如设 计 文件 编制 中 中, 最 后结果 往往需 要以表格 形式 和 图 形形 式提供 , 若是 采用传 统的编程 方法 , 使用 者 在计 算 出结果 后 , 还 需大 量繁 琐 操作 完 成 图表 制作 等工作 , 效率 也是很 低的 。 E x c e l 号 称 电子 表 格 软 件 , 具 有 强 大 的 数 据处 理功 能 , 最 优化规 划求解就 是其 中之一 。 我 们 只需建立 模型 , 给 出约束条件 , 具 体 实现 细节 则 由 Ex c e l VB A 调用相 应模块 实 现 , 极大地 简 化 了程 序 设 计 。 1 裹 头 制作 和 原 始 数 据 输 入 铁路 曲线拨 道 中 . 线 路 大 修设 计 部 门广 泛 使 用“ 角 图法 ” 进行 曲线 拨道 量 的 计 算. 本 文亦 收稿 日期 } 2 O O l一0 91 o 主要讨 论 偏 角法 测设 既有 曲线 、 角 图法原 理 曲 线 整正 的 E x c e l VB A 实现 。 养 护维 护部 门广 泛 采用 的绳 正法 曲线 整 正 以及 复 曲线 、 反 向 曲线 等特殊类 型曲线整 正 , 利用 Ex c e l VB A也 可方 便 实现 , 限 于篇 幅 , 不作介 绍 。 1 . 1表 头 制 作 为 了将 处 理结 果 直接 制 成所 需表 格 , 先 根 据设 计 文件 编制 要 求 设计 好 表 头并 保存 为 模 板 , 这 样在 以后进行 别 的曲线 拨 量计 算 时 , 就 可 以反复调 用该表 头 , 而不必 每次从 头再 来 。 1 . 2原 始 数 据 输 入 输 入 里 程 桩 号 和 原 始 偏 角 数 据 , 如 果 某 桩 号处为控 制点 桥涵 、 道 口等 , 在拨 量约束 列还 需加上相 应约束 条件 。约束条件 是 指该桩 号处 最大允许 拨量绝 对值 , 若该 处不 允许 拨 动 , 由于 计 算机 舍人 误 差 的原 因 , 可输 入一 个 充分 小 的 数 , 如 0 . 0 0 0 1 , 不 可输 0 。 2 既有渐伸 线 长度计 算 既有 渐伸 线长 度计 算 中, 第 / ,z 个 置镜 点 渐 伸线 长度 的通 用计 算公 式 为 E 一 卢 ⋯ ⋯ 一 三 , 1 式 中 f , , - f 为各 置镜点 至前 一 置镜 维普资讯 Ex c e l VB A 编程及 其 在铁 路 衄线拨 遭计 算 中 的应 用 德 庆元 点问 的曲线 长度 ; . 9 , , p - - 为 各 置 镜 点 至 前 一 置 镜 点 问弧线 与始切线 间夹 角的弧度 数 。 第 测 段 中各 测 点 的渐 伸线 长 度 E , 的通 用计算 公式 为 E . E l i 卢 2 式 中 为第 测 段 中置镜 点 至测点 的 曲 线 长 ; p , 为测点 J至置镜点 与始 切线 问夹角 的弧 度 数 。 可 以看 出 , 为 了计 算既有 渐伸线长 度 , 须先 计 算第 测段 中置镜 点 至测 点 J的曲线 长 . 及测 点 至 置镜 点与 始 切 线 间 夹 角 的弧 度 数 。 各测点 和 前一 测 点之 间 的关 系有 两种 , 即 前 一测 点 为置镜 点或 为 普通 中视点 , 其计 算公 式是 不 同的 。 若前一 测点 为置镜点 , 则 f , 一 上 , 一 3 9 一 9 若前一 测点 为普通 中视 点 , 则 f J l ,一 LCi .. ⋯ 卢 一 一 竹 其 中, 为测 点偏角 , L C表示 测 点里 程 , 该 式 为有 条件 递推公式 , 利用 E x c e l的 I F条件 函 数 , 可 以很 容易实 现 和 p , 的计算 。 、z 计算 出 以后 , 就 可 以进行 既有渐 伸线 长度 的计算 。 同样 , 前一 测点 为置镜 点或为普通 中视 点其渐伸 线长度计算 式也 是不 同 的。 若前一 测点为 置镜点 , 则 E E 一 l z r 1 若前 一测点 为普通 中视点 , 则 E 一 E t c e f i r 。 8 i 同样 , 利用 I F条件 函数 , 可 实 现 E 的计 算 , 从而得 到各测点 既有渐 伸线 长度 。 前 一测 点 有可 能 为置镜 点 , 也 有 可能 为 普 通中视 点 , 如何 判定 呢 I S B l a n k 函数 可 作 为 前 一测 点 是否 为置镜 点 的判定 依据 , 若前 一测 点里 程桩 号在 A 剐 置 镜点所 在列 数值 非空 则表 明前 ~测点 为置镜点 , 否 则 为中视点 3 设计 渐伸线 长 度的计算 设计 渐伸线 长度 的计 算公 式见 表 l 。 表 l 渐 伸线 长 度计 算公 式 测 点 范 匿 设计 新 伸线 长度 计 算式 符号 意义 Z H 一 去 喜 鼗 L一 测点 里程 一 } 一 YH E p 。 ZY点里 程 L一 测点 里程 H Hz ~一 z 点里 程 f一 梗 I 点 里 程 一 y H 点里 程 HZ 后 E X X 一 测 点里 程 Qz点里 程 从 公式 可 以看 出 , 要 计算设计 渐伸 线长度 , 须先 求 出 z H 、 Hy、 YH 、 Hz等 要点 里程 , 这 些 点 的 里 程 可 由 Qz点 里 程 导 出 。 1 . 7 曲线中点里程 Q z 等于终点里程减去詈, 终 点里 程在数 值 上等 于倒 数第 2行 里 程 , 利用 E x c e l VB A 可 自动计 算 出总 行数 , 从 而 自动 确 定 终点里 程 。 既有渐 伸线 长度 E 前 面 已经 计算 出 , 既有渐 伸线 偏角前 面也 已算 出 , 就 可 以 自动 确定 曲线 中点里 程 Qz。 求 出 Qz 里 程 , 就 可 用 公 式 将 z H、 Z Y、 Hy、 yH、 YZ、 Hz点 里程 表示 为 Qz点 里程 及 曲 线 半 径 及 缓 和 曲线 长 度 的 函 数 , 求 得 Qz、 z H 、 Hy、 Y H 、 Hz等要 点 里 程桩 号 表 达式 。 根 据设 计渐伸 线长 度的计算公式 , 利用 嵌套 I F条 件 函数 , 可算 出所有测点 设计 渐伸线 长度 。 4利用 E x c e l VB A 规 划求解 实现量 优拨 ■计 算 原理 拨 量在 数值 上等 于 既有渐伸 线 长度 与设计 渐 伸线 长度 之差 , 计 算 出 了既有 渐 伸 线长 度 和 设计渐 伸线 长度 , 即可计算 出各 点拨量 。 总拨 量 在 数值 上等 于 各点 拨量 之 和 , 也 就 可计 算 出总 拨 量 。以曲线半径 、 缓 和 曲线 长度 为 因变量 , 总 拨 量取得 最小 为 目标 函数 , 并 加入 约束条件 , 利 用 E x c e l VB A 调用 规 划 求解 函数 即 可 求 得最 优解 。 在 VB A 代 码 中 , S o l v e r Ok定 义 了 目标 单 维普资讯 2 4 铁路航 2 0 0 1年 第 4期 元格 、 可变单元 格 以及 目标 类型 最大 、 最小 、 某 一 定值 , S o l v e r Ad d可加 入 约束 条件 , F o r循 环 语 句实 现 了控 制点 约 束 条件 的加 人 自动 化 , 最 后 用 S o l v e r S o l v e进行 规 划求 解 。有关 Ex c e l 规 划 求解 函数用珐 , 可参 考 Ex c e l VB A 联机 帮助 文件 。最后结果 如 图 1所示 图 1 E x c e l VBA最 优 拨道 量 计 算举 例 5结束 语 E x c e l VB A 编 程相 比传 统 编程 , 由于原始 数据 输 入 、 输 出 、 程 序处 理在 同一集 成 环境 中 , 应用 起来是很 方便 的 。E x c e l VBA还 可 根据设 计 文件 编制 要 求最 终 以表 格形 式 输 出结果 , 大 大方 便设 计 文件 编制 。E x c e l 一个 很 有用 的特 性 就是单元 格引用 , 只要改变 ~个单元 格 内容 , 其它与该单元格相关单元格 内容也跟着变化。 这样 , 在 特别 困难地 段 , 若对 结 果不 满 意 , 可 手 工 微调 曲线半 径 和缓 和 曲线 长 度 , 实 时看 出拨 量 随 曲线半 径 和缓 和曲线 长度 的变化 情况 , 看 有没 有拨 量虽 略 大一 点 , 但 可 以改 善线 路 运营 条件 的解 , 达 到实 时动态 修 改 的 目的 。除此 之 外 , 在 Ex e e 1 环境下 进行 VB A 编程还 具有 很强 的适应性 如果解 不存 在 , 则可 以手工改变 约束 条件 , 重新求 解 。 参考文献 1 郝 馥 . 铁 路诖 线设 计 . 北 京 中国铁道 出版杜 , 1 9 9 4 2童 大 埙. 铁 路 轨道 . , 北 京 中 国铁 道 出版杜 , 1 9 8 9 3张治 文 , 何磊 中文 E x c e l 7 0f o rWi n d a ws 9 8教 程 . 北 京 { 科 学 出版 杜 , 1 9 9 7 维普资讯
展开阅读全文