当前位置:文档之家› 第三章机械设计编程基础

第三章机械设计编程基础

第三章 机械设计编程基础2.1 编程和图表处理的基本方法一、编制机械设计计算程序的基本方法(1) 设计数据(2) 表格、线图及标准规范 (3) 算法设计[]p p dlhTσσ≤=4 式中,T 为转矩;h 为键高度;l 为键的工作长度;[σp ]为轮毂的许用挤压应力。

表1 平键(摘自GB1096-90) 轴径 mm d mm b mmh自6~8 2 2>8 ~10 3 3 >10~12 4 4>12~17 5 5>17~22 6 6>22~30 8 7 >30~38 10 8>38~44 12 8>44~50 14 9二、设计图表处理的基本方法1.表格(手册中的)分为两类:⎩⎨⎧..:;:着某种联系表格中的数据之间存在列表函数任何联系表格中的数据之间没有数表2.表格处理的基本方法:(1) 表格的程序化:将数表中的数据以数组形式存储和检索,直接编在解题的程序中。

(2) 表格的公式化:对于列表函数,可用曲线拟合的方法形成数学表达式并直接编于程序中。

2-2 设计数表的处理一、表格的程序化1. 数表一维(元)数表:所查取的数据只与一个变量有关的数表; 二维(元)数表:所查取的数据与两个变量有关的数表; 它们均可用一维和二维数组的形式存入计算机,以备程序使用。

一维(元)数表程序化示例1 :示例2 :int I;float GAMA[ ]={ 7.87,7.85,8.30,7.75}; printf( “1. 工业纯铁\ n”); printf( “1. 钢材\ n”); printf( “2. 高速钢\ n”); printf( “3. 不锈钢\ n”); printf( “选择材料类型:”); scanf( “ % d”,&I); printf( “3. 不锈钢\ n”);printf( “材料的密度:% f\ n”,GAMA[I -1]);表2 材料的密度材 料 密度 / (g.。

cm -3)工业纯铁 7。

87 钢 材 7。

85 高 速 钢 8。

30 不 锈 钢 7。

75上表为4种材料,12种热处理规格,而每一种规格包含4种机械性能指标: 11,,,--τσσσS B 。

若给每一种机械性能确定一个标识符,则该表可由以下4个 一维数组表示:[][][][]11,,2,1,011,,2,1,011,,2,1,011,,2,1,011 =------=------=-----=-------I I TAU I I SGM I I SGMAS I I SGMAB S B τσσσ二维(元)数表程序化示例1:表3 齿轮传动的工作情况系数用条件语句编制程序就会显得冗长,故可采用3×3的数组WK[3][3]。

有关程序如下:Int I,JFloat WK[ ] [3] = {1,1.25,1.75,1.25,1.5,2,1.5,1.75,2.25}; Printf ( “ 原动机工作情况:\ n”) ; Printf ( “ 1. 工作平稳\ n”) ; Printf ( “ 2. 轻度冲击\ n”) ; Printf ( “ 3. 中度冲击\ n”) ;Printf ( “ 请选择序号:\ n”) ; Scanf (“ % d”, &I);Printf ( “ 工作机工作情况:\ n”) ; Printf ( “ 1. 平稳载荷\ n”) ; Printf ( “ 2. 中等冲击\ n”) ; Printf ( “ 3. 严重冲击\ n”) ;Printf ( “ 请选择序号:\ n”) ; Scanf (“ % d”, &J);Printf ( “ 工况系数:% f\ n”, WK [I -1] [j-1]) ;2. 列表函数使用这类列表函数时,需要用插值的方法来检索数据。

