




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用利用 Matlab 求解机械设计优化问题的分析求解机械设计优化问题的分析 董洪峰 化工学院 1012207123 摘要 摘要 MATLAB 是目前国际上最流行的科学与工程计算的软件工具 它具有强大的数值分 析 矩阵运算 信号处理 图形显示 模拟仿真和最优化设计等功能 本文浅谈 MATLAB 在机械设计优化问题的几点应用 关键词 关键词 MATLAB 约束条件 机械设计优化 0 前言前言 在线性规划和非线性规划等领域经常遇到求函数极值等最优化问题 当函数或约束条件 复杂到一定程度时就无法求解 而只能求助于极值分析算法 如果借助计算器进行手工计算 的话 计算量会很大 如果要求遇到求解极值问题的每个人都去用 BASIC C 和 FORTRAN 之类 的高级语言编写一套程序的话 那是非一朝一日可以解决的 但如用 MATLAB 语言实现极值问 题的数值解算 就可以避免计算量过大和编程难的两大难题 可以轻松高效地得到极值问题 的数值解 而且可以达到足够的精度 1 两种约束条件求极值方法两种约束条件求极值方法 1 无约束条件的极值问题的解算方法无约束条件的极值问题的解算方法 设有 Rosenbrock 函数如下 f X1 X2 100 X2 X1 X1 2 1 X1 2 求向量 X 取何值时 F x 的值最小及最小值是多少 先用 MATLAB 语言的编辑器编写求解该问题的程序如下 把函数写成 MATLAB 语言表达式 fun 100 X 2 X 1 X 1 2 1 X 1 2 猜自变量的初值 X0 1 2 所有选项取默认值 options 调用最优化函数进行计算 函数最小值存放在数组元素 options 8 中 与极值点对应的自变量值存放在向量 X 里 计算步数存放在数组元素 options 10 中 X options fmins fun X0 options 显示与极值点对应的自变向量 X 的值 显示函数最小值 options 8 显示函数计算步数 options 10 把上面这段程序保存为 m 文件 然后用 Tools 菜单中的 Run 命令行这段程序 就可 以轻松的得到如下结果 X 9 999908938395383e 001 9 99982742178110e 001 ans 1 706171071794760e 001 ans 195 显然 计算结果与理论结果的误差小到 e 10 级 这里调用了 MATLAB 的最优化函数 fmins 它采用 Nelder Mead 的单纯形算法 就是因为这个函数的采用 使最小值问题的解算 变得非常简单 2 带约束条件的极值问题的解法带约束条件的极值问题的解法 设目标函数和约束条件如下 f x 3X1 X2 X3 X1 2X2 X3 11 4X1 X2 2X3 0 X2 0 X3 0 求 X 向量取何值时函数取极小值 对条件极值问题通常的做法都是将约束条件标准化 即把等式约束条件写成等号为 0 的 形式 把不等式写成 0 的形式 然后把条件极值问题转换为非条件极值问题 MATLAB 也采用同样的做法 下面是求解该问题的 MATLAB 语言程序 funf f 3 X 1 X 2 X 3 写出目标函数表达式 fung g 2 X 1 X 3 1 X 1 2 X 2 X 3 11 4 X 1 X 2 2 X 3 3 把约束条件 标准化 写成向量函数 注意等式约束条件要放在前面 fun funf fung 把目标函数表达式和约束条件表达式合成一个向量函数 X0 101 猜初值 options options 13 1 在 options 13 中指定等式约束条件的个数 vlb zeros 1 3 指定向量 X 的下界为 0 vub 对向量的上界不做要求 X options constr fun X0 options Vlb Vlb 调 constr 函数 显示与极值点对应的 X 向量值 options 8 显示极小值 options 10 显示计算次数 g 2 X 1 X 3 1 X 1 2 X 2 X 3 11 4 X 1 X 2 2 X 3 3 显示约束条件表达式 的取值 运行这段 MATLAB 程序得到如下结果 X 4 000000000000000e 000 1 00000000000000le 000 9 000000000000005e 000 ans 1 99999999999999le 000 ans 17 g 6 21724522790877e 015 1 77635683940025le 015 1 421085471520200e 014 显然 计算结果是非常精确的 这里调用了 MATLAB 的最优化函数 constr 它是专门 用来解算条件极值问题的 2 机机械械优优化化设设计计应应用用实实例例 机械优化设计把数学规划理论与数值方法应用于设计中 用计 算机从大量可行方案中 找出最优化设计方案 从而大大提高设计 质量和设计效率 MATLAB 具有解决线性规划 和非线性规划 约 束优化和无约束优化问 题的内部函数 因而可以完成这一功能 现举一例 螺栓组联结的优化设计螺栓组联结的优化设计 如图 4 所示的压力容器螺栓组联接中 已知 D1 400mm D2 250mm 缸内工作压力为 p 1 5 MPa 螺栓材料为 35 号钢 s 320Mpa 安全系数 S 3 取残余预紧力 Q p 1 6F 采用铜 皮石棉密封垫片 现从安全 可靠 经济的角度来选择螺栓的个数 n 和螺栓的直径 d 2 2 1 1 设设计计问问题题分分析析 若从经济性考虑 螺栓数量尽量少些 尺寸小些 但这会使降低联结的强度和密封性 不能保证安全可靠的工作 若从安全 可靠度考虑 螺栓数量应多一些 尺寸大一些为好 显然经济性差 甚至造成安装扳手空间过小 操作困难 为此 该问题的设计思想是 在追 求螺栓组联结经济成本最小化的同时 还要保证联结工作安全 可靠 2 2 2 2 设设计计变变量量 目目标标函函数数 约约束束条条件件 2 2 2 2 1 1 设设计计变变量量 选取螺栓的个数 n 和直径 d mm 为设计变量 T 21 T x x d n X 2 2 2 2 2 2 目标函数目标函数 追求螺栓组联结经济成本 Cn最小为目标 而当螺栓的长度 材 料和加工条件一定时 螺栓的总成本与 nd 值成正比 所以本问题优化设计的 目标函数为 min F X Cn nd x1x2 强度约束条件强度约束条件 为了保证安全可靠地工作 螺栓组联结必须满足强度条件 3 2 5 2 1 d Q ca 其中Mpa S s 106 3 320 n n p n D FFFFQQ p 60937 4 250 5 16 2 4 6 26 26 1 22 2 N 对于粗牙普通螺纹 由文献 3 推荐 小径 d1 0 85d 所以 强度约束条件为 0106 146192 106 146192 106 105624 2 21 22 1 1 xxndnd Xg 密封密封约束条件约束条件 为了保证密封安全 螺栓间距应小于 10d 所以 密封约束条件为 010 400 10 2 1 1 2 x x d n D Xg 安装扳手空间安装扳手空间约束条件约束条件 为了保证足够的扳手空间 螺栓间距应大于 5d 所以 安装 约束条件为 0 400 55 1 2 1 3 x x n D dXg 边界约束条件边界约束条件 0 14 xXg 0 25 xXg 3 建建立立数数学学模模型型 综上所述 本问题的数学模型可表达为 设计变量 T 21 x xX 目标函数 min F X x1x2 约束条件 s t 0 Xgi i 1 2 3 4 5 现运用MATLAB的优化函数进行求解 先编写M文件 function c ceq mynas x c 1 146192 x 1 x 2 2 106 非线性不等式约束 c 2 400 pi x 1 10 x 2 c 3 400 pi x 1 5 x 2 ceq 非线性等式约束 在MATLAB命令窗口输入 fun x 1 x 2 目标函数 x0 4 6 设计变量初始值 A 1 0 0 1 线性不等式约束矩阵 b 0 0 Aeq 线性等式约束矩阵 beq lb 边界约束矩阵 ub x fval fmincon fun x0 A b Aeq beq lb ub mynlsub 调用有约束优化函数 运行结果如下 x 11 4499 10 9751 fval 125 6637 所以 该问题优化结果为 n 11 4499 d 10 9751 目标函数最小值 F X 125 6637 根据实际问题的意义取整 标准化 n 12 d 12 由此例可以看出 与其它编程语言相比 MATLAB语言可以简化编程 图5是调用MATLAB绘图函数自动对上例绘制 的数学模型要素图 标注数字的曲线为目标函数的 等值线 为此 在MATLAB命令窗口输入 x1 0 1 20 y1 146192 106 x1 2 y2 400 pi 10 x1 y3 400 pi 5 x1 plot y1 x1 y2 x1 y3 x1 x 1 x 2 o y4 0 1 0 1 20 y4 x1 meshgrid y4 x1 Q y4 x1 hold on c h contour y4 x1 Q hold on clabel c h 4 结论结论 从上述实例可以看出 利用求解最优化问题具有编程简单 精度很高 速度很快 各 种工形式的最优化问题都适用等优点 巧妙各种利用 MATLAB 语言可以取得事半功倍的效 果 MATLAB 具有科学计算的强大能力 不管处理什么样的对象 算法 图形 图像 报 告或者算法仿真 MATLAB 都能够帮助大家不断提高工作效率 MATLAB 环境能够完成 算法开发 数据分析和可视化 高性能数据分析等工作 相对于传统的 C C 或者 FORTRAN 语言 在 MATLAB 中完成这些工作所消耗的时间仅仅是传统手段的极小一部分 开放性的 MATLAB 软件和开发语言 M 语言 能够快速实现用户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 党章考试题及答案
- 2025四川绵阳三台县司法局招聘编外聘用人员8人考试参考题库附答案解析
- 2025年开封市教育体育局局属中小学校公开选调教学名师19人考试参考题库附答案解析
- 2025浙江宁波象山影视城文化产业集团有限公司第三期招聘工作人员1人笔试备考题库及答案解析
- 2025甘肃人力委托招聘政务服务热线12345坐席笔试模拟试题及答案解析
- 2025四川凉山州金阳县卫生健康局招聘医疗卫生辅助岗人员4人考试参考题库附答案解析
- 2025天津新誉资产管理有限公司所属运营类企业人才市场化招聘6人笔试备考试题及答案解析
- 2025贵州观山湖区第十中学临聘教师招聘笔试模拟试题及答案解析
- 农村金融服务合规性提升方案
- 手机应用软件测试与发布流程手册
- 2025-2026学年统编版(2024)初中历史八年级上册教学计划及进度表
- 入职岗前培训之工会知识课件
- 媒介融合传播概论课件
- 学堂在线 庄子哲学导读 章节测试答案
- 2025 - 2026学年教科版科学三年级上册教学计划
- 厂内搬运工安全知识培训
- 买辆摩托艇运营合同范本
- 保管员业务知识培训课件小结
- 2025年总工会招聘考试工会知识模拟试卷及答案
- 人教版(2024)九年级全一册物理21.1 电磁波的海洋 教案
- 基层管理员工管理办法
评论
0/150
提交评论