零阶和一阶优化算法

合集下载

ANSYS优化算法在钢结构优化设计中应用对比分析

ANSYS优化算法在钢结构优化设计中应用对比分析

ANSYS优化算法在钢结构优化设计中的应用对比分析摘要:本文利用大型通用有限元软件ansys对某住宅钢结构进行优化设计。

在保证结构安全可靠的前提下,合理有效地降低结构的用钢量,取得良好的经济效益。

对零阶与一阶优化算法在住宅钢结构优化设计中的具体实现方法进行了探讨,对两种算法的准确性和计算效率进行了对比分析, 提出了应用建议。

关键词:ansys、住宅钢结构、零阶优化算法、一阶优化算法、优化设计中图分类号: n945.15 文献标识码: a 文章编号:现代科学技术的高速发展,以及人们对住宅功能齐全、使用方便、居住舒适、安全节能等方面的要求,使钢结构住宅逐步替代传统木结构、砖混结构和钢筋混凝土结构住宅,成为住宅产业的一只新生力量。

在钢结构工程中,钢材的用量是非常巨大的,这其中不免会存在材料安全储备太高,过于浪费的情况。

住宅钢结构的优化设计是在保证结构安全可靠的前提下,合理的利用钢材,尽最大可能的减少用钢量,从而实现降低工程造价的目的。

本文的研究依托于ansys软件兼有有限元分析和优化设计的技术优势,利用零阶和一阶优化算法,针对某多层住宅钢结构展开优化设计,并对两种算法进行了优化效果比较。

一、ansys的优化算法ansys提供了两种优化算法,ansys对这两种方法提供了一系列的“分析—评估—修正”的循环过程,即对于初始设计进行分析,对分析结果就设计要求进行评估,然后修正,这一循环过程重复进行,直到所有的设计要求都满足为止。

1.1 零阶优化算法该方法仅需要因变量的数值,而不需要其导数信息。

因变量(目标函数及状态函数)首先通过最小二乘拟合值近似,而约束极小化问题用罚函数转换成无约束问题,极小化过程在近似的罚函数上进行迭代,直至获得解得收敛。

1.2 一阶优化算法该方法计算并利用导数信息进行优化。

约束优化问题通过罚函数转换成无约束优化,对目标函数及状态变量的罚函数计算导数,形成设计空间中的搜索方向。

在每次迭代中,实施最速下降及对偶方向搜索直至达到收敛。

基于ANSYS的结构优化设计方法

基于ANSYS的结构优化设计方法

结构 的优化设计一直都是工程界 结构 设计理论和方法研究 领域 的热 门话题 。传统 的结构设 计方法是设计院根据经验和判 断提 出设计方案 , 随后用力学理论对选定 的方案进 行力学分析、 研 究和校核 。若方 案不满 足承载 能力极限状态或正常使用极 限 状态 ,再人工调整 设计变量 ,结构形式,重新进行分析 、研 究 和校核 ,效率低 下,并且得 到的结构往往只是可行方案 ,不是 最优设计 。 随着计算机技 术的发展,工程结构复杂性增加 ,传统 的设 计 方法 已经 不能满足 结构需要 。近 年来 ,基 因 ( 遗传 )算法 、 猴 王算法及 离散梯度法 等新型算法 又相继 引入优化设 计领域 , 扩大 了优 化设计的基础理论涉及面 。在优化设计 中引入计算 机 和 成熟 的商品软件 ,使 结构优化 设计的求解 程序化 、可视化 , 激 发设计人员的求解兴趣 ,使得传统 的优化设计增 添了新的活 力。本文介绍 了有 限元分析软件 ANS YS在结构优化设计 中的 应用 ,使概念更具体化和形象化 ,提 高了设计 人员分析 问题的 基本技能和计算机操作与软件应用 的能力 。 1优化设计的数学模型
公式 ( 1 ) j = 、 . 2 . . n
≤ ( x ) ≤ ,i =1 , 2 , …, F r /
2 A N S Y S的结构优化算法 A NS YS软 件将有 限元分析技 术与优 化方法相 结合 ,从而 构成 了基 于有 限元分析技术的优化设计 ,设计人 员只要 掌握涉 及 问题 的相 关工程背 景,能将工程 实际 问题 转化为优 化模型 , 就可 以利用 A NS YS软件 完成该 问题 的优化设计 ,从 而减 少 了 优化设计中的编程部分 ,大大减少 了优化设计 的时间与难度 。 A NS Y S提供 了两个优化 算法 : 零 阶方法 和一阶方法 。优 化设计的计算过程 中,需计算 目 标 函数 和状态变量的值 ,这些 函数值称为零阶值 ;目标 函数 和状态变量对设计变量 的一 次微 分值 ,称为 一阶值 。同理 ,二次微分值称为二阶值 。一个优化 算法如果 只用到零阶值则称为零阶方法 ( 只用到 因变量 ,而不 用 到它 的偏 导数 ) : 如果用 到一阶值 ( 但不会用到二阶值 ) ,则 称 为一阶方法 ;同理 ,如果会用到二阶值则称为 二阶方法 。在

基于ANSYS参数化语言APDL的结构优化设计

