Gğnaydın, Matlab da scara robotun Ters Kinematik çözümünü yapmaya çalışırken, yaptığım matris işleminin sonucunu aldığımda "cos(conj(teta1)) " şeklinde devam eden ve aynı ifadenin sinüslüsünü de içeren birçok terimi olan sonuçla karşılaştım. işlem başında syms ile teta1 , teta2, .. ile açıları ve L1, L2.. ve d1, d2.. ile de uzunlukları tanımlamıştım yani kompleks (Compleks ve Compleks conjuge ) bir sayısal değer yoktu. Bu ifadenin anlamı nedir? Bu açıya ne işlemi uygulamam gerekiyor? Yardımcı olursanız memnun olurum. Selam ve sevgilerimle…
Merhaba,
Anladığım kadarı ile sembolik (syms) tanımlamalar ile hesaplamalarınızı çözmeye çalışıyorsunuz. Sembolik ifadeler kullanmamız aynen kağıt kalem ile yaptığımız işlemlerdeki tanımladığımız değişkenlere benzer. Sonucumuz da nümerik bir değer yerine sayılardan oluşur. Ancak bulduğunuz sonuçtaki değişkenlere değerlerini koyarak nümerik bir sonuca ulaşabiliriz. Yenine koyma işlemini subs fonksiyonu ile yapabiliriz. Aşağıdaki örneği inleyebilirsiniz.
syms x y %Degiskenlerimi sembolik olarak tanimlamam gerekiyor F=(4.*(x.^6+y.^2)-1)+5*x*y^2; %Denklemimi yaziyorum dx = diff(F,x) %Turevimi sembolik olarak tanimliyorum x= 2; y= 4; %Degiskenlerimin degerlerini yaziyorum subs(dx) %subs fonksiyonu ile degisken degerlerini turevi alinan sembolik ifadede yerine koyuyorum
Sorunuzu simdi daha iyi anlayabildigimi dusunuyorum. Bu problemde sembolik ifade (syms) kullandigimiz icin yaptigimiz cozumlemedeki skaler degerler varsayilan olarak karmasik seklinde tanimlanmis oluyor (bu sembolik cozum aracinin bir ozelligi). Diger bir deyis ile, ornegin: conj(theta1) dedigimizde sembolik cozum araci buradaki theta1 degerini gercek ve sanal parcalardan olusan bir ifade olarak algilayarak (theta = a + bi (i sanal kismi belitiyor)) conj fonksiyonu ile de bu ifadenin eslenigini size vermis oluyor (conj(theta) = a – bi). Bu karisikliktan kurtulmak icin asagidaki tanimlamalari fonksiyonunuzun basina ekleyebilirsiniz:
syms theta1 real %Gercek sayi olarak tanimladigimiz degiskenler syms theta2 real %Gercek sayi olarak tanimladigimiz degiskenler syms P x y %diger degiskenleriniz % Yapmak istediginiz diger islemler
Dipce: Nacizane bir hatirlatmada bulunmak isterim, kullandiginiz cos(x) fonksiyonunuz varsayilan aci degerini hep radyan cinsinden hesaplamaktadir. Eger derece olarak hesaplamasini isterseniz ifadenizi cosd(x) seklinda yazmaniz gerekebilir.