正交试验设计和C语言实现.doc

上传人:自*** 文档编号:124919135 上传时间:2020-03-14 格式:DOC 页数:9 大小:263.50KB
返回 下载 相关 举报
正交试验设计和C语言实现.doc_第1页
第1页 / 共9页
正交试验设计和C语言实现.doc_第2页
第2页 / 共9页
正交试验设计和C语言实现.doc_第3页
第3页 / 共9页
正交试验设计和C语言实现.doc_第4页
第4页 / 共9页
正交试验设计和C语言实现.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《正交试验设计和C语言实现.doc》由会员分享,可在线阅读,更多相关《正交试验设计和C语言实现.doc(9页珍藏版)》请在金锄头文库上搜索。

1、正交设计的基本知识一正交表的分类及特点正交设计是利用一系列规格化的正交表来安排多因素试验的一种十分有效的设计方法。正交表是已经制作好的规格化的表, 是进行正交设计的基本工具。正交表可分为同水平的和混合水平的大类。1等水平正交表: a正交表的行数即试验的次数;b因素的水平数;c正交表的列数或因素数;1)标准表如:二水平:,三水平:,四水平:, 五水平:,水平数只能取素数或素数幂对与同一水平的标准表,任意两个相邻表的关系是:标准表的构造特点是: 标准表可以考察因素间的相互作用。2)非标准表二水平表:其他水平表:二水平非标准表的构造特点是: 2混合正交表混合正交表大致分为两种情况:一是着重考察的因素

2、需多取水平的情况,例如为着重考察一个因素的情况。二是某一因素不能多取水平的情况。如。一般情况下他们不能考察交互作用。二正交表的基本性质1 正交性1) 在任何一列中各水平都出现且出现的次数相等2) 在任意两列之间各种不同水平的所有可能组合都出现,且出现的次数相等。正交表的三种初等变换:行间置换、列间置换、水平置换。2 均衡分散性3 综合可比性三正交试验设计的基本方法设计实验方案的主要步骤是:(1) 明确试验目的,确定试验指标(2) 确定需要考察的因素,选取适当的水平在实际确定试验因素时,应选取对试验指标影响大、未掌握其规律、未被考察过的因素;也可以考虑尽量多安排一些试验因素;尽量少选水平,水平数

3、以24为宜。(3) 选用适当的正交表(4) 进行表头设计(5) 编制试验方案四正交试验设计 等水平无交互作用的正交试验设计:选取的正交表 应满足的条件是:试验因素个数,试验因素水平, 有交互作用的正交试验设计 :一个交互作用所占正交表的列数是,p是交互作用级数。高级交互作用通常不加考虑;一级交互作用也不必全部考虑;应尽量选用二水平因素以减少交互作用所占的列数。根据上述原则选取的正交表 应满足的条件是:试验因素个数一级交互作用个数(),试验因素水平,混合正交表试验设计:不能考察交互作用。假定各因素无交互作用则选定的混合正交表:满足的条件是:各因素水平分别等于,试验因素总个数,且对应的试验因素数,

4、对应的试验因素数不等水平且考虑交互作用的正交试验设计:情况比较复杂,前人总结的一些确有成效的设计方法是有:)在保证正交表的正交性的前提下,适当改造正交表以适应实际需要。常用的设计方法有并列法、赋闲列法、部分追加法、裂区法、套表法、法等。)在保证实际需要,即在不改变选定的因素、水平以及试验要求的条件下,适当调整因素及其水平以便找到合适的对口正交表。常用的设计方法有拟水平法、组合法、直积法等。)综合改造正交表和调整因素及其水平两个方面的有关方法形成的综合设计方法有拟因素法。我的总结:就是利用一系列方法把试验安排到适当的标准正交表中去。(但必须遵循自由度原则)例: 用追加法安排在表中。利用并列法、赋

5、闲列可安排在表中。利用组合法和拟水平法安排在表中。综合方法:拟因素试验设计:常用于把三水平因素安排在二水平标准表中的多因素试验。自由度原则:正交表水平列的自由度为,水平因素的自由度为。水平因素与水平因素的交互作用的自由度为。将因素和交互作用安排于正交表相应列上的基本原则是:且必须满足。注一个因素拟一个水平增加一个自由度;共用赋闲列的个因素使其自由度减少个;正交表结构:/标准表struct Orthogonal_Arrayint RowCount; /正交表行数int ColumnCount; /正交表列数 int level; /正交表水平 int tableRowCountColumnCou

6、nt; /正交表Cstring ColumnName; /列名int RegionColumnCount; /区名;/非标准表struct factorint level; /水平int num; /此水平的因素个数 ;struct MixOrthogonal_Array int RowCount; /正交表行数int ColumnCount; /正交表列数 int levelCount; /水平的种类个数factorlevelCount; /因素的水平及其个数int tableRowCountColumnCount; /正交表;class COrthogonalpublic: vector

7、Orthogonal;vector MixOrthogonal;public:COrthogonal(void);COrthogonal(void);void OrthogonalArray_Import(); /导入正交表;基本算法:假设得到属性个数N及其对应水平If =If 无交互作用 查找Orthogonal, until Orthogonalk.level=and Orthogonalk.ColumnCount=N and Orthogonalk.RowCount=N+交互作用个数*(-1)and Orthogonalk.RowCount.Else 得到水平及其对应个数,按由小到大排序

8、 i=1nIf 无交互作用 查找MixOrthogonal, until MixOrthogonalk.levelCount=n andi1,n MixOrthogonalk.factori-1.level=, i1,n-1 MixOrthogonalk.factori-1.num= , MixOrthogonalk.factorn-1.num, MixOrthogonalk.RowCount.If 未找到合适的混合表 查找Orthogonal, until 总自由度=(基本自由度附加自由度) Orthogonalk.RowCount and Orthogonalk.level=.Else 查

9、找Orthogonal, until 总自由度=(基本自由度+交互自由度附加自由度)=0)tempi = tmp.substr(0,pos);tmp = tmp.substr(pos+1,len);pos=(int)tmp.find();len=(int)tmp.length();i+;tempi=tmp;if (a=L)if (i0)Orthogonal.push_back(OrthArray);OrthArray.RowCount=atoi(temp1.c_str();/Orthogonalk.RowCount=atoi(temp1.c_str();OrthArray.level=atoi

10、(temp2.c_str();OrthArray.ColumnCount=atoi(temp3.c_str();flag=0;elseif(k0)MixOrthogonal.push_back(MixOrthArray);MixOrthArray.RowCount=atoi(temp1.c_str();MixOrthArray.levelCount=(i-1)/2;MixOrthArray.ColumnCount=0;for (int m=0;mMixOrthArray.levelCount;m+)MixOrthArray.ColumnCount=MixOrthArray.ColumnCount+atoi(temp2*m+3.c_str();MixOrthArray.columnm.level=atoi(temp2*m+2.c_str();MixOrthArray.columnm.num=atoi(temp2*m+3.c_str();flag=1;r=0;k+;continue;if (flag=0)/标准表if(temp0!= & rOrthArray.RowCount)for (int c=0;cOrthArray.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号