1、第2章 例例1 1 确定职工编制问题确定职工编制问题某厂每日八小时的产量不低于某厂每日八小时的产量不低于18001800件。为了进行质量件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度的标准为:速度 2525件件/小时,正确率小时,正确率 98%98%,计时工资,计时工资 4 4元元/小时;二级检验员的标准为:速度小时;二级检验员的标准为:速度 1515件件/小时,小时,正确率正确率 95%95%,计时工资,计时工资 3 3元元/小时。检验员每错检一次,小时。检验员每错检一次,工厂要损失工厂要损失2 2元。现有可供厂方聘
2、请的检验员人数为一元。现有可供厂方聘请的检验员人数为一级级8 8人和二级人和二级1010人。为使总检验费用最省,该工厂应聘人。为使总检验费用最省,该工厂应聘一级、二级检验员各多少名?一级、二级检验员各多少名?例例2 2 工件加工任务分配问题工件加工任务分配问题某车间有两台机床甲和乙,可用于加工三种工件。假定这两台某车间有两台机床甲和乙,可用于加工三种工件。假定这两台机床的可用台时数分别为机床的可用台时数分别为700700和和800800,三种工件的数量分别为,三种工件的数量分别为300300、500500和和400400,且已知用三种不同机床加工单位数量的不同工件所,且已知用三种不同机床加工单
3、位数量的不同工件所需的台时数和加工费用(如表需的台时数和加工费用(如表2 2所示),问怎样分配机床的加工所示),问怎样分配机床的加工任务,才能既满足加工工件的要求,又使总加工费用最低?任务,才能既满足加工工件的要求,又使总加工费用最低?表2 机床加工情况表机床类型机床类型单位工作所需加工台时数单位工作所需加工台时数单位工件的加工费用单位工件的加工费用可用可用台时数台时数工件工件1工件工件2工件工件3工件工件1工件工件2工件工件3甲甲0.41.11.013910700乙乙0.51.21.3111288003.3.已已知知功功率率P=20kw,P=20kw,小小齿齿轮轮转转速速n1=1000r/m
4、in;n1=1000r/min;齿齿数数比比u=3;u=3;载载荷荷稳稳定定,预预期期寿寿命命1010年年,每每年年300300个个工工作作日日,工工作作时时间间占占20%20%。动动力力机机为为电电动动机机,工工作作中中有有中中等等振振动动,传传动动不不逆逆转转,齿齿轮轮对对称称布布置置。人人工工选选择择齿齿轮轮材材料料和和热热处处理理:小小齿齿轮轮40Cr40Cr调调质质,硬硬度度260HB;260HB;大大齿齿轮轮4545调调质质,硬硬度度 240HB;240HB;许许 用用 应应 力力 为为 H1=H1=798Mpa 798Mpa,H2=690Mpa;H2=690Mpa;F1=456M
5、pa F1=456Mpa,F2=349MpaF2=349Mpa。设计单级圆柱齿轮传动,使齿轮体积最小。设计单级圆柱齿轮传动,使齿轮体积最小。以体以体积最小最小为目目标,设计变量量为法向模数法向模数mn、小、小齿轮齿数数z1及及齿宽系数系数d,则数学模型数学模型为:约束条件束条件为:模数模数约束:束:1.5x120;齿宽系数系数约束条件:束条件:0.2x31.2;根切根切约束:束:g1(x)=17-x20;齿面接触面接触应力力约束:束:g2(x)=H2-H20;齿根弯曲根弯曲应力力约束:束:g3(x)=F1-F20;g4(x)=F2-F20。设计变量为设计变量为:X=x1,x2,x3T=mn,z
6、1,dT目标函数为:目标函数为:MATLAB基础知识n一、变量nMATLAB不要求不要求用户在输入变量的时候进行声明声明。当用户在MATLAB工作空间内输入一个新的变量时,MATLAB会自动给该变量分配适当的内存,若用户输入的变量已经存在,则MATLAB将使用新输入的变量替换原有的变量。n无论给MATLAB中的变量赋什么值,在内存中均以矩在内存中均以矩阵的形式表示阵的形式表示。n在MATLAB中,变量名是以字母开头,后接字母、数以字母开头,后接字母、数字和下划线的字符序列,最多字和下划线的字符序列,最多31个个字符。另外,在MATLAB中,变量名区分区分字母大小写大小写。二、矩阵变量的建立(1
7、)把矩阵元素列入方括号中;把矩阵元素列入方括号中;(2)每行内的元素间用逗号或空格分隔;每行内的元素间用逗号或空格分隔;(3)行与行之间用分号分隔;行与行之间用分号分隔;(1)在命令窗口中直接输入a=1 2 3;4 5 6;7 8 9或a=1,2,3;4,5,6;7,8,9(2)在M文件中创建矩阵M文件是一种包含MATLAB代码的文本文件。M文件的创建 在MATLAB中,可以用以下方式输入矩阵:在在MATLAB中输入矩阵需要遵循以下基本规则:中输入矩阵需要遵循以下基本规则:三、MATLAB运算1.算数运算:矩阵左除矩阵左除 Ab 相当于相当于A-1b/:矩阵右除矩阵右除 b/A 相当于相当于b
8、A-1可用于解方程组可用于解方程组若若AX=b 则则X=Ab若若XTA=bT 则则XT=b/A.:数组左除 B.A./:数组右除 B./A2.关系运算3.逻辑运算冒号:冒号:(2)从向量、矩阵或数组中挑选出指定从向量、矩阵或数组中挑选出指定的行列元素。的行列元素。二维图形的输出x,y方向必须相同,否则出错方向必须相同,否则出错利用利用Matlab求解优化设计问题求解优化设计问题根据变量、目标函数和约束函数的不同,可以将常见根据变量、目标函数和约束函数的不同,可以将常见的优化问题分成以下几种:的优化问题分成以下几种:目标函数和约束函数中至少有一个非线性函数。目标函数和约束函数中至少有一个非线性函
9、数。线性规划问题:线性规划问题:目标函数和约束函数均为线性的优化问题;目标函数和约束函数均为线性的优化问题;二次优化问题:二次优化问题:目标函数为二次函数,约束函数为线性函数;目标函数为二次函数,约束函数为线性函数;非线性优化问题:非线性优化问题:线性规划问题的标准形式:线性规划问题的标准形式:f f:目标函数:目标函数A A:线性不等式约束系数矩阵;:线性不等式约束系数矩阵;b b:线性不等式约束常数向量:线性不等式约束常数向量 AeqAeq:线性等式约束系数矩阵;线性等式约束系数矩阵;beqbeq:线性等式约束常数向量:线性等式约束常数向量 lblb、ubub:设计变量:设计变量x x的上
10、下界的上下界x0 x0:搜索初始点;:搜索初始点;optionsoptions:优化设置选项优化设置选项x x:最优解点;最优解点;fvalfval:目标函数在最优解点:目标函数在最优解点x x的函数值的函数值exitflagexitflag:算法的终止标志:算法的终止标志(若若exitflagexitflag00表示函数收敛于解表示函数收敛于解x x,exitflagexitflag=0=0表示超过迭代表示超过迭代的最大数字,的最大数字,exitflagexitflag00表示函数不收敛于解表示函数不收敛于解x)x)若没有不等式约束若没有不等式约束A*xb,则,则A=,b=若没有不等式约束若
11、没有不等式约束Aeq*x=beq,则,则Aeq=,beq=x的范围为的范围为lbxub格式格式:x,fval=linprog(f,A,b)x,fval=linprog(f,A,b,Aeq,beq)x,fval=linprog(f,A,b,Aeq,beq,lb,ub)x,fval,exitflag=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)例例1 1 确定职工编制问题确定职工编制问题某厂每日八小时的产量不低于某厂每日八小时的产量不低于18001800件。为了进行质量件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员控制,计划聘请两种不同水平的检验员
12、。一级检验员的标准为:速度的标准为:速度 2525件件/小时,正确率小时,正确率 98%98%,计时工资,计时工资 4 4元元/小时;二级检验员的标准为:速度小时;二级检验员的标准为:速度 1515件件/小时,小时,正确率正确率 95%95%,计时工资,计时工资 3 3元元/小时。检验员每错检一次,小时。检验员每错检一次,工厂要损失工厂要损失2 2元。现有可供厂方聘请的检验员人数为一元。现有可供厂方聘请的检验员人数为一级级8 8人和二级人和二级1010人。为使总检验费用最省,该工厂应聘人。为使总检验费用最省,该工厂应聘一级、二级检验员各多少名?一级、二级检验员各多少名?首先输入下列参数:首先输
13、入下列参数:f=40;36;A=-5-3;b=45;lb=0;0 ub=8;10然后调用然后调用linproglinprog函数:函数:x,fvalx,fval=linprog(f,A,b,lb,ublinprog(f,A,b,lb,ub););x=x=8.0000 8.0000 1.6667 1.6667fval=fval=380.0000 380.0000exitflag=exitflag=1 1 例例2 2 工件加工任务分配问题工件加工任务分配问题某车间有两台机床甲和乙,可用于加工三种工件。假定这两台某车间有两台机床甲和乙,可用于加工三种工件。假定这两台机床的可用台时数分别为机床的可用台
14、时数分别为700700和和800800,三种工件的数量分别为,三种工件的数量分别为300300、500500和和400400,且已知用三种不同机床加工单位数量的不同工件所,且已知用三种不同机床加工单位数量的不同工件所需的台时数和加工费用(如表需的台时数和加工费用(如表2 2所示),问怎样分配机床的加工所示),问怎样分配机床的加工任务,才能既满足加工工件的要求,又使总加工费用最低?任务,才能既满足加工工件的要求,又使总加工费用最低?表2 机床加工情况表机床类型机床类型单位工作所需加工台时数单位工作所需加工台时数单位工件的加工费用单位工件的加工费用可用可用台时数台时数工件工件1工件工件2工件工件3
15、工件工件1工件工件2工件工件3甲甲0.41.11.013910700乙乙0.51.21.311128800首先输入下列系数:首先输入下列系数:f=13;9;10;11;12;8;f=13;9;10;11;12;8;A=0.4 1.1 1 0 0 0A=0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3;0 0 0 0.5 1.2 1.3;b=700;800;b=700;800;AeqAeq=1 0 0 1 0 0=1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1;0 0 1 0 0 1;beqbeq=300;500;400;=300
16、;500;400;lb=zeros(6,1);lb=zeros(6,1);然后调用然后调用linproglinprog函数:函数:x,fval,exitflagx,fval,exitflag=linprog(f,A,b,Aeq,beq,lblinprog(f,A,b,Aeq,beq,lb););x=0.0000 500.0000 0.0000 300.0000 0.0000 400.0000fval=1.1000e+004exitflag=1使用函数使用函数fmincon数学模型:X=x1 x2TMin F(x)=120 x1+x2 Sub.to g1(X)=x10 g2(X)=x2 0 g3(X)=1/4x2-1 0 g4(X)=7/45x1x2-1 0 g5(X)=7/45x13x2-1 0 g6(X)=1/321x1x22-1 0-x2/4=-1-7x1x2/45+1=0-7x13x2/45+1=0-x1x22/321+1=0f=inline(120*x(1)+x(2)x0=10;10a=0-0.25b=-1aeq=beq=lb=0;0ub=x,fval,exit=fmincon
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1