基于ANSYS参数化语言APDL的结构优化设计
分 析 文 件 。a 参 数 化 建 模 : 用 A D ) . 利 P L的 参 数 技 术 和
u Y N 设计 变量 ) 始化 , 构建 初 并 A Y NS S提供的参数化设计语 言( P )通过 结构设计 参数 的调 ? S S的命令将要参 与优 化的数据 ( A DL , 个参数化分析模 型 , 以后软件修 正模 型提供 可能 ;. 载与 为 b加 整, 则可 以自动完成上述循环功 能 , 进行优化设计 , 从而大大减 少 修改模 型和重新分析所花 的时 间。 求解 : 对结构 的参数模型进行加载 与求 解 ;. 入 A S S的后处 C进 N Y 提取有 限元分析结果并赋值状态 变量( 束条件 ) 目标 约 和 A D P L是 A Y aa t c ei a gae 缩 写 , A 理模块 , NS SP r me i D s nL n ug 的 r g 即 N— 优化 目标 ) ) 。2 构建优 化控制文件 。a 进入优化 设计模 块 , . S S参 数 化 设 计 语 言 。它 是 一 种 通 过 参 数 化 变 量 方 式 建 立 分 析 函数( Y 指 定 优 化 分 析 文 件 ;. 明优 化 变 量 , 择 优 化 工 具 或 优 化 方 法 , b声 选 模 型的脚本语言 , 用建立智 能化分析 的手段为用户 提供 了 自动完 C 指定优 化循 环控 制方 式 ;. d 成 有 限元 分 析过 程 的功 能 , 即程 序 的输 入 可 设 定 为 根据 制 定 的 函 或采用用户 自己 的外 部优 化程序 ;. 进行优 化参数评 价 , 化处 理器 根据 本 次循环 提供 的优 化参 数 优 数 、 量 以 及 选 用 的分 析 标 准 来 做 决 定 。A D 变 P L允 许 复 杂 数 据 的 设计变量 、 状态 变量及 目标 函数 ) 与上 次循环提供 的优 化参数作 输入 , 使用户 对任何设 计 和分析属 性有控 制权 , 扩展 了传统 有 限 ( 确定该次循环 目标 函数是 否收敛 , 或者 说结 果是否达 到 元分析范 围以外的能 力 , 扩充 了更高级 的运算 , 括灵敏 度研 比较后 , 并 包 完成迭代退 出优化循 环 ; 否则 , 行下步 。3 重 进 ) 究、 优化设计 等。具 体为参 数 、 参数数 组 、 达式 与 函数 , 支与 最优 如果 最优 , 表 分 新循环 。根据 已完成的优化循环和当前优化变量的状态修正设计 循环 、 重复等功能 , 而为优化设 计运 行繁琐 的迭代提 供 了 町能 从

基于ANSYS的单层球面网壳结构优化设计

基于ANSYS的单层球面网壳结构优化设计

基于ANSYS的单层球面网壳结构优化设计摘要:单层球面网壳结构是一种具有吸引力的空间结构型式,为改善其经济性,本文采用ANSYS软件的优化模块(零阶方法和一阶方法)对其进行优化设计。

关键词:球面网壳结构优化设计ANSYS随着社会的不断进步和经济的蓬勃发展,人们不断扩大着钢结构的应用范围,与此同时建筑钢材的消耗也在以惊人的速度增长。

大跨度空间结构是现代建筑的发展方向之一。

随着跨度的增大,传统的网架、网壳和析架等网格结构,只有采用很大的构件截面尺寸,才能满足强度和使用要求,结构往往显得笨重而且材料用量多,经济性欠佳。

因此对这一投资高、风险大的复杂结构进行优化设计研究是十分必要的。

空间网格结构的优化设计通常以结构自重最小作为优化目标函数.目前已有许多文献利用传统的优化方法研究了平板网架结构的优化设计问题[1~2],而对单层网壳结构的优化设计问题很少见[3~4]。

球面网壳结构的优化设计是一个复杂的、非线性约束优化问题,另外复杂的约束条件也会使优化问题很容易陷入局部最优解。

本文借助ANSYS软件的优化模块(零阶方法和一阶方法)对其进行优化设计,以,在给定的约束条件和设计参数范围内搜索最优的结构设计参数,并与初始设计进行对比分析。

1 工程介绍某单层网壳结构,其俯视平面形状为圆形,底平面的直径为100m,球面直径为100m,矢高为6.7m,球面中心角为60°,具体模型见图1。

材料:钢管,E=2.1e11,v=0.3,剪切模量G=8e10。

截面几何:杆件均为空心钢管,环杆内径为d1,壁厚t1,径杆内径为d2,壁厚t2,斜杆内径d3,外径t3。

2 有限元模型用beam188来模拟肋杆、径杆及斜杆。

Beam188单元适合于分析从细长到中等粗短的梁结构,该单元基于铁木辛哥梁结构理论,并考虑了剪切变形的影响。

Beam188是三维线性(2节点)或者二次梁单元。

每个节点有六个或者七个自由度,自由度的个数取决于KEYOPT(1)的值。

ANSYS零阶方法和一阶方法的重力坝断面优化研究

ANSYS零阶方法和一阶方法的重力坝断面优化研究

b e mi n i mi z e d u n d e r t h e p r e mi s e o f me e t i n g t h e c o n s t r a i n t c o n d i t i o n s o f g e o me t r y, s t r e s s a n d a n t i - s l i d i n g s t a b i l i t y
水利水 电技术
第4 5 卷
2 0 1 4年 第 1期
A N S Y S零 阶方法和一 阶方法 的重力坝 断面优化研 究
李芬 花 ,马 慧 ,卢 东海 ,许 芳星
( 华北 电力 大 学 可再 生能源 学 院 ,北 京 1 0 2 2 0 6 )

要 :基 于 A N S Y S软 件 的优 化模 块 ,利 用参 数化 设 Байду номын сангаас语 言 A P D L编 制程 序 ,并根 据 重 力坝 基本 断
Ab s t r a c t :B a s e d o n t h e o p t i mi z a t i o n mo d u l e o f ANS YS s o f t w a r e,a s e t o f i n i t i a l c o n d i t i o n s i s s t u d i e d o u t a t i f r s t ,a n d t h e n t h e
的 结果进 行 对 比。
关键 词 :重 力坝 ;A N S Y S ;断 面设计 ;优 化设 计
中 图 分 类 号 :T V 6 4 2 . 3 文 献 标 识 码 :A 文 章 编 号 :1 0 0 0 — 0 8 6 0 ( 2 0 1 4 ) 0 1 — 0 0 6 9 — 0 5

零阶优化原理

零阶优化原理

2、优化算法简介2.1 零介方法零阶方法之所以称为零阶方法是由于它只用到因变量而不用到它的偏导数。

在零阶方法中有两个重要的概念:1)目标函数和状态变量的逼近方法;2)由约束的优化问题转换为非约束的优化问题。

逼近方法是指程序用曲线拟合来建立目标函数和设计变量之间的关系。

这是通过用几个设计变量序列计算目标函数然后求得各数据点间最小平方实现的。

该结果曲线(或平面)叫做逼近。

每次优化循环生成一个新的数据点,目标函数就完成一次更新。

实际上是逼近被求解最小值而并非目标函数。

状态变量也是同样处理的。

每个状态变量都生成一个逼近并在每次循环后更新。

用户可以控制优化近似的逼近曲线。

可以指定线性拟合,平方拟合或平方差拟合。

缺省情况下,用平方差拟合目标函数,用平方拟合状态变量。

