声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3502|回复: 15

[综合讨论] matlab牛顿迭代求解,计算出来复数是怎么回事?

[复制链接]
发表于 2012-11-15 22:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
7W_~`_Z81`]U@4~6ER7M]4J.jpg @JH]K71(JZ}[`UL1JWJBJ`I.jpg
7W_~`_Z81`]U@4~6ER7M]4J.jpg
回复
分享到:

使用道具 举报

 楼主| 发表于 2012-11-15 22:42 | 显示全部楼层
x0=x0-s   
            eps=norm(s);
          end
         
    ae=x0(1)
    ai=x0(2)
发表于 2012-11-16 10:07 | 显示全部楼层
把代码贴全,现在给出的代码找不出来问题所在
 楼主| 发表于 2012-11-16 14:47 | 显示全部楼层
这是所有的程序
QQ截图20121116144048.jpg
QQ截图20121116144029.jpg
_P])Q3OR0(FHGC7XDQ3[ZRE.jpg
 楼主| 发表于 2012-11-16 14:50 | 显示全部楼层
可能看不太清楚

lll.txt

6.59 KB, 下载次数: 17

发表于 2012-11-17 16:07 | 显示全部楼层
我是来学习的
 楼主| 发表于 2012-11-17 18:22 | 显示全部楼层
发表于 2012-11-18 16:45 | 显示全部楼层
可能是数值计算误差,导致刚度矩阵不对称,进而出现复值,建议先检查刚度矩阵

评分

1

查看全部评分

 楼主| 发表于 2012-11-18 19:48 | 显示全部楼层
刚度矩阵时对称的,我在子函数里面看了,我换了几个轴承的尺寸参数,就没有出现复数了,这是怎么回事?
 楼主| 发表于 2012-11-18 20:35 | 显示全部楼层
还有那个迭代的初始值怎么确定啊,好像有时候和这个也有关系
发表于 2012-11-18 22:56 | 显示全部楼层
个人水平/时间有限, 楼主的程式对我而言真的觉得有点乱
真的建议看下精华帖,  如何聪明的发帖!

deltai1=sQi^(2/3)*ski

此式当sQi为负数时, deltai1将为复数
至於sQi该不该为负数, 楼主应该比看官更清楚才对
 楼主| 发表于 2012-11-19 14:15 | 显示全部楼层
新手,不懂什么叫精华帖,哪里可以看到这些,
这样是不是清楚一些呢
function Z=dingyayujin7003(n,f)
fa=300;
n=10000;
z=20;%%%%%%%%%%%%%%%%%%滚球数目
dm=(17+35)/1000;%%%轴承中径
db=5.4/1000;%%%%滚球直径
den=3.2e3; %%%%%%%%%%%%%%%%%%%%钢球密度
v1=0.3;%%%%%%%%%%%%%钢的泊松比
v2=0.26;
E1=2.06e11;%%%%%%%%%%钢的弹性模量
E2=3.2e11;
DE=(1-v1^2)/E1+(1-v2^2)/E2;
a0=15*pi/180;%%%初始接触角
rr=db*cos(a0)/dm;%%%%%%%计算主曲率和的所需的中间变量
ffi=0.515;%%%%%%%%%%%%%%%%%%%%内沟道半径系数
ffe=0.525;%%%%%%%%%%%%%%%%%%%%外沟道半径系数(一般外沟道曲率半径要大一些)
ri=ffi*db;   %%%%%%%%%内沟道半径
re=ffe*db;   %%%%%%%%%外沟道半径
PI=(4-(1/ffi)+2*rr/(1-rr))/db;       %%%%钢球和内圈主曲率和p11+p12+p21+p22      p表示曲率半径
FPI=(1/ffi+2*rr/(1-rr))/(4-(1/ffi)+2*rr/(1-rr));  %钢球和内圈主曲率函数|(p11-p12)+(p21-p22)|/(p11+p12+p21+p22)
PE=(4-1/ffe-2*rr/(1+rr))/db;  %%钢球和外圈主曲率和
FPE=(1/ffe-2*rr/(1+rr))/(4-1/ffe-2*rr/(1+rr)); %%钢球和外圈主曲率函数

r=db/dm;
I=(1/60)*den*pi*db^5; %滚动体的转动惯量
Ri=dm/2+(ffi-0.5)*db*cos(a0);%%%%内圈沟道曲率中心轨迹的半径
Rye=(ffe*db)/(2*ffe-1);%%%%计算椭圆积分需要的中间变量
Ryi=(ffi*db)/(2*ffi-1);%%%%计算椭圆积分需要的中间变量

     
     w=n*2*pi/60;      %%%sae,sai的迭代初值越接近最终的值越好
     sae=1*pi/180;     %带s的为迭代中间变量,外接触角ae;
     sai=70*pi/180;   %迭代中间变量ai
     x0=[sae sai]';
          eps=5;%%%%%%%%%标志迭代误差的变量
          while abs(eps)>1e-5 %%%%%%%%%%%%%%%迭代算法
            sae=x0(1);   
            sai=x0(2);         
            
            sRxe=(db*(dm+db*cos(sae)))/(2*dm);%%%%%%椭圆积分的拟合参数
            sRxi=(db*(dm-db*cos(sai)))/(2*dm);%%%%%%椭圆积分的拟合参数
            
            seli1e=1.5277+0.6023*log(Rye/sRxe);%第一类椭圆积分近似计算公式
            seli1i=1.5277+0.6023*log(Ryi/sRxi); %第一类椭圆积分近似计算公式   
            seli2e=1.0003+0.5968*(sRxe/Rye);    %第二类椭圆积分
            seli2i=1.0003+0.5968*(sRxi/Ryi); %第二类椭圆积分     
     
               
            selie=1.0339*(Rye/sRxe)^0.636;    %外圈椭圆率参数,为接触椭圆长半轴与短半轴之比
            selii=1.0339*(Ryi/sRxi)^0.636;  %椭圆率参数,为接触椭圆长半轴与短半轴之比   
            
            
            
            
            sb=atan(sin(sae)/(cos(sae)+r));      %滚动体姿态角(自转轴线与x y坐标轴夹角)对应袁卫公式3.27  
            swb=-w/(((cos(sae)+tan(sb)*sin(sae))/(1+r*cos(sae))+(cos(sai)+tan(sb)*sin(sai))/(1-r*cos(sai)))*r*cos(sb));%滚动体的自转角速度  
            swm=w*(1-r*cos(sai))/(1+cos(sai-sae));%滚动体的公转角速度     
            sfc=(pi/12)*den*dm*db^3*swm^2*w; %滚动体离心力   对应纪宗辉2.7
            smg=I*sin(sb)*swb*swm; %考虑滚动体相对于内套圈的陀螺力矩   
            
   
            ssre1=db*cos(sae)/dm;    %中间变量
            ssri1=db*cos(sai)/dm;    %中间变量
            sPe=(4-(1/ffe)+(2*ssre1)/(1-ssre1))/db;     %滚动体与内套圈接触的曲率和     
            sPi=(4-(1/ffi)+(2*ssri1)/(1-ssri1))/db;      %滚动体与外套圈接触的曲率和
            
            ske=seli1e*((9/2/seli2e/sPe)*(1/pi/selie)^2)^(1/3); %滚动体和外套圈的接触刚度系数 对应公式2.24
            ski=seli1i*((9/2/seli2i/sPi)*(1/pi/selii)^2)^(1/3);   %滚动体和内套圈的接触刚度系数  对应公式2.24
            sQi=fa/(z*sin(sai));    %滚动体和内圈的接触力
            sQe=(fa/z+2*smg*cos(sae)/db)/sin(sae);    %滚动体和外圈的接触力
            
            deltai1=sQi^(2/3)*ski;     %滚动体和内圈接触的变形与载荷的关系,对应公式2.28*P13
            deltae1=sQe^(2/3)*ske;     %滚动体和内圈接触的变形与载荷的关系,对应公式2.29*P13
            F1='(re-0.5*db+deltae1)*cos(sae)+(ri-0.5*db+deltai1)*cos(sai)-(ri+re-db)*cos(a0)'%滚动体和内圈接触的变形与载荷的关系,对应公式2.21*P13
            F2='1/tan(sai)-1/tan(sae)+(z/fa)*(sfc-2*smg/(db*sin(sae)))'                 %球体垂直方向的受力平衡方程 对应公式2.16  
            
            F11=eval(F1); %对符号表达式求值;   
            F12=eval(F2);                  
            F21=eval(diff(F1,'sae'));     
            F22=eval(diff(F1,'sai'));         
            F31=eval(diff(F2,'sae'));                  
            F32=eval(diff(F2,'sai'));                     
            x1=[F11 F12];
            x2=[F21 F22;F31 F32];         
            
            s=inv(x2)*x1';
            x0=x0-s   
            eps=norm(s);
          end
         
    ae=x0(1)
    ai=x0(2)
    %%%布鲁和哈姆罗克借助最小二乘法用线性回归得到了第一类椭圆积分、第二类椭圆积分、椭圆率的下列简化方程:
    Rxe=(db*(dm+db*cos(ae)))/(2*dm);%%%%计算椭圆积分需要的中间变量
    Rxi=(db*(dm-db*cos(ai)))/(2*dm);
    Rye=(ffe*db)/(2*ffe-1);%%%%计算椭圆积分需要的中间变量
    Ryi=(ffi*db)/(2*ffi-1);
    eli1e=1.5277+0.6023*log(Rye/Rxe);  %第一类椭圆积分   
    eli1i=1.5277+0.6023*log(Ryi/Rxi);     
    eli2e=1.0003+0.5968*(Rxe/Rye);    %第二类椭圆积分   
    eli2i=1.0003+0.5968*(Rxi/Ryi);   
    elie=1.0339*(Rye/Rxe)^0.636;     %椭圆率参数,为接触椭圆长半轴与短半轴之比  
    elii=1.0339*(Ryi/Rxi)^0.636;   
    b=atan(sin(ae)/(cos(ae)+r));        %滚动体姿态角(自转轴线与x y坐标轴夹角)
    wb=-w/(((cos(ae)+tan(b)*sin(ae))/(1+r*cos(ae))+(cos(ai)+tan(b)*sin(ai))/(1-r*cos(ai)))*r*cos(b));%滚动体的自转速度   
    wm=w*(1-r*cos(ai))/(1+cos(ai-ae));%滚动体的公转速度   
    fc=(pi/12)*den*dm*db^3*wm^2*w;    %滚动体离心力
    mg=I*sin(b)*wb*wm;     %考虑滚动体相对于内套圈的陀螺力矩  
    sre1=db*cos(ae)/dm;   
    sri1=db*cos(ai)/dm;   
    Pe=(4-(1/ffe)+(2*sre1)/(1-sre1))/db;      %%球和外圈主曲率和     
    Pi=(4-(1/ffi)+(2*sri1)/(1-sri1))/db;      %%球和内圈主曲率和  
      
   
    ke=eli1e*((9/2/eli2e/Pe)*(1/pi/elie)^2)^(1/3); %滚动体和外套圈的接触刚度系数 对应公式2.24
    ki=eli1i*((9/2/eli2i/Pi)*(1/pi/elii)^2)^(1/3);   %滚动体和内套圈的接触刚度系数  对应公式2.24
    Qe=(fa/z+2*mg*cos(ae)/db)/sin(ae) %滚动体和外圈的接触力
    Qi=fa/(z*sin(ai))%滚动体和内圈的接触力
      
    deltai=Qi^(2/3)*ki;     %滚动体和内圈接触的变形与载荷的关系,对应公式2.28*P13
    deltae=Qe^(2/3)*ke;     %滚动体和内圈接触的变形与载荷的关系,对应公式2.29*P13
    deta=(re-0.5*db+deltae)*cos(sae)+(ri-0.5*db+ deltai)*cos(sai)-(ffi+ffe-1)*db*sin(a0);  

   
    Ke=1.5/eli1e*((9/2/eli2e/Pe)*(1/pi/elie/DE)^2)^(-1/3);% 和外圈接触刚度
    Ki=1.5/eli1i*((9/2/eli2i/Pi)*(1/pi/elii/DE)^2)^(-1/3);% 和内圈接触刚度
   
    KR=0;
    KA=0;
    KAN=0;
    for t=1:z   
        if isreal(Ke)==0 break;end
        if isreal(Ki)==0 break;end
        kri=Ki*cos(ai)^2;
        kai=Ki*sin(ai)^2;
        kre=Ke*cos(ae)^2;
        kae=Ke*sin(ae)^2;
        KR=KR+kri*kre*cos(2*pi*(t-1)/z)^2/(kri+kre);
        KA=KA+kai*kae/(kai+kae);   
        KAN=KAN+kai*kae*cos(2*pi*(t-1)/z)^2/(kai+kae);        
    end
KA;
KR;
KAN=KAN*dm*Ri;
Z=[KR KA KAN];
发表于 2012-11-19 22:25 | 显示全部楼层
新手,不懂什么叫精华帖,哪里可以看到这些

zzz.jpg
发表于 2012-11-19 22:59 | 显示全部楼层
这样是不是清楚一些呢

或许个人不善表诉, 致楼主可能还是没明白!?
楼主这程序又长且针对性专业, 楼主你认为有几人会细看? 若是你, 会吗?
11F不是已经点出楼主这程序第一个复数出现的位置了!
建议从此回头逐一检查吧
good luck
发表于 2012-11-28 16:05 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 20:33 , Processed in 0.080664 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表