How can I write a loop to evaluate theta at every two degrees from 0-360?
이전 댓글 표시
n=(360/Dth)+1
theta=0
for I=1:2:n
R=12
w=(2*pi/5)
Md=50
Thetarads= theta*pi/180
Id=(.5*Md*R^2)
Mp=75
Mb=30
alpha=0
u=.8
L=6*R
theta=0
Dth=2
thetarads=theta*pi/180
rx=(R)*cos(theta)-L*cos(180)-L
ry=(R*sin(theta))-(L*sin(180))-(R*sin(theta))
vx=(-R)*(w)*sin(theta)
vy=(R)*(w)*cos(theta)
alpha=0
ax=(-R)*alpha*sin(theta)-(R*(w^2)*cos(theta))
ay=(R)*alpha*cos(theta)-(R*w^2*sin(theta))
theta=theta+Dth
end
댓글 수: 2
Roger Stafford
2016년 6월 11일
There are a number of errors or questionable items in your code:
1) Inside the for-loop you set theta = 0 so that it will never change.
2) You write sin(theta) and sin(180), and theta and (I suspect) 180 are in degrees, whereas ‘sin’ uses radian measure.
3) In the line
ry=(R*sin(theta))-(L*sin(180))-(R*sin(theta))
the R*sin(theta) terms cancel each other.
4) You set alpha = 0, so why use it in the lines for ax and ay?
5) Why have you defined Md, Id, Mp, Mb, u. They are never used.
Emily Gobreski
2016년 6월 11일
편집: Emily Gobreski
2016년 6월 11일
답변 (1개)
Steven Lord
2016년 6월 11일
0 개 추천
You probably want simply to use the degree-based trig functions like sind, cosd, etc. instead of sin and cos.
댓글 수: 2
Emily Gobreski
2016년 6월 11일
Chad Greene
2016년 6월 11일
Steven's suggesting an alternative function. If you're working in degrees, you can use sind(theta) or you can use sin(theta*pi/180). They will both give the same result.
카테고리
도움말 센터 및 File Exchange에서 MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!