北京信息科技大学 机械优化设计课 综合性上机实验指导书 机械设计与CD实验室
1 北 京 信 息 科 技 大 学 机械优化设计课 综合性上机实验指导书 机械设计与 CAD 实验室
机械优化设计课 综合性上机实验指导书 田竹友 优化设计的目的是用科学的设计方法代替传统经验的设计方法,运用计算机技术分 析和获取必要的信息,用快速寻优设计出最佳结构,从而提高设计质量和效益。 通过机械优化设计课的学习达到使学生能用机械优化设计的常用方法解决一般工程 问题的优化设计,对所设计的产品建立数学模型,并确定设计变量、目标函数和约束条 件:掌握一维最优化方法、多维无约束和约束问题的最优化方法:能对一般的最优化方 法编制程序,进而在计算机上求解并对优化的计算结果进行正确的分析和处理。为此安 排了两次上机编程实验: 1.利用VB6.0,无约束坐标轮换优化方法调用一维最优化方法,一维最优化方法(0.618 法)又调用区间搜索法(进退法)的综合性编制程序的上机实验。 2.有约束优化方法解决简单约束问题的编制程序的上机实验 §1综合性编程的上机实验 实验目的 无约束坐标轮换优化方法调用一维最优化方法,一维最优化方法(0.618法)又调用 区间搜索法(进退法),利用VB6.0,综合性编制程序的上机实验。 二实验内容 1、了解VB6.0的编程环境和编程步骤 VB编程与传统的编程方法不同,不再需要编写大量的代码去描述界面元素的外观 和位置,而是采用面向对象、事件驱动的方法。这种方法将代码和数据集成到一个独立 的对象中,当运用这个对象来完成某项任务时,并不需要知道这个对象是怎样工作的, 只需编写一段代码来简单地传递一些消息就可以了。 VB可视化编程的主要步骤为: 1)创建应用程序界面 2)设置属性 3)编写代码 (1)创建应用程序界面 进入VB集成开发环境后,开始设计工程。设计工程直接面对的是窗体,因此主要工 作是在“窗体”设计器中完成窗体的设计。系统默认的窗体只有一个Foml,根据工程 设计需要,还可以添加多个窗体,添加的窗体依次为Fom2、Form3等。窗体是创建应 用程序的基础,然后在窗体上绘制构成界面的对象。 ①用工具箱绘制控件 ②调整控件的尺寸 ③移动控件 ④锁定控件位置
2 机械优化设计课 综合性上机实验指导书 田竹友 优化设计的目的是用科学的设计方法代替传统经验的设计方法,运用计算机技术分 析和获取必要的信息,用快速寻优设计出最佳结构,从而提高设计质量和效益。 通过机械优化设计课的学习达到使学生能用机械优化设计的常用方法解决一般工程 问题的优化设计,对所设计的产品建立数学模型,并确定设计变量、目标函数和约束条 件;掌握一维最优化方法、多维无约束和约束问题的最优化方法;能对一般的最优化方 法编制程序,进而在计算机上求解并对优化的计算结果进行正确的分析和处理。为此安 排了两次上机编程实验: 1.利用 VB6.0,无约束坐标轮换优化方法调用一维最优化方法,一维最优化方法(0.618 法)又调用区间搜索法(进退法)的综合性编制程序的上机实验。 2. 有约束优化方法解决简单约束问题的编制程序的上机实验 §1 综合性编程的上机实验 一 实验目的 无约束坐标轮换优化方法调用一维最优化方法,一维最优化方法(0.618 法)又调用 区间搜索法(进退法),利用 VB6.0,综合性编制程序的上机实验。 二 实验内容 1、了解 VB6.0 的编程环境和编程步骤 VB 编程与传统的编程方法不同,不再需要编写大量的代码去描述界面元素的外观 和位置,而是采用面向对象、事件驱动的方法。这种方法将代码和数据集成到一个独立 的对象中,当运用这个对象来完成某项任务时,并不需要知道这个对象是怎样工作的, 只需编写一段代码来简单地传递一些消息就可以了。 VB 可视化编程的主要步骤为: 1) 创建应用程序界面 2) 设置属性 3) 编写代码 (1) 创建应用程序界面 进入 VB 集成开发环境后,开始设计工程。设计工程直接面对的是窗体,因此主要工 作是在“窗体” 设计器中完成窗体的设计。系统默认的窗体只有一个 Form1,根据工程 设计需要,还可以添加多个窗体,添加的窗体依次为 Form2、Form3 等。窗体是创建应 用程序的基础,然后在窗体上绘制构成界面的对象。 c用工具箱绘制控件 d调整控件的尺寸 e移动控件 f锁定控件位置
⑤调节锁定控件的位置 例如: SPoral 坐标轮换法 f(x)=x12+x2^2-x1x2-4*x1-10x2+60 板值点X 优化值 计算 清除 退出 (2)设置属性 在“属性窗口”中设置属性: 单击窗体或控件选中对象,从属性列表中选定属性名,在右列中输入或选定新的属 性值。 (3)编写代码 ①打开代码窗口 双击编写代码的窗体或控件 ②事件过程的创建 a在“对象”列表框中选定活动单元体的一个对象名 b在“过程”列表框中选择指定对象的事件名 c在SUB和END SUB之间输入代码 (4)运行、修改、保存工程 ①[运行一{启动或F5 ②修改工程时,应首先使用“打开”命令打开以前的工程。 ③由于一个工程可能含有多种文件,保存工程时系统会提示保存不同类型文件的对 话框,建议用户将同一个工程的所有类型文件存在同一个文件夹中。 2、搜索区间的确定与区间消去法(进退法)原理 (1)方法概要 有了目标函数,确定了搜索方向,假设函数f(a)具有单谷性,确定极小点a*所 在的区间[ab]: ①在搜索方向上,选定初始点a1, 初始点步长h0=0.01(经验,可调整),前进一步得a2点。 ②求出al、a2对应的函数值y1、y2,比较对应点函数值,确定前进或后退。 3
g调节锁定控件的位置 例如: (2)设置属性 在“属性窗口”中设置属性: 单击窗体或控件选中对象,从属性列表中选定属性名,在右列中输入或选定新的属 性值。 (3) 编写代码 c打开代码窗口 双击编写代码的窗体或控件 d事件过程的创建 a 在“对象”列表框中选定活动单元体的一个对象名 b 在“过程”列表框中选择指定对象的事件名 c 在 SUB 和 END SUB 之间输入代码 (4) 运行、修改、保存工程 c[运行]—[启动] 或 F5 d修改工程时,应首先使用“打开”命令打开以前的工程。 e由于一个工程可能含有多种文件,保存工程时系统会提示保存不同类型文件的对 话框,建议用户将同一个工程的所有类型文件存在同一个文件夹中。 2、搜索区间的确定与区间消去法(进退法)原理 (1) 方法概要 有了目标函数,确定了搜索方向,假设函数 f(a)具有单谷性,确定极小点 a* 所 在的区间[a b]: ① 在搜索方向上,选定初始点 a1, 初始点步长 h0=0.01(经验,可调整),前进一步得 a2 点。 ② 求出 a1、a2 对应的函数值 y1、y2,比较对应点函数值,确定前进或后退。 3
(2)程序框图: 开始 给定h0y a1-0h-h0 a2h'3-f(a) 2> 打印a 结束 3、一维搜索黄金分割法(0.618法) (1)基本思想 前提:已通过进退法确定了符合函数值高低高规律的搜索区间[a,b]即, 函数的极小点必在[a,b]内。所以要调用搜索区间的进退法 (2)程序框图 4
(2)程序框图: 3、一维搜索黄金分割法(0.618 法) (1)基本思想 前提:已通过进退法确定了符合函数值高低高规律的搜索区间[a,b]即, 函数的极小点必在[a,b]内。所以要调用搜索区间的进退法 (2)程序框图 4
开始) 给定a,点E A-0618☐ -a 2-a+A(b-a) a1-b-1b- ) 结来) ①初始区间[a,b],由进退法确定 收敛精度e(e=10-4~10-5), 缩短率λ=0.618 ②计算a1、a2,f(a1)、f(a2) ③根据区间消去法原理缩短区间,进行区间名称的代换,并保留区间中计算的 个新试验点及函数值。 ④检查区间是否短到足够小和函数值收敛到足够近。若条件不满足,则返回到 ⑤若条件满足,则取最后两个试验点的平均值作为极小点数值的近似解。 4、多维无约束坐标轮换法 (1)基本思想 把多维问题转化为一系列一维搜索问题。沿设计变量的各个分量形成的坐标轴依次 进行一维搜索(固定其它分量,仅对一个分量优选,轮番搜索),即调用一维最优化方法 (0.618法),而一维最优化方法(0.618法)又调用区间搜索法进退法)。重复进行,直 至找出满足精度的极小点。 (2)程序框图 5
① 初始区间[a,b],由进退法确定。 收敛精度ε(ε=10-4~ 10-5), 缩短率λ=0.618 ② 计算 a1 、 a2, f (a1)、 f (a2), ③ 根据区间消去法原理缩短区间,进行区间名称的代换,并保留区间中计算的一 个新试验点及函数值。 ④ 检查区间是否短到足够小和函数值收敛到足够近。若条件不满足,则返回到 ② ⑤ 若条件满足,则取最后两个试验点的平均值作为极小点数值的近似解。 4、多维无约束坐标轮换法 (1)基本思想 把多维问题转化为一系列一维搜索问题。沿设计变量的各个分量形成的坐标轴依次 进行一维搜索(固定其它分量,仅对一个分量优选,轮番搜索),即调用一维最优化方法 (0.618 法),而一维最优化方法(0.618 法)又调用区间搜索法(进退法)。重复进行,直 至找出满足精度的极小点。 (2) 程序框图 5
i-n? x←r 结束 坐标轮换法 f(x)=x12+x2^2-x1*x2-4*x1-10*x2+60 极值.点X【5.999999 8.000000 优化值¥ 8.000000 计算 清除 退出 (3)具体要求 ①软件界面设计,编制菜单调用设计命令。 界面是整个软件的入口,应按照基本设计要求,设计出人机友好的界面,并 具备健壮性: ②注意数组的应用,便于设计过程中沿各坐标轴迭代时的数据处理: ③注意子程序和子函数的调用,简化设计过程,便于数据的计算机处理: ④设计结果在界面上显示,并进行数据分析。 ⑤写出上机实验报告 6
(3)具体要求 ① 软件界面设计,编制菜单调用设计命令。 界面是整个软件的入口,应按照基本设计要求,设计出人机友好的界面,并 具备健壮性; ② 注意数组的应用,便于设计过程中沿各坐标轴迭代时的数据处理; ③ 注意子程序和子函数的调用,简化设计过程,便于数据的计算机处理; ④ 设计结果在界面上显示,并进行数据分析。 ⑤ 写出上机实验报告 6
§2有约束优化方法应用编制程序的上机实验 一、实验目的 使学生能用有约束优化设计方法解决简单工程问题的优化设计,对所设计的问题建 立数学模型,并确定设计变量、目标函数和约束条件:调用有约束问题的最优化方法(惩 罚函数法)编制程序,进而在计算机上求解并对优化的计算结果进行正确的分析和处理。 二、实验内容 1、对简单工程问题的优化设计问题律立数学模型问题由老师指定: )、征罚函撕法 惩罚函数法是一种使用很广泛、很有效的间接解法。它的基本原理是将约束优化问 题中的不等式和等式约束函数经过加权转化后,和原来目标函数结合,形成新的目标函 数一 一惩罚函数 x=f)+cg,+2i(1 求解该目标函数的无约束极小值,以期得到原问题的约束最优解。为此,按一定的 法则, 改变加 1 y2的值 构成 东优化问思 求得 系列的无终 束最优解,并不断地逼近原约束优化问题的最优解。∴惩罚函数法又称序列无约束极小 化方法。 3、内点法计算步骤 ①选取可行的初始点x0,惩罚因子的初值0,惩罚因子的缩减系数c及收敛 精度e1、e2 令迭代次数k=( ② 造惩罚函数中(x,¥),选择适当的无约束优化方法,求中(x,Y)的无约 束极值,得X*(y)点: x'=x'(y),fx)=f(x'(y*) yh=c.y x°=x(y) k=k+1 ③用收敛条件判别式判别是否收敛,满足, 迭代终止;否则,令C=0.10.7转②。 框图如下: 7
§2 有约束优化方法应用编制程序的上机实验 一、 实验目的 使学生能用有约束优化设计方法解决简单工程问题的优化设计,对所设计的问题建 立数学模型,并确定设计变量、目标函数和约束条件;调用有约束问题的最优化方法(惩 罚函数法)编制程序,进而在计算机上求解并对优化的计算结果进行正确的分析和处理。 二、 实验内容 1、对简单工程问题的优化设计问题建立数学模型问题由老师指定; 2、惩罚函数法 惩罚函数法是一种使用很广泛、很有效的间接解法。它的基本原理是将约束优化问 题中的不等式和等式约束函数经过加权转化后,和原来目标函数结合,形成新的目标函 数——惩罚函数 7 ( )] 1 2 1 2 1 1 ( , , ) ( ) [ ( )] [ m l j k j k φ γγ γ γ x f x Gg x Hh = = =+ + ∑ ∑ 求解该目标函数的无约束极小值,以期得到原问题的约束最优解。为此,按一定的 法则,改变加权因子γ1 和γ2 的值,构成一系列的无约束优化问题,求得一系列的无约 束最优解,并不断地逼近原约束优化问题的最优解。∴惩罚函数法又称序列无约束极小 化方法。 3、内点法计算步骤 ① 选取可行的初始点 x0 ,惩罚因子的初值 r0 ,惩罚因子的缩减系数 c 及收敛 精度 ε1、ε2 ;令迭代次数 k=0 ; ② 构造惩罚函数φ(x,γ),选择适当的无约束优化方法,求φ(x,γ)的无约 束极值,得 X*( γ )点; x ) * * * * 1 0 * ( ), ( ) ( ( ) ( ) 1 k k k k k x x fx fx c x x k k γ γ γ γ γ + = = = ⋅ = = + ③用收敛条件判别式判别是否收敛,满足, 迭 代终止;否则,令 C=0.1~0.7 转②。 框图如下:
开始 k-0 求min(x,r) kk+1门 满足收敛条件? 是 r-) f-(1 结柬 4、具体要求 ①软件界面设计,编制菜单调用设计命令。 界面是整个软件的入口,应按照基本设计要求,设计出人机友好的界面,并具 备健壮性: ②注意数组的应用,便于设计过程中沿各坐标轴迭代时的数据处理: ③注意子程序和子函数的调用,简化设计过程,便于数据的计算机处理: ④设计结果在界面上显示,并进行数据分析。 ⑤写出上机实验报告 5、示例 S.Forsl ox 惩罚函数法 目标函数:「(x)=x1^2+x2^2 约束条件:1-x1≤0 极使点x:[1.000000.00000 最优点Y: 1.00000 求值 清除 追出 通过本综合性实验的实际训练,学生能够更好地掌握本课程讲述的基本理论知识, 增强构建本专业相关领域中计算机实践应用的能力。 8
4、具体要求 ①软件界面设计,编制菜单调用设计命令。 界面是整个软件的入口,应按照基本设计要求,设计出人机友好的界面,并具 备健壮性; ② 注意数组的应用,便于设计过程中沿各坐标轴迭代时的数据处理; ③ 注意子程序和子函数的调用,简化设计过程,便于数据的计算机处理; ④ 设计结果在界面上显示,并进行数据分析。 ⑤ 写出上机实验报告 5、示例 通过本综合性实验的实际训练,学生能够更好地掌握本课程讲述的基本理论知识, 增强构建本专业相关领域中计算机实践应用的能力。 8