虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

最优控制

  • 遗传算法的MATLAB代码

    遗传算法为群体优化算法,也就是从多个初始解开始进行优化,每个解称为一个染色体,各染色体之间通过竞争、合作、单独变异,不断进化。 优化时先要将实际问题转换到遗传空间,就是把实际问题的解用染色体表示,称为编码,反过程为解码,因为优化后要进行评价,所以要返回问题空间,故要进行解码。SGA采用二进制编码,染色体就是二进制位串,每一位可称为一个基因;解码时应注意将染色体解码到问题可行域内。 遗传算法模拟“适者生存,优胜劣汰”的进化机制,染色体适应生存环境的能力用适应度函数衡量。对于优化问题,适应度函数由目标函数变换而来。一般遗传算法求解最大值问题,如果是最小值问题,则通过取倒数或者加负号处理。SGA要求适应度函数>0,对于<0的问题,要通过加一个足够大的正数来解决。这样,适应度函数值大的染色体生存能力强。 遗传算法有三个进化算子:选择(复制)、交叉和变异。 SGA中,选择采用轮盘赌方法,也就是将染色体分布在一个圆盘上,每个染色体占据一定的扇形区域,扇形区域的面积大小和染色体的适应度大小成正比。如果轮盘中心装一个可以转动的指针的话,旋转指针,指针停下来时会指向某一个区域,则该区域对应的染色体被选中。显然适应度高的染色体由于所占的扇形区域大,因此被选中的几率高,可能被选中多次,而适应度低的可能一次也选不中,从而被淘汰。算法实现时采用随机数方法,先将每个染色体的适应度除以所有染色体适应度的和,再累加,使他们根据适应度的大小分布于0-1之间,适应度大的占的区域大,然后随机生成一个0-1之间的随机数,随机数落到哪个区域,对应的染色体就被选中。重复操作,选出群体规模规定数目的染色体。这个操作就是“优胜劣汰,适者生存”,但没有产生新个体。 交叉模拟有性繁殖,由两个染色体共同作用产生后代,SGA采用单点交叉。由于SGA为二进制编码,所以染色体为二进制位串,随机生成一个小于位串长度的随机整数,交换两个染色体该点后的那部分位串。参与交叉的染色体是轮盘赌选出来的个体,并且还要根据选择概率来确定是否进行交叉(生成0-1之间随机数,看随机数是否小于规定的交叉概率),否则直接进入变异操作。这个操作是产生新个体的主要方法,不过基因都来自父辈个体。 变异采用位点变异,对于二进制位串,0变为1,1变为0就是变异。采用概率确定变异位,对每一位生成一个0-1之间的随机数,看是否小于规定的变异概率,小于的变异,否则保持原状。这个操作能够使个体不同于父辈而具有自己独立的特征基因,主要用于跳出局部极值。 遗传算法认为生物由低级到高级进化,后代比前一代强,但实际操作中可能有退化现象,所以采用最佳个体保留法,也就是曾经出现的最好个体,一定要保证生存下来,使后代至少不差于前一代。大致有两种类型,一种是把出现的最优个体单独保存,最后输出,不影响原来的进化过程;一种是将最优个体保存入子群,也进行选择、交叉、变异,这样能充分利用模式,但也可能导致过早收敛。 由于是基本遗传算法,所以优化能力一般,解决简单问题尚可,高维、复杂问题就需要进行改进了。 下面为代码。函数最大值为3905.9262,此时两个参数均为-2.0480,有时会出现局部极值,此时一个参数为-2.0480,一个为2.0480。算法中变异概率pm=0.05,交叉概率pc=0.8。如果不采用最优模式保留,结果会更丰富些,也就是算法最后不一定收敛于极值点,当然局部收敛现象也会有所减少,但最终寻得的解不一定是本次执行中曾找到过的最好解。

    标签: 遗传算法

    上传时间: 2015-06-04

    上传用户:芃溱溱123

  • SCE—UA方法在新安江模型参数优化中的应用

    一种新型的智能算法的应用实例,收敛较快且容易得到最优解

    标签: SCE

    上传时间: 2015-07-18

    上传用户:夏日特饮凉白开

  • 考虑撬棒保护接入的双馈感应发电机转子磁链动态特性

    撬棒保护电路的接入会改变低电压穿越过程中双馈感应发电机(DFIG)定转子磁链间的耦合过程和耦合强度,由此将影响机组磁链衰减动态和撬棒保护性能。针对这一问题,提出了一种刻画定子磁链与转子绕组交链感应作用的磁链耦合系数,将电网故障后电机的磁链暂态耦合过程处理为不同状态的叠加,综合研究撬棒电阻对转子感应磁链正序、负序和暂态反向交流分量幅值和相角的耦合规律,用转子磁链空间矢量图和矢量轨迹图描述转子磁链动态响应过程。最后,针对电网不对称故障下撬棒取值的问题,提出了一种基于转子磁链幅值配比原理和最优倾角的撬棒阻值选取方法。该方法可减小磁链耦合不当对机组的暂态冲击,从而有效改善机组的无功外特性和瞬态性能。采用MATLAB/Simulink仿真验证了理论分析和所提方法的正确性。

    标签: 双馈感应发电机 低电压穿越 撬棒保护 磁链动态特性 磁链耦合

    上传时间: 2016-01-01

    上传用户:icebee251

  • 帕累托最优解

    matlab绘制pareto前沿,并且附带C文件以及编译好的mex文件

    标签: pareto front

    上传时间: 2016-01-18

    上传用户:chenwudebin

  • 强化学习研究综述

    强化学习通过试错与环境交互获得策略的改进,其自学习和在线学习的特点使其成为机器学习研究的一个重要分支.该文首先介绍强化学习的原理和结构;其次构造一个二维分类图,分别在马尔可夫环境和非马尔可夫环境下讨论最优搜索型和经验强化型两类算法;然后结合近年来的研究综述了强化学习技术的核心问题,包括部分感知、函数估计、多agent强化学习,以及偏差技术;最后还简要介绍强化学习的应用情况和未来的发展方向.

    标签: 强化学习

    上传时间: 2016-03-26

    上传用户:liyanfei

  • 共轭梯度法--MATLAB程序

    共轭梯度法为求解线性方程组而提出。后来,人们把这种方法用于求解无约束最优化问题, 使之成为一种重要的最优化方法。   共轭梯度法的基本思想是把共轭性与最速下降方法相结合, 利用已知点处的梯度构造一组共 轭方向, 并沿这组方向进行搜索, 求出目标函数的极小点。 根据共轭方向的基本性质, 这种 方法具有二次终止性。 在各种优化算法中, 共轭梯度法是非常重要的一种。 其优点是所需存 储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。   共轭方向   无约束最优化方法的核心问题是选择搜索方向 . 在本次实验中 , 我们运用基于共轭方向的一种 算法 — 共轭梯度法   三.算法流程图:     四.实验结果:   (1). 实验函数   f=(3*x1-cos(x2*x3)-1/2)^2+(x1^2-81*(x2+0.1)+sin(x3)+1.06)^2+(exp(-x1*x2)+20*x3+ 1/3*(10*3.14159-3))^2;   给定初始点 (0,0,0) , k=1 ,最 大迭代次数 n       d   确定搜索方向   进 退 法 确 定 搜 索 区 间   分割法确定最 优步长  

    标签: MATLAB 梯度 程序

    上传时间: 2016-05-08

    上传用户:saren11

  • 模拟退火算法工具箱

    模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。

    标签: 模拟退火算法 工具箱

    上传时间: 2016-05-11

    上传用户:wkchong

  • PSO算法的源代码

    粒子群最优算法等源代码,希望有需要的能自行下载,压缩包包括了text解析,忘使用前阅读

    标签: 粒子群最优算法等源代码

    上传时间: 2016-05-27

    上传用户:我会发光biubiubiu

  • 基于Kalman滤波技术的捷联惯导系统水平阻尼算法

    探索一种应用 Kalman 滤波技术估计出系统状态,通过反馈校正实现惯导系统水平阻尼的方法。当外速度存在常值误差时,惯导系统水平姿态误差和加表零偏的耦合量经 Kalman 滤波,能够被快速准确地估计出来,在最优时刻反馈此估计量对系统进行校正,可以对舒勒振荡进行阻尼,实现传统水平阻尼网络的作用。仿真试验表明,与传统阻尼网络相比,Kalman 滤波阻尼不仅能够有效地消除舒勒周期振荡误差,而且在导航状态切换过程中能有效抑制超调的产生,改善系统的性能。

    标签: Kalman 滤波技术 捷联惯导 水平 系统 算法 阻尼

    上传时间: 2016-08-17

    上传用户:瓦力瓦力hong

  • 赛灵思 FPGA 设计时序

    赛灵思 FPGA 设计时序:作为赛灵思用户论坛的定期访客(见 http://forums.xilinx.com),我注意到新用 户往往对时序收敛以及如何使用时序约束 来达到时序收敛感到困惑。为帮助 FPGA 设计新手实现时序收敛,让我们来深入了 解时序约束以及如何利用时序约束实现 FPGA 设计的最优结果。

    标签: FPGA 赛灵思 计时

    上传时间: 2016-12-14

    上传用户:bigbibby