用下列方法实现该控制功能:Command: OPEQNGUI: Main Menu>Design Opt>Method/Tool转换为非约束问题的原因是状态变量和设计变量的数值范围约束了设计,优化问题就成为约束的优化问题。

ANSYS程序将其转化为非约束问题,因为后者的最小化方法比前者更有效率。

转换的实现方法是通过对目标函数逼近加罚函数的方法计入所加约束的。

收敛检查:前面的或最佳设计是合理的而且满足下列条件之一时,问题就是收敛的:1)目标函数值由最佳合理设计到当前设计的变化应小于目标函数允差。

2)最后两个设计之间的差值应小于目标函数允差。

3)从当前设计到最佳合理设计所有设计变量的变化值应小于各自的允差。

4)最后两个设计所有设计变量的变化值应小于各自的允差。

但收敛并不代表实际的最小值已经得到了,只说明以上四个准则之一满足了。

因此,用户必须确定当前设计优化的结果是否足够。

如果不足的话,就要另外做附加的优化分析。

对于零阶方法,优化处理器开始通过随机搜索建立状态变量和目标函数的逼近。

由于是随机搜索,收敛的速度可能很慢。

用户有时可以通过给出多个合理的起始设计来加速收敛。

零阶优化和一阶优化算法

零阶优化和一阶优化算法

零阶优化和一阶优化算法零阶优化方法和一阶优化方法通过对目标函数逼近或对目标函数加罚函数的方法将约束的优化问题转换为非约束的优化问题。

两种算法的主要区别在于:零阶算法不利用一阶导数信息,一阶算法利用一阶导数信息;因此,一阶算法迭代一次所需要的时间大于零阶算法。

1零阶优化算法零阶算法是在一定次数的抽样基础上,拟合设计变量、状态变量和目标函数的响应函数,从而寻求最优解,顾又可称其为子问题方法。

函数曲线(或曲面)的形式可采用线性拟合、平方拟合或平方加交叉项拟合。

若采用平方拟合,则目标函数的拟合公式为:对于设计变量和状态变量的约束条件,可采用罚函数将其转化为无约束方程,如式(2),从而将带有约束的优化问题转化成无约束的最小值求解问题。

上式中,xi为设计变量,g^i、h^i、w^i为状态变量,X、G、H、W为对应的罚函数,其形式如式(3)所示。

f0为目标函数的参考值,pk为响应面参数。

当设计变量(或状态变量)接近限值时,其罚函数值将急剧增加,如图1所示。

转化为无约束问题后,即可采用序惯无约束极小化方法(SUMT)来搜索无约束目标函数。

2一阶优化算法一阶方法在优化过程中需要使用状态变量和目标函数对于设计变量的偏导数,因此被称为一阶方法。

采用与零阶算法类似的方式,可将约束条件转化为罚函数,并将无约束目标函数分作目标函数和惩罚函数两部分,如式(5)所示。

对于第i步优化迭代,引入优化搜索方向d(j),则下一步的设计变量值变为:式中: sj为线搜索参数,对应于搜索方向d(j)上的最小步进值,它使用黄金分割比和局部的平方拟合技术来得到,其范围限制由式(8)给出:式中: sj为最大可用步进值,而smax是设置的步进缩放尺寸, smax∈(0, 100]。

根据式(5),搜索方向dj可分为如式(9)所示的两部分,这两部分均可由Polak-Ribiere递推式[ 9]确定:参考文献:[1]Tu W,Mayne R W.An approach to multi-start clustering for global optimization with non-linear constraints[J].International Journal for Numerical Methods in Engineering,2002,53:2253~2269.[2]Montgomery D C.Design and analysis of experiments [M].New York:John Wiley&Sons,1991.[3]Zheng Q,Zhuang D M.Integral global optimization:Algorithms,implementations and numerical tests[J].Journal of Global Optimization,1995,7:421~454.。

几种常见的优化方法ppt课件

几种常见的优化方法ppt课件
fast, this is relatively unimportant because the time
required for integration is usually trivial in comparison to
the time required for the force calculations.
Example of integrator for MD simulation
• One of the most popular and widely used integrators is
the Verlet leapfrog method: positions and velocities of
7
Continuous time molecular dynamics
1. By calculating the derivative of a macromolecular force
field, we can find the forces on each atom
as a function of its position.
11
Choosing the correct time step…
1. The choice of time step is crucial: too short and
phase space is sampled inefficiently, too long and the
energy will fluctuate wildly and the simulation may
– Rigid body dynamics
– Multiple time step algorithms

基于Ansys的框架结构优化设计

基于Ansys的框架结构优化设计

基于Ansys的框架结构优化设计摘要:在实际工程问题中,经常遇到各种框架结构的优化问题,大多基于Ansys分析软件求解已知载荷、稳定条件下的框架结果最小体积,即最小质量以减少施工材料控制最优成本。

本文通过对一常见的矩形截面的四边框架结构进行优化设计分析,提高了对Ansys分析软件的运用能力,加深了对起运行机制的认识,为以后熟练地运用该软件打下基础。

关键词:框架结构矩形截面优化设计Ansys软件1.工程背景框架结构由于具有自重轻、造价较低和施工简单等诸多优点,在包括大型工业厂房在内的工程领域得到了广泛的应用[1].随着对设计质量要求的不断提高,人们一直在探索如何在保证框架结构安全的前提下,减少材料用量,降低成本,以满足经济性的要求。

框架结构的优化设计思想从MICHELL[2]框架理论的出现至今已有近百年历史,BENDSOE等[3]提出的多工况拓扑优化方法标志着对优化设训一研究进入了新的阶段。

国内学者也在该领域进行了大量的研究,如隋允康等对框架结构离散变量的优化问题进行了研究,通过函数变换找到了满应力的映射解,并结合框架拓扑优化特点提出了ICM(独立、连续、映射)方法[4]。

随着计算机技术的发展,人们开始利用ANSYS等软件对工程结构进行有限元分桁和优化设计。

APDL是ANSYS参数化设计语言,它是一种通过参数化变量方式建立分桁模型的脚本语言[5-6], ANSYS提供了两种优化方法即零阶方法和一阶方法。

除此之外,用户还可以利用自己开发的优化算法替代ANSYS本身的优化方法进行优化设计。

本文利用APDL优化设计模块编制用户程序,对一个实际框架进行了结构优化。

