Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-04-28
年龄: 42
帖子: 2
声望力: 0 ![]() |
![]()
while(F>0)
b=m; m=(a+b)/2; omegam0=(1-m)*omegas/pairs; %omegam0重新赋值 vib02; %重新计算振动机参数 Tcapture=m0*r0^2*omegam0^2*abs(Wc); Te01=Pe1*S0/(1+Tst1*S0^2); Te02=Pe2*S0/(1+Tst2*S0^2); Tdifference=abs(Te01-Te02-(f1-f2)*omegam0-m0*r0^2*omegam0^2*(Ws1-Ws2)); a1=[Te01-Te02-(f1-f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1-eta*Ws2)/(2*pairs^2)]/(Pm*(1-S0)^2*Wc/(2*pairs^2)); alpha1=asin(a1)-thetac; %2*alpha F=Te01+Te02-(f1+f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1+eta*Ws2+2*Ws*sin(alpha1+thetas))/(2*pairs^2);%F(alpha,omegam0) if abs(F)<delta disp(' “Succeed: the values of 2alpha and omegm0 ”') return end end |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
请把完整程序发上来吧,看这一个片段,不容易找出问题
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-04-28
年龄: 42
帖子: 2
声望力: 0 ![]() |
![]()
vib01; %电机参数 与omegam0无关
vib02; %振动机参数与omegam0有关其值改变时要重新调用 Tcapture=m0*r0^2*omegam0^2*abs(Wc); %俘获力矩 S0=Se1; Te01=Pe1*S0/(1+Tst1*S0^2); Te02=Pe2*S0/(1+Tst2*S0^2); Tdifference=abs(Te01-Te02-(f1-f2)*omegam0-m0*r0^2*omegam0^2*(Ws1-Ws2));%剩余力矩 if Tcapture-Tdifference<0 disp('Can not realize the frequency capture') return end a1=[Te01-Te02-(f1-f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1-eta*Ws2)/(2*pairs^2)]/(Pm*(1-S0)^2*Wc/(2*pairs^2)); alpha1=asin(a1)-thetac; %2*alpha F=Te01+Te02-(f1+f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1+eta*Ws2+2*Ws*sin(alpha1+thetas))/(2*pairs^2);%F(alpha,omegam0) if F<0 disp('The power of the two motors is not enough to drive the vibrating system.') return end delta=0.01; a=0; b=Se1; m=(a+b)/2; omegam0=(1-m)*omegas/pairs; %omegam0重新赋值 vib02; %重新计算振动机参数 Tcapture=m0*r0^2*omegam0^2*abs(Wc); Te01=Pe1*S0/(1+Tst1*S0^2); Te02=Pe2*S0/(1+Tst2*S0^2); Tdifference=abs(Te01-Te02-(f1-f2)*omegam0-m0*r0^2*omegam0^2*(Ws1-Ws2)); a1=[Te01-Te02-(f1-f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1-eta*Ws2)/(2*pairs^2)]/(Pm*(1-S0)^2*Wc/(2*pairs^2)); alpha1=asin(a1)-thetac; %2*alpha F=Te01+Te02-(f1+f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1+eta*Ws2+2*Ws*sin(alpha1+thetas))/(2*pairs^2); if abs(F)<delta disp(' “Succeed: the values of 2alpha and omegm0 ”') return end while (F<0) a=m; m=(a+b)/2; omegam0=(1-m)*omegas/pairs; %omegam0重新赋值 vib02; %重新计算振动机参数 Tcapture=m0*r0^2*omegam0^2*abs(Wc); Te01=Pe1*S0/(1+Tst1*S0^2); Te02=Pe2*S0/(1+Tst2*S0^2); Tdifference=abs(Te01-Te02-(f1-f2)*omegam0-m0*r0^2*omegam0^2*(Ws1-Ws2)); a1=[Te01-Te02-(f1-f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1-eta*Ws2)/(2*pairs^2)]/(Pm*(1-S0)^2*Wc/(2*pairs^2)); alpha1=asin(a1)-thetac; %2*alpha F=Te01+Te02-(f1+f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1+eta*Ws2+2*Ws*sin(alpha1+thetas))/(2*pairs^2);%F(alpha,omegam0) if abs(F)<delta disp(' “Succeed: the values of 2alpha and omegm0 ”') break; end end while(F>0) b=m; m=(a+b)/2; omegam0=(1-m)*omegas/pairs; %omegam0重新赋值 vib02; %重新计算振动机参数 Tcapture=m0*r0^2*omegam0^2*abs(Wc); Te01=Pe1*S0/(1+Tst1*S0^2); Te02=Pe2*S0/(1+Tst2*S0^2); Tdifference=abs(Te01-Te02-(f1-f2)*omegam0-m0*r0^2*omegam0^2*(Ws1-Ws2)); a1=[Te01-Te02-(f1-f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1-eta*Ws2)/(2*pairs^2)]/(Pm*(1-S0)^2*Wc/(2*pairs^2)); alpha1=asin(a1)-thetac; %2*alpha F=Te01+Te02-(f1+f2)*omegas*(1-S0)/pairs-Pm*(1-S0)^2*(Ws1+eta*Ws2+2*Ws*sin(alpha1+thetas))/(2*pairs^2);%F(alpha,omegam0) if abs(F)<delta disp(' “Succeed: the values of 2alpha and omegm0 ”') break; end end |
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[求助]怎么在matlab中导入大量不同名字(没有规律)的.mat数据文件? | maizi816 | MATLAB论坛 | 5 | 2008-06-29 09:57 |
【求助】关于Demos里的一个程序! | firefly | MATLAB论坛 | 0 | 2007-06-13 19:55 |