列表函数如下:表4 蜗杆传动的相对滑动速度v 与当量摩擦系数μ之间的关系()i i i i i i x x x x y y y y ---+=--11有关线性分段插值的程序为分段线性插值的算法框图:检索表4当量摩擦系数的程序段: Int n=14 floatx_vs[]={ 0.01,0.05,0.10,0. 25,0.50,1.0,1.5,2.0,2.5,3.0,4.0,5.0,8.0,10.0 };float Y_Mv [ ] = { 0.110,0.090, 0.080,0.065,0.055,0.045,0.040,0.035,0.030,0.028,0.024,0.022,0.018,0.016 }; float v_s,M_v ;float lineinsert ( float *sx,float *sy,int n, float inp); v_s = 1.24;m_V= lineinsert( x_VS,Y_Mv,n,v_s );float lineinsert ( float *sx, float *sy, int n, float inp ); { int i;float outp;for ( I=1;i<n-1;i++ ) if ( inp<sx [ i ] break;outp = sy[ i ] + ( sy[ i ] - sy[ i-1] ) * (inp – sx[ i ] ) / (sx[ i ] - sy[ I-1 ] );return ( outp ) ; }二、表格的公式化表6 列表函数为建立该数表的函数关系多项式,工程中通常采用数据的曲线拟合方法:最小二乘法。

最小二乘法基本原理:使结点处的偏差平方和[])(2∑=∑=⎥⎥⎦⎤⎢⎢⎣⎡∑=-=-=m 0i 2m 0i n 0k i y )i (x k P k a 2)i y i (x n S T最小,这里的.(x)的多项式是k P k由于是已知的一组数据i i y ,x ,因此(2)式的T 可看作是多项式)(x S n 中 的待定系数),,,(n k a k 21=的函数。

可表示为),,,(n a a a T T 10=yOx求出上式中T 为极小时的n ααα,,, 10值带入式(2)中,所得多项式)(x S n 就是与原函数(曲线)各结点处偏差平方总的极小时的拟合多项式。

因此,这类曲线拟合问题最终是一个多元函数求极值的问题。

要使∑∑==⎥⎦⎤⎢⎣⎡-α=ααα=m i nk i i k k n x f x P T T 02010)()(),,(为极小,而n ααα,,, 10必须满足n s Ts,,, 100==α∂∂即222000=-α=⎥⎦⎤⎢⎣⎡-α=α∂∂∑∑∑∑∑=====)()()()()()()(i s mi i i s n k i k m i k i s m i nk i i k k sx P x f x P x P x P x f x P T 若定义离散性函数内积∑==mi i i x p x f p f 0则),()(),(可得方程组()n s P f P P sksk,,,),(, 10==α∑若写成矩阵形式⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡ααα⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡),(),(),(),(),(),(),(),(),(),(),(),(n n n n n n n n P f P f P f P P P P P P P P P P P P P P P P P P1010101110101000 如果)(x P k 是关于点集{}()m i x i ,,, 10=的正交多项式,那末,由正交多项式的正交性,即当 q t ≠时()0=q i p p ,。

则上述矩阵形式可简化为这样一来,多项式)(x S n 的待定系数k α可由下式求得⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡ααα⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡),(),(),(),(),(),(n n n n P f P f P f P P P P P P 10101100n k x P x P x f P P P f mi ik mi i k i k k k k ,,,)]([)()(),(),( 10020===α∑∑==关于点集{}),,,(m i x i10=的正交多项式)(x P k 可由下式构造:⎪⎩⎪⎨⎧=--=-==-+nk x P C x P b x x P x P b x x P x P k k k k k ,,,)()()()()()()()( 211110010式中,121121011-==-==--n k P P P P C n k P P xP P b k k k k k k k k k k ,,,),(),(,,,,),(),(示例:用二次多项式)(x S n 根据最小二乘法来拟合表7中的数据。

过程如下: (1)构造关于点集{}),,,,(43210=i x i的正交多项式:10=)(x P3315140404020402000000=====∑∑∑∑====i i i i i i i i x x P x P x P P xP P b )]([)]([),(),(3001-=-=x x P b x x P )()()(2510134424020402100111==-===∑∑∑∑====i i ii ii ix x P x P P P P P c )()]([)]([),(),(310303342402421402111111==--===∑∑∑∑====i i i iii i i ii x x x x P x P x P P xP P b )()()]([)]([),(),( 7623320112+-=---=--=x x x x x P C x P b x x P ))(()()()()((2) 求)(x S 2的待定系数:265311404040204000000.)]([)(),(),(=====α∑∑∑∑====i i i i ii i i f x P x P f P P P f25110512334024040214011111..)()()]([)(),(),(==--===α∑∑∑∑====i ii i i i i i i i x x f x P x P f P P P f03570145076764022440224022222..)()()]([)(),(),(==+-+-===α∑∑∑∑====i ii i i i i i i i i i x x x x f x P x P f P P P f于是,所求拟合多项式为2233110020357003581699927603570325126xx x x x x P x P x P x S y ...)(.)(..)()()()(++=+-+-+=α+α+α==通常,拟合一组数据的多项式次数n 越高,则精度越高,但是计算量也会越大。

相关主题