结果表明运用ANSYS进行框架结构优化设训一可以有效提高设计质量,具有广泛的运用前景。

2.框架结构模型假设在工程应用中,实际的析架结构形式和各杆件之间的联结以及所用的材料是多种多样的,实际受力情况复杂,要对它们进行精确的分析是困难的。

但根据对析架的实际工作情况和对析架进行结构实验的结果表明,由于大多数的常用析架是由比较细长的杆件所组成,而且承受的荷载大多数都是通过其他杆件传到节点上,这就使得析架节点的刚性对杆件内力的影响可以大大的减小,接近于铰的作用,结构中所有的杆件在荷载作用下,主要承受轴向力,而弯矩和剪力很小,可以忽略不计。

ANSYS优化设计设计优化技术

ANSYS优化设计设计优化技术

ANSYS优化设计--设计优化技术ANSYS设计优化技术基于ANSYS的APDL语言建立的参数化模型。

基于参数化有限元分析过程的设计优化包含下列基本要素:1、设计变量(往往在开始级、前处理器或求解器中定义);2、状态变量(来源于分析的结果后处理);3、目标函数(最后得到关于模型系统或分析结果的导出量);4、优化计算方法即优化设计工具(零阶方法是一个可以有效处理大多数工程问题的方法,一阶方法基于目标函数对设计变量的敏感程度,更加适合于精确的优化分析)。

优化设计过程就是一个反复优化改变设计变量以在满足状态变量限制条件下使目标函数变量参数逼近最小值。

在执行优化分析前必须创建一个分析文件,它是一个基于APDL参数化有限元分析过程的命令流输入文件,包括一个完整的前处理、求解和后处理分析过程,其中必须包含一个参数化的模型,定义有设计变量、状态变量和目标函数。

基本过程:1、利用APDL的参数技术和ANSYS的命令创建参数化分析文件,用于优化循环分析文件,除包括整个分析过程外还必须满足以下条件。

(1)在前处理器PREP7中建立参数化模型。

(2)在求解器SOLUTION中求解。

(3)在后处理器POST1/POST26中提取并指定状态变量和目标函数。

2、进入优化设计器OPT,执行优化设计分析过程。

(1)指定分析文件。

(2)声明优化变量,包括设计变量、状态变量和目标函数。

(3)选择优化工具或优化方法。

(4)指定优化循环控制方式。

(5)进行优化分析。

(6)查看设计序列结果。

求解方法:1、Single Run:2、Random Designs:3、Factorial:4、Gradient:5、DVSweeps:6、Sub-Problem:7、First-Order:8、UserOptimizer:注:1、在进入求解器之前定义设计变量,以便在优化设计器中指定读取分析文件的起始行为第一个/prep7命令行。

每次优化迭代计算完成后程序自动修改设计变量的值,并进入下一次迭代,即重新从指定的起始行读取分析文件,如果起始行后接着出现优化变量赋值定义语句,那么优化变量的值就强制恢复成初始值,即设计变量始终保持不变,不进行任何循环优化计算。

ansys 优化设计

ansys 优化设计
• 当速度很重要时,不推荐用一阶方法。
M5-13
将有: • 总的指导 • 关于 DV的指导 • 关于 SV的指导 • 关于 OBJ的指导
设计优化(II) - 方法
B. 指导
M5-14
设计优化(II) - 指导
总的指导
• 无论什么时候,只要可能,就应利用对称性。记住:优化程序执行 多次分析,所以模型规模愈小愈好。
n1
n1
m1 nm1
H = 目标函数或状态变量的近似值 Xn = 设计变量 n a, b, c = 系数 N = 设计变量总数
M5-5
设计优化(II) - 方法
零阶近似法
– 可用OPEQN (或 Design Opt > Method/Tool > Sub-problem) 控制 近似式的形成: • 二次项 + 交叉项 (缺省为 OBJ) • 仅有二次项 (缺省为 SV) • 线形项
M5-16
设计优化(II) - 指导
总的指导
• 有时优化问题可能收敛于一个局部最小值。 可以进行检查,而先用 扫描工具(或其它工具)有可能获得全局最优。选择合适的初始设 计。
OBJ 局部最小
DV 全局最小
M5-17
设计优化(II) - 指导
关于 DV的指导
关于设计变量的指导
• 设计变量数要少:是选择高度增量作为 DV:
dx4
dx3
dx2 x1
M5-21
设计优化(II) - 指导
关于 DV的指导
• 指定离散的 DV, 如肋数或孔数,建模时用 NINT函数(最接近的整 数)。 例如,如果 NRIBS 表示肋数,用 NINT(NRIBS) 一根一根去复制肋 ,则将 NRIBS 说明为 DV,并带有适当的限定值。

机器学习中的加速一阶优化算法

机器学习中的加速一阶优化算法

机器学习中的加速一阶优化算法一阶优化算法是机器学习中常用的优化算法。

它利用搜索技术,利用最小化函数极小化函数的方向调整优化参数,以达到最优化模型预测结果的目的。

一阶优化算法包括:一、梯度下降法:梯度下降法是一种最常用的优化方法,它主要针对于有多维参数空间的函数,利用“梯度”概念,在沿下降的梯度的反方向搜索,最终找到极值点。

1. 随机梯度下降法(SGD):它是对梯度下降法的改进,应用更加广泛,SGD采用迭代,每次迭代只求解所样本点,利用每次所取样本点所求出的梯度方向更新参数,主要用于优化稀疏数据或者大规模数据,测试计算的时候能节省时间开销。

2. 动量法:动量法也是一种梯度下降算法,它引入了动量变量,在优化参数的同时加入动量变量来控制参数的变化,这样可以在一定程度上避免局部极小值的情况,从而加快收敛速度。

二、陡峭边界方法:陡峭边界方法是另一种有效的一阶优化算法,它将优化问题转换成求解一个小球在多维空间跳动求解原点问题。

在这种方法中,对参数做出移动及修正操作,同时,利用拐点和弥散符合,实时调整参数搜索方向,以达到收敛到最优解的目的。

1. 共轭梯度法:它是最常用的算法,采用最快下降法和陡峭边界方法的结合体,进行统一的参数调整,并且不断的更新搜索方向。

