当前位置:文档之家› matlab实验案例节水洗衣机

matlab实验案例节水洗衣机

1实验案例 (1)1.1案例:节水洗衣机 (1)1.1.1问题重述与分析 (2)1.1.2基本假设及说明 (2)1.1.3符号和变量说明 (2)1.1.4建模准备 (3)1.1.5模型建立 (4)1.1.6模型求解 (4)1.1.7思考题 (10)1实验案例1.1 案例:节水洗衣机问题:1996年全国赛B题节水洗衣机我国淡水资源有限,节约用水人人有责,洗衣机在家庭用水中占有相当大的份额,目前洗衣机已非常普及,节约洗衣机用水十分重要。

假设在放入衣物和洗涤剂后洗衣机的运行过程为:加水—漂洗—脱水—加水—漂洗—脱水—…—加水—漂洗—脱水(称“加水—漂洗—脱水”为运行一轮)。

请为洗衣机设计一种程序(包括运行多少轮、每轮加水量等),使得在满足一定洗涤效果的条件下,总用水量最少。

选用合理的数据进行运算,对照目前常用的洗衣机的运行情况,对你的模型和结果出评价。

洗衣机的节水优化模型摘要本文通过分析洗衣机的洗衣过程,认为是一次性溶解、多次稀释的过程。

据此建立非线性规划模型,并利用迭代公式和最优化原理,得出最少用水量的判断公式和代数解。

以海棠洗衣机为例,通过对比,利用我们的模型算出的用水量比厂家提供的数据要少,从而说明所建模型的优越性。

最后,根据模型解,给出最少用水量与脏衣服的重量的关系图,并从中得出有趣的结论,也给厂家提供一个节约用水的模型。

1.1.1问题重述与分析对洗衣机的运行进行设计,主要目的是为了节约用水量。

在满足洗涤效果的前提下使得用水量最少。

因此,这是一个典型的最优化问题,目标为洗衣总用水量最少,主要的决策为洗多少轮以及每轮加水量的问题。

而一般洗衣只是第一次加水漂洗时才放洗涤剂,而过后则是清水漂洗,通过化学原理,可以将第1轮洗涤后的各轮洗涤看成是不断的稀释过程。

为了评价洗涤效果,可用衣服上残留的污物质量与洗涤前污物质量之比作为评价指标。

在设计每轮加水量时,要考虑洗衣机本身洗衣同的最大容积,运行的最低加水量。

1.1.2基本假设及说明1.洗衣机一次用水量有最高限和最低限,能连续补充在限度内的任意水量;2.洗衣机每轮运行过程为:加水-漂洗-脱水;3.仅在第一轮运行时加上洗涤剂,在后面的运行轮中仅有稀释作用;4.洗衣时所加的洗涤剂适量,漂洗时间足够,能使污垢一次溶解,忽略不能溶解的污垢;5.脱水后的衣服质量与干衣服的重量成正比;6.每缸洗衣水只用一次;1.1.3符号和变量说明A:污物的质量(kg);i ρ:第i 轮运行时污物浓度(kg/升);n :洗衣服时洗衣机运行轮数(次); i x :第i 轮用水量(升);M :干衣服的质量(kg ); m :衣服脱水后衣服含水质量(kg );ε:衣服的清洁度(常量,洗衣的衣服上污量与0A 之比);S :洗一次衣服的总用水量(升); m ax M :洗衣机一次洗衣的最大量(kg );α:脱水后衣服含水质量与干衣服质量比(常数);显然M m α= m ax V :洗衣机一次注水最高限(升);m in V :衣服完全浸泡的状态下为洗衣机能正常运行需注入的最低水量(升);β:单位质量的衣服完全浸泡最低所需水量(常量); 1.1.4 建模准备(1) 由化学中的洗涤原理知,有助于洗涤作用的三个因素:1、 表面活性(以肥皂为代表的活性剂产生洗涤作用的各种物质之通称);2、 界面电(配入洗涤剂中的碱和磷酸盐等无机助剂的作用);3、 机械力和流水力(由于水的流动产生机械力)在洗衣过程中,一般之在第一次加入洗涤剂,在第二次及以后,不再加入洗涤剂,从而,使有助于洗涤的三个因素的前两个不存在,只剩下水的流动力的作用,洗涤作用因此很微弱。

于是假设污物的第一次被洗涤,接下来的过程只是污物的稀释过程是合理的。

(2)实际生活经验可知,在衣服完全浸泡的基础上,洗衣机还需有一定的富裕水量m in V 才能使其正常运行。

