control tutorials 13

3. Simulink

DC 모터의 모델에서 input은 전압(V)이고 output은 각속도이다. 모델을 viscous frcition 모델로 가정해서 friction torque는 r각속도에 비례한다. 이를 미분방적식으로 나타내면 아래와 같다.$$J\ddot{\theta }=Ki-b\dot{\theta }$$ $$L\frac{di}{dt}+Ri=V-K\dot{\theta }$$J, moment of inertia of the rotor : 0.01 kg.m^2b, motor viscous friction constant : 0.1 N.m.sKe, electromotive force constant : 0.01 V/rad/sedKt, motor torque constant : 0.01 N.m/AmpR, electric resi..

2. Control

DC 모터의 open-loop 전달함수는 다음과 같이 표현된다. $$J\ddot{\theta }+b\dot{\theta }=Ki$$ $$L\frac{di}{dt}+Ri=V-K\dot{\theta }$$ $$T(s)= \frac{\dot{\theta}(s)}{V(s)} = \frac{K}{(Ls+R)(Js+b)+K^2}$$모터의 시스템을 이용해서 feedback loop를 만들고 아래의 성능을 충족시켜보자!!settling time overshoot staedy-state error 1. PID1)Propertional controlKp=100인 pid controller를 아래의 매트랩 코드를 이용해서 결과를 확인할 수 있다.J=0.01;b=0.1;K=0.01;R=1;L=0.5;s=tf('s');P_mo..

1. System modeling

DC 모터에서 input을 전압(voltage), output을 회전속도(rotational speed)로 시스템을 만들어보자. 모터에 대한 이해가 필요한데 핵심적인 것은 아래와 같다(나중에 정리하는 것이 목표..)모터에서 만들어지는 토크는 회전자에 흐르는 전류(armature current) i에 비례한다.모터의 회전에 의해 공급전압과 반대방향의 유도전압이 만들어지는데 이를 역기전력(Back EMF)라고 하고 모터의 회전속도에 비례한다.위를 식으로 나타내면 아래와 같다.$$T=K_{t}i$$ $$e=K_{e} \dot{\theta}$$여기에서 kt=ke라고 한다. 따라서 우리는 둘다 k를 이용해서 표현할 수 있다.위의 식을 이용해서 뉴텬의 제2법칙과 Kirchhoff's voltage law(폐회로에소..

3. Simulink modeling

1. Modeling이전에 cruise control system에서 회전 저항과 공기저항이 자동차의 속도에 비례한다고 가정하면 system은 아래와 같이 간단한 식으로 표현된다.(mass-damper system) $$m \dot{v}=u-bv$$ $$m=1000kg$$ $$b=50Nsec/m$$ $$u=500N$$  위의 식을 simulink로 표현하면 아래처럼 그리면 된다. m, b, u(step input의 값)은 위의 식의 갑과 동일하다.시뮬레이션 시간을 120초로 하고 실행하면 아래와 같은 결과를 확인할 수 있다. 시뮬레이션 시간은 시뮬레이션 탭에서 중지시간 또는 모델설정 앱에서 변경할 수 있다.120초 후에는 10m/s를 유지한다. 최종적으로  10m/s 되는 것을 여러 방법을 통해 알 수 ..

2. Control

1. system model과 원하는 조건cruise control 문제의 전달함수는 아래와 같다. $$T(s)=\frac{V(s)}{U(s)}=\frac{1}{ms+b}$$ $$vehicle\ mass(m)\ :\ 1000kg$$ $$damping\ coefficient\ :\ 50Ns/m$$ $$reference\ speed\ :\ 10m/s$$우리는 자동차가 10m/s을 유지하도록 제어기를 설계해야 한다. 또한 rise time  open-loop system에서 500N의 힘을 가하면 10m/s의 steady-state 값을 갖는다. open-loop에서는 시스템에 그대로 적용되기 때문에 input이 힘이지만 closed-loop system에서는 제어기를 한번 거치고  feed back도 존재하..

추가적으로 정리한 것

1. 손으로 전달함수 구하고 매트랩과 비교https://fbc0314.tistory.com/1여기에서 수학적으로 모델링해서 구한 전달함수와 매트랩을 통해서 구한 전달함수를 비교해보자!! 1)수학적으로 계산$$\sum F_{1}=F-k(x_{1}-x_{2})-\mu M_{1}g\dot{x_{1}}=M_{1}\ddot{X_{1}}$$ $$\sum F_{2}=k(x_{1}-x_{2})-\mu M_{2}g\dot{x_{2}}=M_{2}\ddot{X_{2}}$$ 위와 같은 수식으로 모델링 할 수 있다.k= 1N/s, M1=1kg, M2=0.5kg, mu=0.02s/m, g=9.8m/s^2이다. 여기에 라플라스 변환을 적용하고 속도/힘의 전달함수를 구해보자. 라플라스 변환 적용결과 아래와 같다.$$ F(s)-k(X..

Simscape

1. Simscape와 Simulink지금까지 우리는 simulink를 사용해서 시스템을 모델링하고 원하는 조건을 성립하도록 제어기를 설계하고 시뮬레이션 하는 방법을 해보았다. Simscape도 Simulink와 비슷한 목적을 가지고 있다. 하지만 simulink는 수학적 모델링으로 연결되어 신호가 전달된다면 물리적 시스템을 구성 요소 기반으로 모델링하고  실제 물리적 상호작용(전압, 유량, 힘 등)을 직관적으로 표현한다. 이러한 Simscape를 처음 사용한다면 에드온으로 추가적인 설치가 필요한다. 에드온에서 아래 사진처럼 Simscape를 찾아서 설치해준다. 2. 기차 시스템 모델링https://ctms.engin.umich.edu/CTMS/index.php?example=Introduction&se..

Simulink Control

해당 카테고리의 첫 글에서 우리는 두개의 기차 시스템을 모델링했고 아래 사진처럼 완성했다. 우리가 모델링한 것은 feedback system의 plant 부분이고 controller부분을 설계해서 원하는대로 동작하도록 만들어야 한다. 먼저 간단하게 보기 위해서 train model을 하나의 subsystem block으로 만들어야 한다. 이를 위해서 3개의 scope block을 sinks library의 out1으로 바꾸고 한개의 signal generator를 sources library의 in1으로 바꿔야 한다. 그러면 아래와 같은 화면이 만들어진다. 모델을 모두 선택 후(Ctrl+A) 우클릭 후에 선택항목을 서브시스템으로 만들기 선택(Ctrl+G)를 통해서 하나의 subsystem block으로 ..

Frequency Domain

주파수 영역에서 controller를 디자인 하는 것은 직관적이지 않다.하지만 물리적 데이터를 가지고 전달함수를 설계하는데 유용하게 사용될 수 있다고 한다(아직 어떤 의미인지는 잘 모르겠다...) open loop frequency response를 이용해서 closed loop time response의 특성을 파악하는 방법에 대해서 알아보자!! 1. Gain Margin and Phase Margin먼저 짚고가야 하는 것이 있다. frequency response가 뭐지??sinusoidal input이 linear system에 들어왔을 때의 steady-state response가 frequency response이다.여기서 시스템의 크기만큼 증폭되고 시스템의 위상각만큼 이동된다.k가 정해졌을 때..