2. LBFGS算法:LBFGS(Limited-memory Broyden-Fletcher-Goldfarb-Shanno)同样使用共轭梯度方法,在这种方法中,减少了随机的计算量,通过评估一定个数的搜索步骤,并维护开销小的内存,以计算出搜索方向。

三、其他一阶优化算法:1. Adagrad算法:Adagrad算法是一种专门为稀疏数据集设计的优化方法,它采用“自适应”学习率原则,通过偏导数以及参数的规模和变化,改变学习率的大小,达到调整收敛状态的目的。

2. RMSProp:RMSProp是一种自适应学习率优化算法,它通过“梯度过去平方和的衰减平均”来更新学习率,它可以赋予参数不同的学习率,如果学习率较小,则对参数估计更加稳定;如果学习率较大,则可以快速搜索到最优解。

一阶最优化算法

一阶最优化算法

一阶最优化算法
一阶最优化算法是指仅利用一阶导数(或梯度)信息进行最优化求解的算法。

常见的一阶最优化算法包括:
1. 梯度下降法(Gradient Descent):依据负梯度方向逐步迭代搜索最小值点;
2. 随机梯度下降法(Stochastic Gradient Descent):每次从样本中选择一个样本进行梯度更新;
3. 批量梯度下降法(Batch Gradient Descent):利用全部样本计算梯度并进行更新;
4. 牛顿法(Newton's Method):利用泰勒展开式的前两项进行近似优化;
5. 共轭梯度法(Conjugate Gradient):在寻找最佳搜索方向时,避免梯度方向重复的问题;
6. 拟牛顿法(Quasi-Newton):利用近似的海森矩阵进行更新,避免重复计算海森矩阵;
以上一阶最优化算法的具体实现方式有所不同,各自的优缺点也不同,需要根据具体场景选择合适的算法。

Ansys有限元模型修正(零阶优化算法)

Ansys有限元模型修正(零阶优化算法)

!注意:该命令流只能通过cmd下命令执行!GUI方式也有类似命令流,但是消耗内存比较大,命令流也比较繁琐,故不推荐!另一个文件:RealNodeUy.txt内容附后,运行之前记得把附后的内容先剪切掉!模型修正背景:!2*5米两跨连续梁桥,已知第1跨距左端支座3米处有长度为1米的损伤段!现根据第2跨距左端支座1米的挠度影响线进行模型修正!修正前假定损伤段惯性矩I1与未损伤段惯性矩I相同!模型修正还需要有实测的数据(见附件:RealNodeUy)!如果不太清楚模型的具体状况,可以把下面建模部分的命令流输入ansys查看效果!假定工作目录在:G:\ansys_work\ContinousBeamLoad\!模型修正步骤:!1、将该文件(batchcb.inp)以及RealNodeUy.txt放入工作目录!2、运行cmd命令流(详细解释见后面)!3、打开输出文件,查找"SOLUTION HAS CONVERGED TO POSSIBLE OPTIMUM"部分!如果结果是收敛的,可以查找到"最优解"!cmd下命令流:!首先进入ANSYS140.exe所在目录,然后输入以下指令:!ANSYS140.exe -b -p ane3fl -i G:\ansys_work\ContinousBeamLoad\batchcb.inp -o G:\ansys_work\ContinousBeamLoad\CBoutput.txt!参数解释:!-b 参数指定用batch模式求解;!-j 参数指定该求解工作目录(不指定就是当前cmd所在目录);!-p ane3fl 参数指定使用XX求解器;!-i 参数指定输入batch文件;!-o 参数指定把输出文件,便于查看过程纠错;!运行结束后,可以从输出文件中看到最优解是多少;!需要注意的事项:!建模命令流不要加:finish $ /clear 命令!batchcb.inp文件内容:/prep7eNum=100 !划分的单元个数np=eNum+1 ! 结点个数*DIM,RealNodeUy,table,np,1,,*TREAD,RealNodeUy,'RealNodeUy','txt','G:\ansys_work\ContinousBeamLoad',0!RealNodeUy:实测各结点位移NotDamageRNum=1 !未损伤单元的实常数编号DamageRNum=2 !损伤单元的实常数编号ETNum1=1 !单元编号1Ncrix=6.0 !虚荷载作用结点的x坐标EE=1 !弹性模量AA=1 !面积I=1I1=1.0LL=5 !单跨长度p=1 !荷载大小b=3 !损伤单元段的起始位置x轴坐标ld=1 !损伤段长度*dim,ResultYArr,array,1,np !结点Y位移数组(计算出来的结点位移结果) lpe=2*LL/eNum !每个单元的长度EmodNum=b/lpe+1 !修正单元的起始编号NcriNum=Ncrix/lpe+1 !虚荷载作用点节点号et,ETNum1,beam3 !主梁单元类型mp,EX,ETNum1,EEr,NotDamageRNum,AA,I !未损伤单元的实常数r,DamageRNum,AA,I1 !损伤单元的实常数real,NotDamageRNum*do,i,1,npn,i,(i-1)*lpe*if,i,ne,1,then !从第2个结点开始,设置单元e,i-1,i*endif*enddo!ESEL, Type, Item, Comp, VMIN, VMAX, VINC, KABS !命令参数esel,s,ELEM,,EmodNum !s:选择一个新的子集*if,ld,gt,lpe,then*do,i,1,ld/lpe-1esel,a,ELEM,,EmodNum+i !a:Additionally select*enddo*endifemodif,all,REAL,DamageRNum !修改实常数MidSuppNum=LL/lpe+1 !中间支座结点的编号LastSuppNum=2*LL/lpe+1 !最后一个支座结点的编号d,1,uyd,1,uxd,MidSuppNum,uyd,LastSuppNum,uy/soluf,NcriNum,fy,-pallsel,allsolve*do,i,1,np*Get,ResultYArr(1,i),NODE,i,U,Y*enddoobjFun=0 !目标函数*do,i,1,np*if,RealNodeUy(i,1),ne,0,thenobjFun=objFun+abs((RealNodeUy(i,1)-ResultYArr(1,i))/RealNodeUy(i,1))**2!如果RealNodeUy(1,i)==0,则认为该结点相对残差的平方为0*endif*enddo!格式说明!以(10e20.4)为例:20表示数组其中1个元素占20位,4表示小数点后面4位,10表示1行输出10个数!%%实现了文件名的参数化替换!*mwrite,ResultYArr,G:\ansys_work\ContinousBeamLoad\u_result00,txt,,jik,np,1 !1行np列!(101e20.4)/optopvar,I1,dv,0.5,1.1,1e-2 !定义设计变量,上下限分别为1.0 0.5,公差为1e-2(公差和优化过程的收敛有关)opvar,objFun,obj,,,1e-2 !目标函数(最终优化目的)opkeep,on !要求保留最优解的DB文件optype,subp !零阶优化(通用的函数逼近优化方法)!这种方法的本质是采用最小二乘逼进,求取一个函数面来拟和解空间,然后再对该函数面求极值。

零阶和一阶优化算法

零阶和一阶优化算法

本论文中用到的优化方法主要是零阶方法和一阶方法。

1 零阶优化方法(又称子问题逼近方法)该方法仅需要因变量的数值,而不需要其导数信息;因变量(目标函数及状态函数)首先通过最小二乘拟合值近似,而约束极小化问题用罚函数转换成无约束问题,极小化过程在近似的罚函数上进行迭代,直至获得解得收敛。

由于该方法建立在目标函数及状态变量的近似基础上,故需要一定量的初始设计变量数据。

初始数据可根据其它优化工具和方法直接生成,或随机生成。

方法的第一步把极小化约束问题用近似方法描述每一个因变量,即对目标函数,有ˆ()()ff X f X ε=+ 对状态变量,有ˆ()()ˆ()()ˆ()()g hw gX g X h X h X wX w X εεε=+=+=+ 具体的近似形式可取为有变量交叉项的全二次多项式。

如对目标函数, 0ˆn n ni i ij i j i i j f a a x b a x =++∑∑∑ 近似表达的实际形式(即表达式中的系数)随迭代过程而变。

一次迭代过程中,近似表达式中的系数i a ,ij b 由加权最小二乘技术确定。

如对目标函数,最小二乘技术可描述为对其误差范数取极小来获得,即:^2()()()1min ()n j j j j E f f αφ==-∑ 式中,()j φ=与设计变量J 相关的权系数;n α=现行设计集合数 权系数按下述方法之一确定:有较小目标函数的那些设计集合有较高的权系数(基于目标函数); 接近最佳设计的设计集合有高权值(基于设计变量值);可行设计集合权值高,而不可行设计集合权值低(基于可行性);基于上述三类权值的综合:可取所有权值为1,即()1j φ=。

由上式知,需要一定量的设计集合来形成近似,否则需产生随机设计集合,即当2n n α<+时,生成随机设计集合;当2n n α≥+时,计算近似式(n 为设计变量维数)。

b )极小化问题近似由上述对函数的近似化,约束极小化问题可重写为:^^^1^2^3min ()(1,2,3,...,)()(1,2,3,...,)()(1,2,3,...,)()(1,2,3,...,)i i i i i i i i i i i i f f X x x x i n g X g i m h h X i m w w X w i m αβγγ=≤≤=≤+=-≤=-≤≤+= 零阶方法采用罚函数将上述约束极小化问题转换成无约束优化问题,即 312^^^^01111min (,)[()()()()]m m m n i i k k i i i i i i F X p f f p X x G g H h W w =====++++∑∑∑∑式中,X 为施加设计变量约束的罚函数;G 、H 及W 为状态变量约束的罚函数;0f 为参考目标函数值(为取得一致单位而设); 0f 为响应面函数(,)k F X p 的响应面参数;F(X, px)称为响应面函数,是随设计变量及响应面参}Cpx 而变化。

