#define Num 36
#define Num1 Num+1
#include<stdio.h>
#include <math.h>
#include<graphics.h>
void main()
{
int i
int gdriver=DETECT,gmode
float L1,L2,E,w1
double e1[Num1],e2[Num1],w2[Num1],d2[Num1],sc[Num1],vc[Num1],ac[Num1]
double g1,g2
double x1,x2,y1,y2
printf("\n Please input your data L1,L2,E,w1:\n")
scanf("%f,%f,%f,%f",&L1,&L2,&E,&w1)
printf("===========================================================\n")
printf(" e1 e2 w2 d2 sc vcac\n")
printf(" (DEG)(DEG) (rad/s) (rad/s2) (m) (m/s)(m/s2)\n")
for(i=0i<=Numi++)
{
e1[i]=360.0/Num*i
g1=PI/180.0*e1[i]
g2=asin((E-L1*sin(g1))/L2)
e2[i]=180.0/PI*g2
sc[i]=L1*cos(g1)+L2*cos(g2)
w2[i]=-w1*L1*cos(g1)/(L2*cos(g2))
vc[i]=-w1*L1*sin(g1-g2)/cos(g2) d2[i]=(w1*w1*L1*sin(g1)+w2[i]*w2[i]*L2*sin(g2))/(L2*cos(g2))
ac[i]=(-w1*w1*L1*cos(g1-g2)-w2[i]*w2[i]*L2)/cos(g2)
getchar()
printf("%6.1f%9.3f%9.3f%9.3f%9.3f%9.3f%11.3f", e1[i],e2[i],w2[i],d2[i],sc[i],vc[i],ac[i])
}
printf("\n")
printf("Welcome to computer world!")
initgraph(&gdriver,&gmode,"c\\Turboc2")
cleardevice()
line(140,100,550,100)
line(140,240,550,240)
line(140,380,550,380)
line(140,40,140,440)
line(500,40,500,440)
x1=e1[0] y1=0.7*(sc[0]-300)
for(i=0i<=Numi++)
{ x2=e1[i] y2=0.7*(sc[i]-300)
line(140+x1,100-y1,140+x2,100-y2)
x1=x2 y1=y2 }
x1=e1[0]y1=vc[0]
for(i=0i<=Numi++)
{ x2=e1[i] y2=vc[i]
line(140+x1,240-y1,140+x2,240-y2)
x1=x2y1=y2 }
x1=e1[0]y1=0.5*ac[0]
for(i=0i<=Numi++)
{ x2=e1[i]y2=0.5*ac[i]
line(140+x1,380-y1,140+x2,380-y2)
x1=x2 y1=y2}
getchar()
closegraph()
}
%Matlab仿真程序如下:r1=36 %单位mm
r2=140
omiga1=60%单位d/sec
x11=1:720
for i=1:720
x1(i)=i*pi/180
%sin(x2(i))=-r1/r2*sin(x1(i))
x2(i)=asin(-r1/r2*sin(x1(i)))
x22(i)=x2(i)*180/pi
r3(i)=r1*cos(x1(i))+r2*cos(x2(i))
B=[-r1*omiga1*sin(x1(i))
r1*omiga1*cos(x1(i))]
A=[r2*sin(x2(i)) 1-r2*cos(x2(i)) 0] X=inv(A)*B
omiga2(i)=X(1,1)
v3(i)=X(2,1)
end
plot(x11/60,0.5*r1*sin(x1))
xlabel('时间 t/sec')
ylabel('连杆质心在Y轴上位置/mm')
figure(2)
plot(x11/60,r3)
xlabel('时间 t/sec')
ylabel('滑块位移r3/mm')
figure(3)
plot(x11/60,omiga2)
xlabel('时间 t/sec')
ylabel('连杆角速度omiga2/rad/sec')
figure(4)
plot(x11/60,v3*pi/180)
xlabel('时间 t/sec')
ylabel('滑块速度v3/mm/sec')
如图添加1个Timer控件Timer1 ;1个HScrollBar控件HScroll1 ;1个VScrollBar控件VScroll1
然后复制下列代码到代码框
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
HScroll1.Max = VScroll1.Max
HScroll1.Min = VScroll1.Min
HScroll1.Value = VScroll1.Max - VScroll1.Value
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)