State space analysis, eign values and eign vectorsShilpa Shukla
State space analysis concept, state space model to transfer function model in first and second companion forms jordan canonical forms, Concept of eign values eign vector and its physical meaning,characteristic equation derivation is presented from the control system subject area.
ROOT-LOCUS METHOD, Determine the root loci on the real axis /the asymptotes o...Waqas Afzal
Angle and Magnitude Conditions
Example of Root Locus
Steps
constructing a root-locus plot is to locate the open-loop poles and zeros in s-plane.
Determine the root loci on the real axis
Determine the asymptotes of the root loci
Determine the breakaway point.
Closed loop stability via root locus
State space analysis, eign values and eign vectorsShilpa Shukla
State space analysis concept, state space model to transfer function model in first and second companion forms jordan canonical forms, Concept of eign values eign vector and its physical meaning,characteristic equation derivation is presented from the control system subject area.
ROOT-LOCUS METHOD, Determine the root loci on the real axis /the asymptotes o...Waqas Afzal
Angle and Magnitude Conditions
Example of Root Locus
Steps
constructing a root-locus plot is to locate the open-loop poles and zeros in s-plane.
Determine the root loci on the real axis
Determine the asymptotes of the root loci
Determine the breakaway point.
Closed loop stability via root locus
Sección 3.1 "Transformada Z bilateral" de la unidad Transformada Z y sus aplicaciones del curso de Procesamiento Digital de Señales de la Universidad Autónoma de Nayarit
Aplicações Assíncronas no Android com Coroutines e JetpackNelson Glauber Leal
Para usufruir dos múltiplos núcleos existentes nos processadores dos smartphones atuais, podemos realizar chamadas assíncronas de modo a paralelizar o fluxo de execução da aplicação. Normalmente isso é feito por meio de threads e callbacks que acabam por adicionar uma complexidade ao código que pode comprometer sua leitura e manutenção. Nessa apresentação, veremos como utilizar a API de Coroutines do Kotlin em conjunto com diversas bibliotecas do Jetpack do Android de modo a implementar programação assíncrona forma simples e eficiente.
laplace transform and inverse laplace, properties, Inverse Laplace Calculatio...Waqas Afzal
Laplace Transform
-Proof of common function
-properties
-Initial Value and Final Value Problems
Inverse Laplace Calculations
-by identification
-Partial fraction
Solution of Ordinary differential using Laplace and inverse Laplace
It gives how states are representing in various canonical forms and how it it is different from transfer function approach. and finally test the system controllability and observability by kalman's test
The Controller Design For Linear System: A State Space ApproachYang Hong
The controllers have been widely used in many industrial processes. The goal of accomplishing a practical control system design is to meet the functional requirements and achieve a satisfactory system performance. We will introduce the design method of the state feedback controller, the state observer and the servo controller with optimal control law for a linear system in this paper.
Sección 3.1 "Transformada Z bilateral" de la unidad Transformada Z y sus aplicaciones del curso de Procesamiento Digital de Señales de la Universidad Autónoma de Nayarit
Aplicações Assíncronas no Android com Coroutines e JetpackNelson Glauber Leal
Para usufruir dos múltiplos núcleos existentes nos processadores dos smartphones atuais, podemos realizar chamadas assíncronas de modo a paralelizar o fluxo de execução da aplicação. Normalmente isso é feito por meio de threads e callbacks que acabam por adicionar uma complexidade ao código que pode comprometer sua leitura e manutenção. Nessa apresentação, veremos como utilizar a API de Coroutines do Kotlin em conjunto com diversas bibliotecas do Jetpack do Android de modo a implementar programação assíncrona forma simples e eficiente.
laplace transform and inverse laplace, properties, Inverse Laplace Calculatio...Waqas Afzal
Laplace Transform
-Proof of common function
-properties
-Initial Value and Final Value Problems
Inverse Laplace Calculations
-by identification
-Partial fraction
Solution of Ordinary differential using Laplace and inverse Laplace
It gives how states are representing in various canonical forms and how it it is different from transfer function approach. and finally test the system controllability and observability by kalman's test
The Controller Design For Linear System: A State Space ApproachYang Hong
The controllers have been widely used in many industrial processes. The goal of accomplishing a practical control system design is to meet the functional requirements and achieve a satisfactory system performance. We will introduce the design method of the state feedback controller, the state observer and the servo controller with optimal control law for a linear system in this paper.
Bu tez çalışmasında NovaproOpen SCADA' sı tanıtılmıştır. NovaproOpen SCADA'sının örnek tesisteki ısıtma ve havalandırma sistemlerine uygulaması anlatılmıştır. Örnek uygulamadıki sısıtma ve havalandırma sistemeleri elektriksel ve mekaniksel kontrolü hakkında bilgi verilmiş, SCADA sistemi tanıtılmış NovaproOpen SCADA sisteminin özellikleri, Sauter EYR 203 F002 PLC' ler ve ECOS EYE 200 DDC' ler ile haberleşmesi anlatılmıştır.
1. T.C.
B˙ILEC˙IK ¸SEYH EDEBAL˙I ÜN˙IVERS˙ITES˙I
MÜHEND˙ISL˙IK FAKÜLTES˙I
B˙ILG˙ISAYAR MÜHEND˙ISL˙I ˘G˙I BÖLÜMÜ
RC SERVO MOTOR KONTROLÜ
˙IBRAH˙IM AL˙I MET˙IN
B˙ILEC˙IK
30 Mart 2015
2. T.C.
B˙ILEC˙IK ¸SEYH EDEBAL˙I ÜN˙IVERS˙ITES˙I
MÜHEND˙ISL˙IK FAKÜLTES˙I
B˙ILG˙ISAYAR MÜHEND˙ISL˙I ˘G˙I BÖLÜMÜ
RC SERVO MOTOR KONTROLÜ
˙IBRAH˙IM AL˙I MET˙IN
B˙ILEC˙IK
30 Mart 2015
3. ÖZET
Ödevin Amacı
Bu projemizde, FPGA kiti ile 1 adet PWM modul tasarlayaca˘gız. PWM modülümüzü, RC
Servo motor sürmek için kullanaca˘gız. RC Servo motorlar model hobide kullanılan mo-
torlardır.RC (radio Control) Hobi 2 yıldır ilgilendi˘gim birçok model kullandı˘gım tavsiye
edebilece˘gim çok güzel bir u˘gra¸stır.
Ödevin Kapsamı
Projem FPGA kitinde pwm modülü olu¸sumunu, kendi içinde üretilen clock sinyalinin
motorun hareketinde kullanımı hakkında ki genel yapıyı içermektedir.
Sonuçlar
Sonuç olarak FPGA kitimize ba˘glı olan servo motorlarımız belirli bir açı süpürmektedir.
ii
4. ABSTRACT
Homework Objective
In this project, one with FPGA device we designed PWM module. Our PWM module, we
will use the RC servo motor to drive.
Scope of Homework
My project FPGA device formation PWM module contains general structure on the use
of clock signals generated by the movement of the engine itself.
Results
In conclusion, our servo motor connected to the FPGA device sweeps a certain angle.
iii
7. 1 RC SERVO MOTOR
R/C Servo Motor dedi˘gimiz ¸sey dc akımla çalı¸san ve istenilen açı aralı˘gında dönen moto-
rardır. R/C , Radio Controlled anlamına gelir. Servco motorlar DC Motorların temel man-
tı˘gını kullanırlar. Fakat buna kar¸sın elektronik pozisyon kontrol devresi ve elektronik ¸saft
gibi ekstra bile¸senleri vardır. Servo motor ¸saftın kaç derece ve hangi hızda döndü˘günü al-
gılar ve giri¸se bunu geri besleme olarak verir. Motorun pozisyonunu algılamak için rotora
takılı bir potansiyometre bulunur. Bu potansiyometreden gelen analog de˘ger ile inputtaki
sinyal kar¸sıla¸stırılır ve output olarak motorun yeni pozisyonu kontrol edilir.[1]
¸Sekil 1: Servo Motor
R/C servo motorun pozisyonunu kontrol etmek için PWM sinyali kullanılır. Motoru’un
inputuna gelen PWM sinyalinin görev çevrimine(duty cycle) göre motor, pozisyon de˘gi¸s-
tirir. R/C Servo Motorlarda pozisyon açısal derece esasına göre kontrol edilir. Pozisyon
kontrol devresi PWM sinyalinin görev çevrimine göre dönece˘gi dereceyi hesaplar. PWM
sinyalinin çevrim süresi aynı kaldı˘gı müddetçe motor pozisyon de˘gi¸stirmez.
¸Sekil 2: PWM Modülü
1
8. Yalnız önemli olan nokta ¸sudur ki; servo motorda dönmenin gerçekle¸sebilmesi için PWM
siyalinin frekansı 50 Hz olmalıdır. Yani kontrol sinyalinin periodu 20 ms olmalıdır. 0
ve 180 derece arasındaki pozisyonlar PWM sinyalinin görev çevrimi süresinin 1 ms ile
2 ms arasında gerçekle¸sir. PWM sinyalinin 1 ms görev çevrim süresi için servo motor
0 derecelik pozisyondadır. ¸Semadan da görüldü˘gü gibi 0.5 ms lik ve 2 ms lik çevrim
sürelerinde servo motorun pozisyonu 90 derece de˘gi¸sir.
Servo motorların supply voltajı 4.5 volt ile 6 volt arasında de˘gi¸sir. Bu voltaj de˘gerleri
motorun tork’una göre de˘gi¸skenlik gösterir. R/C servo motorların digital olanlarıda vardır.
Bu motorlar normale göre daha hassas açı ile dönerler.
¸Sekil 3: Servo Motor Açısal Pozisyonu
1.1 Servo Motorun Özellikleri
- Di˘ger motor türlerine göre daha hassastır.
- Açısal dönme yöntemi (yani encoder) ile çalı¸smaktadır.
- Bir sürücü ile kontrol edilirler.
- Endüstride çok yaygın bir ¸sekilde kullanılmaktadır.
- Mikrobilgisayarlar tarafından kolayca kontrol edilebilirler.
- Dönme esnasında olu¸san hata sadece adım hatasıdır.
2
9. - Hızı programlama yoluyla ayarlanabilir.
Uygulama alanlarına örnek verecek olursak CNC makineler, robot kolları, endüstriyel
ta¸sıma sistemlerini örnek verebiliriz. Servo motorlar da çıkı¸s; mekaniksel konum, hız veya
ivme gibi parametrelerin kontrol edildi˘gi bir düzenektir.
2 VHDL ile SERVO MOTOR KONTROLÜ
Quartus2 11.0 programını kullanarak Vhdl programlama dilince kodlamalarımızı gerçekle¸stirdik.[?]
¸Sekil 4: Vhdl Ana Ekranımız
burada diger vhdl sayfalarında kodladıgımız clock sinyalini ve pwm modül kodlamaları-
mız ça˘gırıyoruz.
3
10. ¸Sekil 5: Vhdl Clock Sinyali
Bu vhdl kodlarımızda devremizin çalı¸sması için kendi içinde gerekli olan 50Mhz’lik clock
sinyalinin çalı¸sması için gereli kodlar yazılıyor.
¸Sekil 6: Vhdl Pwm Üretici
Programımızda, peryodu 20 ms olan bir adet PWM sinyali üretmemiz gerekecek.
Biz Geli¸stirme bourdumuzda 50 MHz’lik (20 ns) bir clk sinyali kullanaca˘gımız. 20 ms pe-
riodunda bir sinyal üretmek için, programımızda 1 adet counter de˘gi¸skeni tanımlayaca˘gız
4
11. ve Counter’ın üst sınırını ise (20ms/20ns) 1000 000 olarak belirleyece˘giz.
¸Sekil 7: Pin Planer
burada ise kitimizde ki giri¸s ve çıkı¸slarımızı ilgili pinlere atama i¸slemi gerçekle¸stiriliyor.
Kodlama ve pin atama i¸slemimizi bu ¸sekilde gerçekle¸stirdiktan sonra programımızın ça-
lı¸smasını test edelim.
5
12. 3 ALTERA ile RC SERVO BA ˘GLANTILARIM
¸Sekil 8: Servo Motor Ba˘glantıları
¸Sekil 9: Vcc , GND ve PWM ba˘glantısı
6
14. 5 EKLER
5.1 RC Servo Motor Kontrol Kodlarım
5.1.1 pwmtop.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
-----------------------------------------------------
entity pwm_top is
port(
clr : in std_logic;
clk : in std_logic;
duty : in std_logic_vector (7 downto 0);
pwm : out std_logic
);
end pwm_top;
-----------------------------------------------------
architecture pwm_top of pwm_top is
signal new_clock : std_logic;
begin
clk_div: entity work.clk64kHz
port map(
clk => clk, reset => ’0’, clk_out => new_clock);
Pulse: entity work.pwm
port map(
clr => clr, clk => new_clock, duty => duty, period => "11001000", pwm => pwm);
end pwm_top;
5.1.2 clk64kHz.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity clk64kHz is
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
clk_out: out STD_LOGIC
);
end clk64kHz;
architecture Behavioral of clk64kHz is
signal temporal: STD_LOGIC;
signal counter : integer range 0 to 4999 := 0;
8
15. begin
freq_divider: process (reset, clk) begin
if (reset = ’1’) then
temporal <= ’0’;
counter <= 0;
elsif rising_edge(clk) then
if (counter = 4999) then
temporal <= NOT(temporal);
counter <= 0;
else
counter <= counter + 1;
end if;
end if;
end process;
clk_out <= temporal;
end Behavioral;
5.1.3 pwm.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
-----------------------------------------------------
entity pwm is
port(
clr : in std_logic;
clk : in std_logic;
duty : in std_logic_vector (7 downto 0);
period : in std_logic_vector (7 downto 0);
pwm : out std_logic
);
end pwm;
-----------------------------------------------------
architecture pwm of pwm is
signal count : std_logic_vector(7 downto 0);
begin
cnt: process(clk, clr) -- 4 bit counter
begin
if clr = ’1’ then
count <= "00000000";
elsif clk’event and clk = ’1’ then
if count = period -1 then
count <= "00000000";
else
count <= count +1;
end if;
end if;
end process cnt;
pwmout: process(count, duty)
begin
if count < duty then
9