一阶优化理论

一阶优化理论

优化理论设计优化介绍:优化模块(/opt )是ANSYS 程序中的一个完整的最优设计模块。

最优设计是在某种意义下的最佳设计。

在一些例子中,最优设计可以使结构得到最小重量,最大频率,在热传递中,得到最小温度,在磁场发动机中,得到最大峰值转矩。

在其他一些情况下,简单函数的最小值不是唯一目标。

还需要满足一些设计中预定义的约束。

(例如:压力,几何,位移,热流等)在最优设计中,ANSYS 优化通常需要定义三种变量来表征优化过程:设计变量;状态变量;目标函数;这些变量在ANSYS 参数化设计语言中用标量表示。

在优化步骤中,APDL是必不可少的一步。

在优化分析中独立的变量是设计变量。

设计变量的矢量形式为:[]n x x x X 21= (1)设计有N 个约束包含上限和下限: --≤≤i i ix x x ),3,2,1(n i = (2) n::设计变量的个数最小值)(x f f = (3)约束条件:-≤ii g x g )( ),,2,1(1m i = (4) )(x h h i i ≤- ),,2,1(2m i = (5)--≤≤i i i w x w w )( ),,2,1(3m i = (6)f :目标函数:,,i i i w h g 状态变量包含设计,分别有下限和上限。

321m m m ++:状态变量个数有上限和下限值状态变量作为依靠变量,随着设计变量矢量x 变化1.1 可行与不可行设计设置设计形状满足所有的约束称为可行设计。

设计形状违反一个或更多的约束称为不可行设计。

在可行设计范围内,公差加到每一个状态变量极限中。

所以:如果*x 是一个给定的设计值)(**3*2*1*n x x x x x = (7) 设计认为可行只有当:i i i i g x g g α+≤=-)(**),,3,2,1(1m i = (8) )(**x h h h i i i i =≤-β ),,3,2,1(2m i = (9)i i i i i i w x w w w γγ+≤=≤---)(** ),,3,2,1(3m i = (10)i i i γβα,,是公差。

matlab 两阶段算法

matlab 两阶段算法

matlab 两阶段算法两阶段算法(Two-Phase Algorithm)是一种常用的优化算法,主要用于解决复杂问题。

它通常由两个阶段构成,第一个阶段用于生成一组初始解,第二个阶段则基于这组初始解进行进一步的优化。

第一个阶段的目标是生成一组具有较好质量的初始解,这些初始解将作为优化问题的起点。

常见的方法包括随机生成和启发式生成。

随机生成是指根据问题的特性和约束,在可行解空间中随机选取一组解作为初始解。

而启发式生成则是通过利用问题的相关信息和经验知识,构造一组较为合理的初始解。

第二个阶段则利用第一个阶段生成的初始解,进行进一步的优化。

这里可以采用一些优化算法,例如线性规划、整数规划、动态规划等。

优化算法的选择主要依赖于具体的问题和约束条件。

在这个阶段,目标是尽可能找到一个最优解,使目标函数的值最小或最大化。

在实际应用中,两阶段算法经常用于求解复杂的组合优化问题,如旅行商问题、背包问题、路径规划等。

它的优点是在第一个阶段中能够生成一组相对较好的初始解,这对于某些问题而言非常重要。

同时,第一个阶段和第二个阶段相对独立,可以根据需要进行调整和优化,使得整个算法更符合实际应用的需求。

举个例子来说明两阶段算法的应用。

假设有一个旅行商问题,旅行商需要依次访问N个城市,要求找到一条最短路径使得总旅行距离最小。

那么首先,我们可以使用某种启发式算法生成一组初始路线,例如使用最近邻法或者最短边法。

然后,在第二个阶段,可以采用动态规划或者遗传算法对这组初始路线进行优化,找到一条更短的路径。

两阶段算法的一个挑战是如何确定第一个阶段生成的初始解质量较好,以及如何将第一个阶段生成的解转化为第二个阶段的优化问题的起点。

这需要考虑到问题的特性和约束条件,并结合有关的启发式方法和优化算法。

另外,两阶段算法也需要考虑时间和空间复杂度的问题,特别是在处理大规模问题时。

总之,两阶段算法是一种常见的优化算法,通过两个阶段的协同作用,可以更好地求解复杂问题。

一阶系统的三要素法

一阶系统的三要素法

一阶系统的三要素法一阶系统是控制系统中最简单的一种模型,它由一个惯性环节和一个比例环节组成。

为了对一阶系统进行分析和设计,我们可以使用一阶系统的三要素法,即时间常数、增益和零阶模型。

时间常数是一阶系统的重要特性之一。

它表示系统达到稳定状态所需的时间。

时间常数越小,系统的响应速度越快。

时间常数的计算方法是通过测量系统从初始状态到达稳定状态所需的时间,并将其除以自然对数的底数e。

增益是指系统的输出响应与输入信号的比例关系。

在一阶系统中,增益常常用比例系数K表示。

增益越大,系统的输出变化越大,反之亦然。

增益的计算方法是通过测量系统的输出响应和输入信号的幅值,并将其相除得到。

零阶模型是一阶系统的数学表示。

它是通过对系统进行建模和分析得到的。

一阶系统的零阶模型可以用微分方程或传递函数表示。

微分方程描述了系统的动态行为,传递函数则将输入信号和输出响应之间的关系表示为一个分数多项式。

应用三要素法来分析一阶系统,首先需要确定系统的时间常数、增益和零阶模型。

可以通过实验或理论推导的方式来获得这些参数。

然后,可以使用这些参数来评估系统的性能和稳定性。

时间常数可以帮助我们判断系统的响应速度是否满足要求。

如果时间常数较大,系统的响应速度会较慢,反之则会较快。

增益可以帮助我们判断系统的输出变化情况。

如果增益过大或过小,系统的输出可能会超出我们的期望范围。

因此,需要根据具体应用场景来确定合适的增益值。

零阶模型可以帮助我们理解系统的动态行为,并进行系统设计和优化。

一阶系统的三要素法是分析和设计一阶系统的重要工具。

通过确定系统的时间常数、增益和零阶模型,我们可以对系统的性能和稳定性进行评估,并进行系统的优化和设计。

这种方法简单直观,适用于许多实际控制系统的应用。

在实际应用中,我们可以根据具体需求和系统特性来选择合适的时间常数、增益和零阶模型,以实现预期的控制效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本论文中用到的优化方法主要是零阶方法和一阶方法。

1 零阶优化方法(又称子问题逼近方法)该方法仅需要因变量的数值,而不需要其导数信息;因变量(目标函数及状态函数)首先通过最小二乘拟合值近似,而约束极小化问题用罚函数转换成无约束问题,极小化过程在近似的罚函数上进行迭代,直至获得解得收敛。

由于该方法建立在目标函数及状态变量的近似基础上,故需要一定量的初始设计变量数据。

初始数据可根据其它优化工具和方法直接生成,或随机生成。

方法的第一步把极小化约束问题用近似方法描述每一个因变量,即对目标函数,有ˆ()()ff X f X ε=+ 对状态变量,有ˆ()()ˆ()()ˆ()()g hw gX g X h X h X wX w X εεε=+=+=+ 具体的近似形式可取为有变量交叉项的全二次多项式。

如对目标函数, 0ˆn n ni i ij i j i i j f a a x b a x =++∑∑∑ 近似表达的实际形式(即表达式中的系数)随迭代过程而变。

一次迭代过程中,近似表达式中的系数i a ,ij b 由加权最小二乘技术确定。

如对目标函数,最小二乘技术可描述为对其误差范数取极小来获得,即:^2()()()1min ()n j j j j E f f αφ==-∑ 式中,()j φ=与设计变量J 相关的权系数;n α=现行设计集合数 权系数按下述方法之一确定:有较小目标函数的那些设计集合有较高的权系数(基于目标函数); 接近最佳设计的设计集合有高权值(基于设计变量值);可行设计集合权值高,而不可行设计集合权值低(基于可行性);基于上述三类权值的综合:可取所有权值为1,即()1j φ=。

由上式知,需要一定量的设计集合来形成近似,否则需产生随机设计集合,即当2n n α<+时,生成随机设计集合;当2n n α≥+时,计算近似式(n 为设计变量维数)。

b )极小化问题近似由上述对函数的近似化,约束极小化问题可重写为:^^^1^2^3min ()(1,2,3,...,)()(1,2,3,...,)()(1,2,3,...,)()(1,2,3,...,)i i i i i i i i i i i i f f X x x x i n g X g i m h h X i m w w X w i m αβγγ=≤≤=≤+=-≤=-≤≤+= 零阶方法采用罚函数将上述约束极小化问题转换成无约束优化问题,即 312^^^^01111min (,)[()()()()]m m m n i i k k i i i i i i F X p f f p X x G g H h W w =====++++∑∑∑∑式中,X 为施加设计变量约束的罚函数;G 、H 及W 为状态变量约束的罚函数;0f 为参考目标函数值(为取得一致单位而设); 0f 为响应面函数(,)k F X p 的响应面参数;F(X, px)称为响应面函数,是随设计变量及响应面参}Cpx 而变化。