一种衣服完全浸泡所需水量是衣服质量的β倍,则质量为M 的衣服使洗衣机能洗的最少水量M V M V β+=min min )(。

脱水后剩下水量是衣服质量的α倍,M m α=。

对于普通衣服βα,可视为常数。

实验测定1kg 混合干衣服浸泡所需水量,脱水后衣服含水量与干衣服质量之比,如表1。

M0.5 1.0 1.5 2.0 2.5 3.0 3.5 水量 2.56 5.02 7.48 9.87 12.3 15.7 18.6m0.3 0.61 0.92 1.20 1.52 1.88 2.15计算可得0.5;60.0==βα。

各次运行时,污物的浓度为:mx mmx mmx m x A n n n +=+=+==-1323212101,,,,ρρρρρρρ ,经过迭代得到)())((32110m x m x m x x m A n n n +++=- ρ 1.1.5 模型建立根据以上分析,可以建立解决洗衣机节水的非线性最优化模型。

⎪⎪⎪⎩⎪⎪⎪⎨⎧=≤+≤≤≤≤+++==∑=.,,3,2,)()()())((..min maxmin max 1min 032101n i V m x M V V x M V A m x m x m x x m A m t s x S i n nn ni iερ(1)1.1.6 模型求解 1.1.6.1 解析求解如果(1)存在最优解**2*1,,,n x x x ,则可以证明m x m x x n +==+=**2*1 (证明从略)。

n 的取值讨论ε≤++)()(**2*1m x m x x m n n(1) 当),,3,2(,1n i m x x i =+刚好为)(min M V ,则有最多洗涤轮数。

由()ε<nnM V m )(min ,得1)(ln ln min max +⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛=M V m n ε (2) 当),,3,2(,1n i m x x i =+刚好为m ax V ,则有最少洗涤轮数。

由()ε<nnV m max ,得1ln ln max max+⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛=V m n ε综上所述,n 的取值范围为max min n n 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;%衣服的清洁度(常量,洗衣的衣服上污量与之比);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)) ) + 1 Nmax = fix( log(ef)/ log(m/VminM) ) + 1opti_s = 1e6;for n= Nmin:Nmax,t1= m/(ef)^(1/n)t2= VminMonex= max(m/(ef)^(1/n),VminM);S = n*onex-(n-1)*mx=[];x(1)=onex;if n>=2,for i=2:n,x(i)=onex-m;endend%test=sum(x)-S;if S < o pti_s,opti_n = n;%洗衣轮次opti_s = S;%存储最少所需水量opti_x = x;endendopti_nopti_sopti_xm1.1.6.5 模型求解程序(直接非线性规划求解)目标函数m文件:myobj1996b.mfunction r=myobj1996b(x)%1996年B题目标函数:总需水量r= sum(x);约束条件m文件:mycon1996b.mfunction [C,Ceq]= mycon1996b(x)%1996年B题采用非线性规划求解算法求解的约束条件函数global m ef %全局变量n= length(x);%洗衣轮次tmpX = x(1);%x1if n>=2,for i=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洗衣机节水模型%参数与数据初始化%initinit1996bNmin = fix( log(ef)/ log((m/Vmax)) ) + 1 Nmax = 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;endendlbub[x,fval,exitflag]=fmincon('myobj1996b',VminM*ones (1,n),[],[],[],[],...lb,ub,'mycon1996b')if fval < opti_s,opti_n = n;opti_s = fval;opti_x = x;endendopti_nopti_sopti_xm1.1.6.6 解析法运行结果:solv1996b_1Nmin =3Nmax =3t1 =30t2 =49S =141opti_n =3opti_s =141opti_x =49 46 46m =31.1.6.7 直接非线性规划求解运行结果solv1996b_2Nmin =3Nmax =3lb =49 46 46ub =60 57 57Warning: Trust region method does not currently solve this type of problem,switching to line search.> In E:\MATLABR11\toolbox\optim\fmincon.m at line 190In F:\PROGRAM\mbook\solv1996b_2.m at line 24Optimization terminated successfully:Search direction less than 2*options.TolX andmaximum constraint violation is less than options.TolConActive Constraints:123x =49 46 46fval =141exitflag =1opti_n =3opti_s =141opti_x =49 46 46m =3结果对比发现,两种求解方法得到的洗衣方案相同,均洗3轮,共需水141,第1,2,3轮分别加水49升,46升,46升。

相关主题