当前位置:首页 > 教学设计 > 【对具有随机变量的工程管理系统优化】设随机变量(x,y)具有分布函数
 

【对具有随机变量的工程管理系统优化】设随机变量(x,y)具有分布函数

发布时间:2019-02-21 04:07:08 影响了:

  [摘 要]对于一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用,这时模拟几乎成为人们的唯一的选择。本文针对随机系统的特点,运用Simulink/Stateflow建立仿真模型,并进一步将仿真模型作为优化函数,运用优化算法对带有随机因素的问题进行动态优化,有别于以前的根据不同策略下分别仿真,再根据仿真结果对不同策略进行比较,以选择较优方案的方式。
  [关键词]状态流动态优化随机系统
  [中图分类号]TM[文献标识码]A[文章编号]1007-9416(2010)03-0060-02
  
  1 问题的提出
  随着经济、技术的发展,工程技术、管理人才在实际工作中常常会面临这样一类问题:在工程设计中,怎样选取参数使得设计既满足要求又能降低成本;在资源分配中,怎样的分配方案既能满足各方面的基本要求,又能获得很好的经济效益;在生产计划安排中,选择怎样的计划方案才能提高产值和利润;在原料配比中,怎样确定各种成分的比例才能提高质量、降低成本;在城建规划中,怎样安排工厂、机关、学校、商店、医院、住宅和其他单位的合理布局,才能方便群众,有利于城市各行各业的发展。这类问题的共同点就是选出最合理、达到事先预定的最优目标方案,这就使得工程优化问题显得尤为重要。
  2 随机工程系统优化管理策略的确定方法
  工程管理系统是一个随机系统,系统管理的优化可借助于仿真的方法:
  第一步,先构造随机工程管理系统的仿真模型,在该模型中定义盈利费为目标函数值,并定义待优化的变量,在模型考虑各种随机因素(变量)的影响,在安排一定的捕渔船(待优化的变量)条件下使该仿真模型运行较长一段时间,以便获得在一定的经营策略下的收益(统计特性)。
  第二步,用有效的优化算法对随机系统进行“在线”优化,以第一步所建立的随机系统仿真模型为待优化的目标函数,因目标函数是随机函数,因此每次优化后所得到的最优参数值也不是确定值,可以进行较多次数的优化可获得最优参数的最大值。
  2.1 Simulink/Stateflow仿真模型建立
  Simulink/Stateflow是Matlab 软件中两个重要的工具。利用两者可以开发各种系统仿真模型(Simulink/Stateflow 仿真模型) 。Simulink/Stateflow模型程序主要由Simulink 模块、Stateflow 模块( Stateflow 图) 、工具箱模块等构成。其中,Simulink 专用于连续或离散时间的动态系统仿真,是仿真系统的核心;而Stateflow 则用于在Simulink 连续或离散时间动态仿真环境下,和事件驱动系统紧密结合,以状态图形式动态显示仿真状态。它的作用是完成复杂的逻辑判断和管理工作。比如有些判断和管理不是基于某些可模块化的模型的,那么只用simulink来做可能非常复杂,这时使用stateflow就很好。Stateflow是一个为建模和仿真事件驱动系统的集成的设计工具。采用图形化的方式来描述有限状态机系统,这类系统由状态和转移构成系统的模块。是基于一个传统的状态转移图和控制流程图的结合体。 Stateflow charts能够图形化的表示层次和并行状态和事件驱动的转移。通过 Stateflow, 你可以很快的开发出含有状态转换的事件驱动系统的图示模型,而不需要你掌握有限元状态机原理。每一个 Stateflow 图在 Simulink 模型中都被看作一个独立的模块。这个模块可以同其他的模块交换数据、信号和事件。Stateflow 通过函数调用来触发 Simulink 模块的执行。在你的模型中使用了 Stateflow 和 Simulink ,也就是把算法和逻辑行为结合在了一起。同时Simulink模块与Stateflow模块通过s-functionAgent函数实现无缝连接, 并均能与外部交换信息。它提供了一种图形化的交互环境,使建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统),成为一件轻松的事情。
  2.2 仿真实例
  某水产公司有50艘捕鱼船,每艘船日经营费用为10000元/日。每天每艘船由早晨到中午捕鱼能力为3600公斤。然后驶向多个港口,售出每天捕捞的鱼。每个港口的鱼价和需求量不确定,港口甲的鱼价稳定在3元/公斤,且建有良好的配套设施,可对大量鲜鱼进行处理。港口乙的鱼价符合均值为4、标准离差为3(元/公斤)的正态分布。但处理鲜鱼能力有限,该水产公司面临的需求量服从均值为15、标准离差为5(吨)的正态分布,若渔船到达该港,可能不能售出其全部鲜鱼,由于时间问题,也无法到达另一个港口,只能将剩余鲜鱼倒入大海。问如何安排捕鱼船到各港口售鱼才能使得该水产公司获得更多的利润。
  可以认为此系统为离散事件系统,其解题步骤如下:
  2.2.1 用MATLAB中的stateflow(状态流)编程构造随机系统运行的仿真模型(见图1所示)。
  下面简单介绍此模型的运行机制:
  流图激活后进入py状态:(1)执行en:j2=ml(‘normrnd(4,3)’);day+=1; n1=3*(50-d)*3600;l1=d*3600语句,产生当天港口乙的鱼价j2,并统计时间day;(2)计算甲港口在当天的营业额n1;(3)以及分配到甲港口的捕鱼船一天的捕鱼量的总和l1;(4)根据随机变量ml(‘normrnd(15,5)’)(乙港口处理鲜鱼的能力)计算乙港口一天的营业额l;(5)若当天营业额l多于甲港口的捕鱼船一天的捕鱼量的总和l1,则乙港口的营业额n2等于乙港口的鱼价与甲港口捕鱼量的乘积;(6)若当天营业额l少于甲港口的捕鱼船一天的捕鱼量的总和l1,则乙港口的营业额n2等于乙港口的鱼价与乙港口捕鱼量的乘积;(7)当从py状态退出时,通过执行exit:n=10000-(m/50)/day;语句,计算当天的盈利值n;(8)循环上述的步骤。程序如此循环执行得到在循环次数的运行值的最大值。
  在流图变量表中的’scope’项内应定义为’output’型,在simulink图内用输出端口>与此输出变量n相连,并加入一个脉冲作为事件源,得到如图2的simulink
  模型框图,将此模型以’py.mdl’名存盘。
  再进一步建立function文件simpy.m,程序如下:
  function y=simpy(x)
  assignin ("base","d",x);[t,x,y1]=sim("py",[0,50]); y=y1(end); End
  以该函数作为随机库存系统优化的目标函数,其中日盈利费n为待优化的目标函数值,,以便将每次运行(优化)的日盈利费n值返回优化程序。其中d为目标函数内需优化的变量(参数),其优化过程中程序之间参数值的传递通过MATLAB工作空间,因此在流图中用’ml.d’标示。再调用遗传算法程序对变量进行优化。可知当向港口乙派4艘船时,能获得最大平均利润1110元/船。
  3 结语
  对于具有随机因素(变量)的工程系统运行和管理进行优化,采用本文所介绍的先编制系统运行的仿真模型,在模型中定义目标函数,并将此模型作为优化程序的目标函数。解决了带随机因素的系统建模困难的问题。该方法充分利用流行软件MATLAB中的工具和函数,因此编程很简单,只需编制被优化系统运行的仿真图。由本文的实例中可以看出:该类系统用’stateflow’编制状态流图也非常直观简单,特别适合系统管理中的复杂逻辑关系。由仿真实例也验证了本文所提方法的有效性,该方法可应用于类似的任何系统的优化。
  
  [参考文献]
  [1] 邱晓林,李天柁,弟宇鸣,肖刚.《基于MATLAB的动态模型与系统仿真工具――Simulink 3.0/4.X》.西安:西安交通大学出版社,2003.10.
  [2] 沈辉.《精通SIMULINK系统仿真与控制》.北京:北京大学出版社,2003.1.
  [3] 薛定宇,陈阳泉.《控制数学问题的MATLAB求解》[M].北京:清华大学出版社,2007.11.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3