每个设计迭代中,采用一种系列无约束极小化技术(SUMT)来计算(,)k F X p 下标k 反映了在子问题求解过程中所实施的子迭代。

于是,为获得精确的收敛结果,响应面参数在数值上是增加的,即123...p p p <<<。

所有罚函数均采用由内伸张型。

如接近设计变量上限时,设计变量罚函数形式取为:1234/()()()/()()i i i i i c c x x x x x x X x c c x x x x x x εε⎧⎫+-<--⎪⎪=⎨⎬+-≥--⎪⎪⎩⎭当当式中,1c 、2c 、3c 及4c 为内部计算常数;ε为极小正数。

状态变量罚函数取类似形式。

如状态变量接近上限时,^^12^^34/()()()/()()i i i i i i i i i i i i i d d w w w w w w W w d d w w w w w w εε⎧⎫+-<--⎪⎪=⎨⎬⎪⎪+-≥--⎩⎭当当式中,1d 、2d 、3d 、4d 为内部计算常数。

采用SUMT 技术使无约束目标函数极小化,当设计迭代翔步时,即得:()()j j X X → ()()j j F F → ()j X对应于()j F 的设计变量列矢。

每一设计迭代中的最终步依据于下一个迭代均j+1中对设计变量列矢的确定。

设计矢量(1)j X +依据下述方程来确定:(1)()()(()j b j b X X c X X +=+- 式中,()b X 为最佳设计集合常值列矢;c 为内部选择参数,从 0.0~1.0变化,依据不可行解的数量而定。

C)收敛性子问题近似迭代直至达到收敛或发生终止。

