How can I write a loop to evaluate theta at every two degrees from 0-360?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Roger Stafford
le 11 Juin 2016
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.
Réponses (1)
Steven Lord
le 11 Juin 2016
You probably want simply to use the degree-based trig functions like sind, cosd, etc. instead of sin and cos.
2 commentaires
Chad Greene
le 11 Juin 2016
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.
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!