How can I write a loop to evaluate theta at every two degrees from 0-360?
Mostra commenti meno recenti
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 Commenti
Roger Stafford
il 11 Giu 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.
Emily Gobreski
il 11 Giu 2016
Modificato: Emily Gobreski
il 11 Giu 2016
Risposte (1)
Steven Lord
il 11 Giu 2016
0 voti
You probably want simply to use the degree-based trig functions like sind, cosd, etc. instead of sin and cos.
2 Commenti
Emily Gobreski
il 11 Giu 2016
Chad Greene
il 11 Giu 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.
Categorie
Scopri di più su MATLAB in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!