这两个事件仅发生于当现行的设计集合数等于或超过逼近方程所需的数量时。

当下列情况同时发生时,认为达到收敛:当前设计集合妒)或前一个设计集合()j X 或最佳设计集(1)j X -)都是可行解;下列情况之一发生:()(1)()()()(1)()()1(1,2,3,...,)(1,2,3,...,)j j j b j j i j b i i i f f f f x x i n x x i n ττρρ---≤-≤-≤=-≤=()(2)(3)(4)式中,τ、i ρ为目标函数及设计变量容差。

条件(1)、(2)对应目标函数的差;条件(3)、(4)对应设计变量差。

若上述四个条件不能实现,则发生下列条件之一时停止迭代:s s n N = s s n N = s n =子问题的迭代数:刀J 户顺序不可行设计集合数; =s N 最大设计迭代数;NS,--Jif}序不可行设计集合的最大数。

一阶优化方法a) 概述该方法计算并利用导数信息进行优化。

约束优化问题通过罚函数转换成无约束优化,对目标函数及状态变量的罚函数计算导数,形成设计空间中的搜索方向。

每个设计迭代中,实施最速下降及对偶方向搜索直至达到收敛。

每次迭代由多个子迭代组成,其中包括搜索方向及梯度计算。

换句话说,一个一阶设计优化迭代将需要几次计算循环。

对比子问题逼近方法,该方法需要更多的计算量而且更精确。

无约束目标函数可写为:31211110(,)()[()()()]m m m n x i g i h i w i i i i i f Q X q P x q P g P h P w f =====++++∑∑∑∑ 式中,Q 为无量纲无约束目标函数;x P 、g P 、h P 、w P 为用于受约束的设计和状态变量的罚函数;0f 为参考目标函数值,从现行设计集合组中选择。

对约束的满足受控于响应面参数q 。

外罚函数x P 用于设计变量,状态约束由扩张型内罚函数凡g P 、h P 、w P 描述。

例如,对由一个上限约束的状态变量,其罚函数写作(以i g 为例):2()()i g i i i g P g g λα=+ 式中,λ为一较大整数,使得当违反约束时g P 很大,反之则很小。

其余罚函数有类似的形式。

当确定好搜索方向,如果将Q 写成两项之和,可更好地获得计算效益。

为此,定义:0()f f Q X f =及 3121111(,)()[()()()]m m m n p x i g i h i w i i i i i Q X q P x q P g P h P w =====+++∑∑∑∑则 (,)()(,f p Q X q Q X Q X q =+b)搜索方向对于每一个优化迭句,要设计一个搜索方向矢量()i d ,从而确定j+1步迭代的设计变量即为,(1)()(j j i j X X S d +=+搜索参数j S 对应于沿()i d 方向使Q 为最小值,拟合技术的组合来获得。

j S 的解由黄金分割律和一个局部二次j S 的范围限制于:m a x 0100j j S S S *≤≤ 式中,j S 为现行迭代中线性搜索的最大可能步长。

max S 为最大的线性步长(百分数)。

求解Q 最小值的关键在于搜索方向系列的生成以及响应面参数g 的调整: 对于初始迭代勿=0,搜索方向为无约束目标函数的负梯度,即:(0)(0)(0)(,)f p d Q x q d d =-∇=+ 式中q=1,且(0)(0)(0)()()f f p p d Q x d Q x =-∇=-∇及 显然,对初始迭代步搜索方法为最速下降法。

对后继迭代j>0,根据Polak-Ribiere 递推公式生成共扼方向,即:()()(1)1()(1)12(1)(,)[()(,)](,)j j j k j j j Tj j d Q x q r d Q x Q x q r Q x q -----=-∇+∇-∇=∇ 注意:当所有设计变量满足约束,即()0x j P x =,这意味着Q 能够由从p Q 提出因子,并且写作:()()(,)()(1,2,3,...,)j j i p p i i Q x q qQ x x x x i n =≤≤=当 若修正得当,q 能随迭代而变,且不破坏()j d 式的共扼性质,调整q 值提供了对状态变量约束的内部控制。

随着收敛的逼近,有必要的话,可推动约束接近它们的极限值。

一旦方程()j d 分成两个向量之和,这个调整就更为明显,即()()(j j j f p d d d =+ 式中,每一个方向分别有各自的递推关系:()()(11()()(1)1()()j j j f f j f j j j p p j p d Q x r d d Q x r d ----=-∇+=-∇+ 优化算法可能会置1j r -,迫使执行最速下降迭代,此类情况可能遇到属于下述情况之一:检测到病态情况;接近收敛时;临界状态变量满足约束而过于保守 梯度变量使用近似的算法计算,即:()()()()()()j j j i j j Q x x e Q x Q x x x +∆-∂=∂∆式中,1e ⎧=⎨⎩对应分量i 0对应其他分量。

相关文档
最新文档