11实验案例.................................................................................................................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问题重述与分析对洗衣机的运行进行设计,主要目的是为了节约用水量。在满足洗涤效果的前提下使得用水量最少。因此,这是一个典型的最优化问题,目标为洗衣总用水量最少,主要的决策为洗多少轮以及每轮加水量的问题。而一般洗衣只是第一次加水漂洗时才放洗涤剂,而过后则是清水漂洗,通过化学原理,可以将第1轮洗涤后的各轮洗涤看成是不断的稀释过程。为了评价洗涤效果,可用衣服上残留的污物质量与洗涤前污物质量之比作为评价指标。在设计每轮加水量时,要考虑洗衣机本身洗衣同的最大容积,运行的最低加水量。1.1.2基本假设及说明1.洗衣机一次用水量有最高限和最低限,能连续补充在限度内的任意水量;2.洗衣机每轮运行过程为:加水-漂洗-脱水;3.仅在第一轮运行时加上洗涤剂,在后面的运行轮中仅有稀释作用;4.洗衣时所加的洗涤剂适量,漂洗时间足够,能使污垢一次溶解,忽略不能溶解的污垢;5.脱水后的衣服质量与干衣服的重量成正比;6.每缸洗衣水只用一次;1.1.3符号和变量说明0A:污物的质量(kg);3i:第i轮运行时污物浓度(kg/升);n:洗衣服时洗衣机运行轮数(次);ix:第i轮用水量(升);M:干衣服的质量(kg);m:衣服脱水后衣服含水质量(kg);:衣服的清洁度(常量,洗衣的衣服上污量与0A之比);S:洗一次衣服的总用水量(升);maxM:洗衣机一次洗衣的最大量(kg);:脱水后衣服含水质量与干衣服质量比(常数);显然MmmaxV:洗衣机一次注水最高限(升);minV:衣服完全浸泡的状态下为洗衣机能正常运行需注入的最低水量(升);:单位质量的衣服完全浸泡最低所需水量(常量);1.1.4建模准备(1)由化学中的洗涤原理知,有助于洗涤作用的三个因素:1、表面活性(以肥皂为代表的活性剂产生洗涤作用的各种物质之通称);2、界面电(配入洗涤剂中的碱和磷酸盐等无机助剂的作用);3、机械力和流水力(由于水的流动产生机械力)在洗衣过程中,一般之在第一次加入洗涤剂,在第二次及以后,不再加入洗涤剂,从而,使有助于洗涤的三个因素的前两个不存在,只剩下水的流动力的作用,洗涤作用因此很微弱。于是假设污物的第一次被洗涤,接下来的过程只是污物的稀释过程是合理的。(2)实际生活经验可知,在衣服完全浸泡的基础上,洗衣机还需有一定的富裕水量minV才能使其正常运行。一种衣服完全浸泡所需水量是衣服质量的倍,则质量为M的衣服使洗衣机能洗的最少水量MVMVminmin)(。脱水后剩下水量是衣服质量的倍,Mm。对于普通衣服,可视为常数。实验测定1kg混合干衣服浸泡所需水量,脱水后衣服含水量与干衣服质量之比,如表1。M0.51.01.52.02.53.03.5水量2.565.027.489.8712.315.718.6m0.30.610.921.201.521.882.154计算可得0.5;60.0。各次运行时,污物的浓度为:mxmmxmmxmxAnnn1323212101,,,,,经过迭代得到)())((32110mxmxmxxmAnnn1.1.5模型建立根据以上分析,可以建立解决洗衣机节水的非线性最优化模型。.,,3,2,)()()())((..minmaxminmax1min032101niVmxMVVxMVAmxmxmxxmAmtsxSinnnnii(1)1.1.6模型求解1.1.6.1解析求解如果(1)存在最优解**2*1,,,nxxx,则可以证明mxmxxn**2*1(证明从略)。5n的取值讨论)()(**2*1mxmxxmnn(1)当),,3,2(,1nimxxi刚好为)(minMV,则有最多洗涤轮数。由nnMVm)(min,得1)(lnlnminmaxMVmn(2)当),,3,2(,1nimxxi刚好为maxV,则有最少洗涤轮数。由nnVmmax,得1lnlnmaxmaxVmn综上所述,n的取值范围为maxminnnn。1.1.6.2其他求解方法所建立模型为非线性最优化模型,故这里采用Matlab求解非线性规划的函数fmincon求解。1.1.6.3数据初始化程序init1996b.m%1996B洗衣机节水模型%参数与数据初始化%af=0.60;%脱水后衣服含水质量与干衣服质量比(常数)beta=5.0;%单位质量的衣服完全浸泡最低所需水量(常量);Vmin=24;%衣服完全浸泡的状态下为洗衣机能正常运行需注入的最低水量(升);6ef=0.001;%衣服的清洁度(常量,洗衣的衣服上污量与之比);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;forn=Nmin:Nmax,t1=m/(ef)^(1/n)t2=VminMonex=max(m/(ef)^(1/n),VminM);S=n*onex-(n-1)*mx=[];x(1)=onex;ifn=2,fori=2:n,x(i)=onex-m;endend%test=sum(x)-S;ifSopti_s,opti_n=n;%洗衣轮次opti_s=S;%存储最少所需水量opti_x=x;endendopti_n7opti_sopti_xm1.1.6.5模型求解程序(直接非线性规划求解)目标函数m文件:myobj1996b.mfunctionr=myobj1996b(x)%1996年B题目标函数:总需水量r=sum(x);约束条件m文件:mycon1996b.mfunction[C,Ceq]=mycon1996b(x)%1996年B题采用非线性规划求解算法求解的约束条件函数globalmef%全局变量n=length(x);%洗衣轮次tmpX=x(1);%x1ifn=2,fori=2:n,tmpX=tmpX*(x(i)+m);%x1*(x2+m)*(x3+m)*...*(xn+m)endendC=m^n-tmpX*ef;%只有一个约束,决策变量约束用fmincon的参数lb,ub来处理%C=m^n/tmpX-ef;%只有一个约束,决策变量约束用fmincon的参数lb,ub来处理Ceq=[];主程序:solv1996b_2%1996B洗衣机节水模型%参数与数据初始化%initinit1996b8Nmin=fix(log(ef)/log((m/Vmax)))+1Nmax=fix(log(ef)/log(m/VminM))+1opti_s=1e6;forn=Nmin:Nmax,%穷举所有可能洗衣次数的模型lb=[];ub=[];lb(1)=VminM;ub(1)=Vmax;ifn=2,forj=2:n,lb(j)=VminM-m;ub(j)=Vmax-m;endendlbub[x,fval,exitflag]=fmincon('myobj1996b',VminM*ones(1,n),[],[],[],[],...lb,ub,'mycon1996b')iffvalopti_s,opti_n=n;opti_s=fval;opti_x=x;endendopti_nopti_sopti_xm1.1.6.6解析法运行结果:solv1996b_1Nmin=3Nmax=3t1=30t2=499S=141opti_n=3opti_s=141opti_x=494646m=31.1.6.7直接非线性规划求解运行结果solv1996b_2Nmin=3Nmax=3lb=494646ub=605757Warning:Trustregionmethoddoesnotcurrentlysolvethistypeofproblem,switchingtolinesearch.InE:\MATLABR11\toolbox\optim\fmincon.matline190InF:\PROGRAM\mbookfile2002\solv1996b_2.matline24Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:12