北京信息科技大学 机械优化设计课 综合性上机实验指导书 机械设计与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