본문 바로가기
MATLAB

전기 시스템 모델링

by 파치카 2020. 9. 4.

https://honour.tistory.com/41

 

전기 시스템 모델링

네이버 블로그에서 쓰다가 티스토리로 넘어왔다 근데 넘어와도 글 잘 안 쓸거 같은데 그래도 일단 써봄 저번엔 스프링-댐퍼 시스템에 대해서 알아봤으니 이번엔 전기 시스템에 대해서 알아보자

honour.tistory.com

여기에서 기계부분말고 전기부분만 MATLAB으로 모델링한 코드

 

 

clc, clear, close all
b = (4.05*2*pi*1000/60)^-1;
r = 0.115;
k_b = (581*2*pi/60)^-1;
k_i = 16.4/1000;
j = 139/1000/10000;
l = 0.024/1000;
v = 12;
omega1 = 0;
time1 = 0;
omega2 = 0;
time2 = 0;
dt = .00001;

s1 = -((b*l+j*r)/(2*j*l)) + (sqrt((b*l+r*j)^2 - 4*(j*l)*(b*r+k_i*k_b))/(2*j*l));
s2 = -((b*l+j*r)/(2*j*l)) - (sqrt((b*l+r*j)^2 - 4*(j*l)*(b*r+k_i*k_b))/(2*j*l));
s = -(b*r+k_b*k_i)/(j*r);
A = s1/s2 + 1;
B = (s2/s1 - 1)^-1;

for n = 1:1:6000
    omega1(n+1) = -(A*k_i*v/(b*r+k_b*k_i))*exp(s1*time1(n)) + ...
        (B*k_i*v/(b*r+k_b*k_i))*exp(s2*time1(n)) + (k_i*v)/(b*r+k_b*k_i);
    time1(n+1) = time1(n) + dt;
    omega2(n+1) = -(k_i*v/(b*r+k_b*k_i))*exp(s*time2(n)) + (k_i*v)/(b*r+k_b*k_i);
    time2(n+1) = time2(n) + dt;
end

tau1 = abs(1/s1);
tau2 = abs(1/s2);
tau = abs(1/s);
plot(time1,omega1,'r',time2,omega2,'k--','linewidth',2)
xlabel('Time (s)')
ylabel('Angular Velocity (rad/s)')
legend('Motor with the inductance','Motor without the inductance','location','best')
grid on

 

 

 

 

 

이 코드를 돌리면 나오는 결과값 아직 잘 작동하는듯

 

인덕터 L이 R에 비해 엄청나게 작을때는 L의 유무에 관계없이 결과값엔 영향이 없다는 걸 보여주는 그래프임

 

몇 년전 학식때 사용했던 코드 그대로 들고왔음

 

지금 적으면 더 깔끔하게 적을 수 있을텐데 저땐 되게 못 적었었네

'MATLAB' 카테고리의 다른 글

다섯 번째  (0) 2020.07.10
네 번째  (0) 2020.07.10
세 번째  (0) 2020.07.10
두 번째  (0) 2020.07.10
글 옮기는 중  (0) 2020.07.10

댓글