1、matlab实验案例节水洗衣机1 实验案例 11.1 案例:节水洗衣机 11.1.1 问题重述与分析 21.1.2 基本假设及说明 21.1.3 符号和变量说明 21.1.4 建模准备 31.1.5 模型建立 41.1.6 模型求解 41.1.7 思考题 101实验案例1.1案例:节水洗衣机问题:1996年全国赛B题 节水洗衣机我国淡水资源有限,节约用水人人有责,洗衣机在家庭用水中占有相当大的份额,目前洗衣机已非常普及,节约洗衣机用水十分重要。假设在放入衣物和洗涤剂后洗衣机的运行过程为:加水漂洗脱水加水漂洗脱水 加水漂洗脱水(称“加水漂洗脱水”为运行一轮)。请为洗衣机设计一种程序(包括运行多少
2、轮、每轮加水量等),使得在满足一定洗涤效果的条件下,总用水量最少。选用合理的数据进行运算,对照目前常用的洗衣机的运行情况,对你的模型和结果出评价。洗衣机的节水优化模型摘要 本文通过分析洗衣机的洗衣过程,认为是一次性溶解、多次稀释的过程。据此建立非线性规划模型,并利用迭代公式和最优化原理,得出最少用水量的判断公式和代数解。以海棠洗衣机为例,通过对比,利用我们的模型算出的用水量比厂家提供的数据要少,从而说明所建模型的优越性。最后,根据模型解,给出最少用水量与脏衣服的重量的关系图,并从中得出有趣的结论,也给厂家提供一个节约用水的模型。1.1.1问题重述与分析对洗衣机的运行进行设计,主要目的是为了节约
3、用水量。在满足洗涤效果的前提下使得用水量最少。因此,这是一个典型的最优化问题,目标为洗衣总用水量最少,主要的决策为洗多少轮以及每轮加水量的问题。而一般洗衣只是第一次加水漂洗时才放洗涤剂,而过后则是清水漂洗,通过化学原理,可以将第1轮洗涤后的各轮洗涤看成是不断的稀释过程。为了评价洗涤效果,可用衣服上残留的污物质量与洗涤前污物质量之比作为评价指标。在设计每轮加水量时,要考虑洗衣机本身洗衣同的最大容积,运行的最低加水量。1.1.2基本假设及说明1洗衣机一次用水量有最高限和最低限,能连续补充在限度内的任意水量;2洗衣机每轮运行过程为:加水漂洗脱水;3仅在第一轮运行时加上洗涤剂,在后面的运行轮中仅有稀释
4、作用;4洗衣时所加的洗涤剂适量,漂洗时间足够,能使污垢一次溶解,忽略不能溶解的污垢;5脱水后的衣服质量与干衣服的重量成正比;6每缸洗衣水只用一次; 1.1.3符号和变量说明:污物的质量(kg);:第i轮运行时污物浓度(kg/升);n:洗衣服时洗衣机运行轮数(次);:第i轮用水量(升);:干衣服的质量(kg);:衣服脱水后衣服含水质量(kg);:衣服的清洁度(常量,洗衣的衣服上污量与之比);:洗一次衣服的总用水量(升);:洗衣机一次洗衣的最大量(kg);:脱水后衣服含水质量与干衣服质量比(常数);显然:洗衣机一次注水最高限(升);:衣服完全浸泡的状态下为洗衣机能正常运行需注入的最低水量(升);:
5、单位质量的衣服完全浸泡最低所需水量(常量);1.1.4建模准备(1)由化学中的洗涤原理知,有助于洗涤作用的三个因素:1、表面活性(以肥皂为代表的活性剂产生洗涤作用的各种物质之通称);2、界面电(配入洗涤剂中的碱和磷酸盐等无机助剂的作用);3、机械力和流水力(由于水的流动产生机械力)在洗衣过程中,一般之在第一次加入洗涤剂,在第二次及以后,不再加入洗涤剂,从而,使有助于洗涤的三个因素的前两个不存在,只剩下水的流动力的作用,洗涤作用因此很微弱。于是假设污物的第一次被洗涤,接下来的过程只是污物的稀释过程是合理的。(2)实际生活经验可知,在衣服完全浸泡的基础上,洗衣机还需有一定的富裕水量才能使其正常运行
6、。一种衣服完全浸泡所需水量是衣服质量的倍,则质量为的衣服使洗衣机能洗的最少水量。脱水后剩下水量是衣服质量的倍,。对于普通衣服可视为常数。实验测定1kg混合干衣服浸泡所需水量,脱水后衣服含水量与干衣服质量之比,如表1。0.51.01.52.02.53.03.5水量2.565.027.489.8712.315.718.60.30.610.921.201.521.882.15计算可得。各次运行时,污物的浓度为:,经过迭代得到1.1.5模型建立根据以上分析,可以建立解决洗衣机节水的非线性最优化模型。(1)1.1.6模型求解1.1.6.1解析求解如果(1)存在最优解,则可以证明(证明从略)。n的取值讨论
7、(1)当刚好为,则有最多洗涤轮数。由,得(2)当刚好为,则有最少洗涤轮数。由,得综上所述,n的取值范围为。1.1.6.2其他求解方法所建立模型为非线性最优化模型,故这里采用Matlab求解非线性规划的函数fmincon求解。1.1.6.3数据初始化程序init1996b.m%1996B洗衣机节水模型%参数与数据初始化%af =0.60;%脱水后衣服含水质量与干衣服质量比(常数)beta = 5.0;%单位质量的衣服完全浸泡最低所需水量(常量);Vmin = 24;%衣服完全浸泡的状态下为洗衣机能正常运行需注入的最低水量(升);ef= 0.001;%衣服的清洁度(常量,洗衣的衣服上污量与 之比)
8、;M = 5;%干衣服的质量(kg);m = af*M;%衣服脱水后衣服含水质量(kg)VminM = beta*M + Vmin;Vmax = 60;%洗衣机一次注水最高限(升);1.1.6.4模型求解程序(根据n穷举求解)程序:solv1996_1.m%initinit1996bNmin = fix( log(ef)/ log(m/Vmax) ) + 1Nmax = fix( log(ef)/ log(m/VminM) ) + 1opti_s = 1e6;for n= Nmin:Nmax, t1= m/(ef)(1/n) t2= VminM onex= max(m/(ef)(1/n),Vm
9、inM); S = n*onex-(n-1)*m x=; x(1)=onex; if n=2, for i=2:n, x(i)=onex-m; end end %test=sum(x)-S; if S =2, for i=2:n, tmpX=tmpX*(x(i)+m);%x1*(x2+m)*(x3+m)*.*(xn+m) endendC=mn -tmpX*ef ;%只有一个约束,决策变量约束用fmincon的参数lb,ub来处理%C=mn/tmpX - ef ;%只有一个约束,决策变量约束用fmincon的参数lb,ub来处理Ceq=;主程序:solv1996b_2%1996B洗衣机节水模型%
10、参数与数据初始化%initinit1996bNmin = fix( log(ef)/ log(m/Vmax) ) + 1Nmax = fix( log(ef)/ log(m/VminM) ) + 1opti_s = 1e6;for n=Nmin:Nmax,%穷举所有可能洗衣次数的模型 lb=; ub=; lb(1)= VminM; ub(1)= Vmax; if n=2, for j=2:n, lb(j) = VminM- m; ub(j) = Vmax-m; end end lb ub x,fval,exitflag=fmincon(myobj1996b,VminM*ones(1,n),.
11、lb,ub,mycon1996b) if fval In E:MATLABR11toolboxoptimfmincon.m at line 190 In F:PROGRAMmbooksolv1996b_2.m at line 24Optimization terminated successfully: Search direction less than 2*options.TolX and maximum constraint violation is less than options.TolConActive Constraints: 1 2 3x = 49 46 46fval = 141exitflag = 1opti_n = 3opti_s = 141opti_x =49 46 46m = 3结果对比发现,两种求解方法得到的洗衣方案相同,均洗3轮,共需水141,第1,2,3轮分别加水49升,46升,46升。1.1.7思考题求解模型(1)给出解析解,并与前面的非线性规划模型的解对比。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1