<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>모터제어 일기장</title>
    <link>https://zin9.tistory.com/</link>
    <description>PMSM(BLDC) 모터와 그 제어 방법에 대한 정리
제어 이론, 시뮬레이션 해석, 간이 제어기 설계 등으로 기초부터 차근차근 쌓아올리기</description>
    <language>ko</language>
    <pubDate>Sun, 10 May 2026 01:58:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Zin9</managingEditor>
    <item>
      <title>위치 경로 생성</title>
      <link>https://zin9.tistory.com/66</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;로봇의 모터 제어에 있어 경로 생성은 매우 중요한 분야다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상위 제어기에서 통신을 통해 매 주기마다 위치지령을 모터 드라이버에 전달하고, 이 위치 지령을 추종하며 움직이기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 위치 지령을 생성해주는 것은 여러 방법이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위치 지령은 속도 지령을 적분하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경로 생성을 쉽게 이해하기 위해선 속도 지령을 어떻게 만들 것인지 이해해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 가속도 그래프가 일정한 속도 파형(y=k) &amp;rarr; 3차 다항식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 가속도 그래프가 증감하는 속도 파형(y&amp;ne;k) &amp;rarr; 5차 다항식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 가속도 그래프가 포물선 형태를 띄는 속도 파형 &amp;rarr; 2n+1차 다항식(n=3,4,5,...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말로는 설명이 어려우니 그래프로 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1은 3차, 5차, 7차 다항식을 시뮬레이션으로 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가속시간은 0.3초이며 1000[rpm]에 도달하도록 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다항식의 차수가 높아질수록 속도 파형에 곡선이 커지게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1735&quot; data-origin-height=&quot;908&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mOCKm/btsKAJeEXC0/b8Xynh3kcwBW2zkSMFFqm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mOCKm/btsKAJeEXC0/b8Xynh3kcwBW2zkSMFFqm0/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. 3차, 5차, 7차 다항식의 시뮬레이션 결과&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mOCKm/btsKAJeEXC0/b8Xynh3kcwBW2zkSMFFqm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmOCKm%2FbtsKAJeEXC0%2Fb8Xynh3kcwBW2zkSMFFqm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1735&quot; height=&quot;908&quot; data-origin-width=&quot;1735&quot; data-origin-height=&quot;908&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. 3차, 5차, 7차 다항식의 시뮬레이션 결과&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;① 3차 다항식&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가속하는 동안 가속도 파형이 일정하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;② 5차 다항식&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가속하는 동안 가속도 파형이 포물선 형태를 띈다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;③ 7차 다항식&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가속하는 동안 가속도 파형이 포물선 형태를 띄며, 처음과 끝에서 가속도 파형이 5차 다항식의 파형보다 완만하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 가속을 부드럽게 함으로써 진동을 줄이기 위함이다!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 하지만, 가속도의 최대치가 높아지므로, 더 많은 순간 토크가 필요하다는 단점이 존재한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;위치 경로 생성과 진동은 무슨 관계?&lt;br /&gt;&lt;br /&gt;모션의 처음과 끝에서 부드럽게 운동해야 한다.&lt;br /&gt;자동차를 운전하면서 가속할 때 가속 페달을 세게 밟으면 어떠한가?&lt;br /&gt;반대로 감속할 때 브레이크 페달을 세게 밟으면?&lt;br /&gt;두 경우 모두 몸이 튕겨져 나갈만큼 충격이 온다.&lt;br /&gt;가장 좋은 건 가속할 때나 감속할 때나 운전자의 몸이 시트에 딱 달라붙어 있으며 충격이 느껴지지 않는 것이다.&lt;br /&gt;&lt;br /&gt;로봇에 있어 위치 제어가 이렇다.&lt;br /&gt;급가감속을 하면 모션이 종료되었음에도 모터는 목표 위치에 안정적으로 도달하지 못한다.&lt;br /&gt;모션이 종료되면 되도록 빠르게 현재 위치가 위치 지령과 동일하게 되어야 한다.&lt;br /&gt;그래야 다음 모션을 시작할 수 있기 때문이다.&lt;br /&gt;목표 위치에 도달하지 않았는데 다음 모션을 시작할 수 없기 때문이다.&lt;br /&gt;&lt;br /&gt;그래서 목표 위치에 도달하는 시점에는 부드럽게 감속해야 떨림을 최소화해서 목표치에 도달할 수 있다.&lt;br /&gt;로봇 팔의 말단에 부하가 크고 로봇의 강성이 약해질수록 이러한 위치 제어(7, 9차 다항식을 이용한 경로 생성)가 필요하다.&lt;br /&gt;&lt;br /&gt;&amp;lt;그림 2. 추가하기&amp;gt;&lt;br /&gt;&lt;br /&gt;※ 모션: 한 지점으로부터 다른 지점으로 이동하는 움직임&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3차, 5차, 7차 다항식의 특징을 살펴보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 3차 다항식의 표현을 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;★ 3차 다항식에선 &quot;위치와 속도&quot;로 경로를 생성한다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위치 경로 생성에서는 q(t)로 표현한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 식에 경계조건을 넣어보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 시간 t가 0인 때를 보면, q(0) = a0 가 된다. 즉, a0는 현재 위치가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;q(t)를 미분하면 속도 표현이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;q'(t)에서 t가 0이면 초기 속도가 되고, a1가 초기속도가 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jqzwf/btsKzoCQtP7/dAtQmm1iaC90jw5HUvO2hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jqzwf/btsKzoCQtP7/dAtQmm1iaC90jw5HUvO2hk/img.png&quot; data-alt=&quot;&amp;amp;lt;3차 다항식 위치 표현&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jqzwf/btsKzoCQtP7/dAtQmm1iaC90jw5HUvO2hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJqzwf%2FbtsKzoCQtP7%2FdAtQmm1iaC90jw5HUvO2hk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;311&quot; height=&quot;45&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;45&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;3차 다항식 위치 표현&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;36&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KzKoK/btsKzjuXypC/kyAs1byQKURjIADr0OUjz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KzKoK/btsKzjuXypC/kyAs1byQKURjIADr0OUjz1/img.png&quot; data-alt=&quot;&amp;amp;lt;3차 다항식의 속도 표현&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KzKoK/btsKzjuXypC/kyAs1byQKURjIADr0OUjz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKzKoK%2FbtsKzjuXypC%2FkyAs1byQKURjIADr0OUjz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;262&quot; height=&quot;36&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;36&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;3차 다항식의 속도 표현&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 계수는 어떻게 구할 수 있을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 이동 시간을 T라고 하면 아래의 수식을 풀어서 각각의 계수를 구할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blmcBv/btsKBMV3tOB/kn7LnZPj0PpuifIRtCKK0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blmcBv/btsKBMV3tOB/kn7LnZPj0PpuifIRtCKK0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blmcBv/btsKBMV3tOB/kn7LnZPj0PpuifIRtCKK0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblmcBv%2FbtsKBMV3tOB%2Fkn7LnZPj0PpuifIRtCKK0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;176&quot; height=&quot;130&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sAmqv/btsKzkADp97/eMNxNaKM8klwA5groKscX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sAmqv/btsKzkADp97/eMNxNaKM8klwA5groKscX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sAmqv/btsKzkADp97/eMNxNaKM8klwA5groKscX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsAmqv%2FbtsKzkADp97%2FeMNxNaKM8klwA5groKscX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;365&quot; height=&quot;128&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자, 5차 다항식은 어떤가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;위치, 속도, 가속도&quot;를 설정하여 경로를 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3차 다항식의 풀이를 이해했다면, 5차 다항식도 스스로 풀어볼 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표현식, 경계조건, 방정식을 설명없이 첨부한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;455&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UQM2P/btsKBl5sqUP/ktpODbfy2V6abZ6hKyZQbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UQM2P/btsKBl5sqUP/ktpODbfy2V6abZ6hKyZQbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UQM2P/btsKBl5sqUP/ktpODbfy2V6abZ6hKyZQbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUQM2P%2FbtsKBl5sqUP%2FktpODbfy2V6abZ6hKyZQbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;359&quot; height=&quot;30&quot; data-origin-width=&quot;455&quot; data-origin-height=&quot;38&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w0Ypw/btsKAFXTKBm/LEnVikoayRc9UpmgWtgitk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w0Ypw/btsKAFXTKBm/LEnVikoayRc9UpmgWtgitk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w0Ypw/btsKAFXTKBm/LEnVikoayRc9UpmgWtgitk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw0Ypw%2FbtsKAFXTKBm%2FLEnVikoayRc9UpmgWtgitk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;217&quot; height=&quot;216&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;315&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqve1W/btsKBn94qV0/TbNT87UgPzJRNXnKCMFUK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqve1W/btsKBn94qV0/TbNT87UgPzJRNXnKCMFUK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqve1W/btsKBn94qV0/TbNT87UgPzJRNXnKCMFUK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqve1W%2FbtsKBn94qV0%2FTbNT87UgPzJRNXnKCMFUK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;430&quot; height=&quot;193&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;315&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시뮬레이션에선 다음과 같이 행렬로 표현해서 사용해도 되지만, 실제 코드로 작성할 때는 연립방정식을 이용해서 풀도록 하자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chLQMF/btsKzmk0wMD/RKbLz1D8cWn3JtCS3aoiiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chLQMF/btsKzmk0wMD/RKbLz1D8cWn3JtCS3aoiiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chLQMF/btsKzmk0wMD/RKbLz1D8cWn3JtCS3aoiiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchLQMF%2FbtsKzmk0wMD%2FRKbLz1D8cWn3JtCS3aoiiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;387&quot; height=&quot;154&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이어서 7차 다항식도 첨부한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7차 다항식에는 &quot;저크&quot;라는 개념이 포함되는데, 가속도를 미분한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저크로 인해 가속도 파형의 차수가 높아져서 모션의 시작과 끝에서 가속도가 완만하게 변하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 로봇이 부드럽게 가속하고 감속하는데 도움을 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 모션의 시작과 끝에서 로봇의 진동을 줄이기 위함이다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;50&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qO6wB/btsKzU86vCH/AiXwnJIR2Px7Kxeb5iES31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qO6wB/btsKzU86vCH/AiXwnJIR2Px7Kxeb5iES31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qO6wB/btsKzU86vCH/AiXwnJIR2Px7Kxeb5iES31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqO6wB%2FbtsKzU86vCH%2FAiXwnJIR2Px7Kxeb5iES31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;463&quot; height=&quot;39&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;50&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lzJB4/btsKBhB9CHt/op8GvUXk4FBmkSORIhHTSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lzJB4/btsKBhB9CHt/op8GvUXk4FBmkSORIhHTSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lzJB4/btsKBhB9CHt/op8GvUXk4FBmkSORIhHTSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlzJB4%2FbtsKBhB9CHt%2Fop8GvUXk4FBmkSORIhHTSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;187&quot; height=&quot;242&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YKw5f/btsKBlxMRaH/fU1OQBhcEixasTFxYjykfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YKw5f/btsKBlxMRaH/fU1OQBhcEixasTFxYjykfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YKw5f/btsKBlxMRaH/fU1OQBhcEixasTFxYjykfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYKw5f%2FbtsKBlxMRaH%2FfU1OQBhcEixasTFxYjykfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;542&quot; height=&quot;261&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bskKpZ/btsKzhjHtJ8/cA5acindU6CIDtu8jtwxlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bskKpZ/btsKzhjHtJ8/cA5acindU6CIDtu8jtwxlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bskKpZ/btsKzhjHtJ8/cA5acindU6CIDtu8jtwxlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbskKpZ%2FbtsKzhjHtJ8%2FcA5acindU6CIDtu8jtwxlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;212&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 다항식의 계수는 인공지능한테 물어보도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5차 다항식까지는 계산해볼만 하지만 7차는 좀...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7차 다항식의 계수는 풀이에 따라 여러 해가 나오는 듯 하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 시뮬레이션 해보니 계수가 조금 다를지라도 결과는 거의 차이 없는 것처럼 보인다.&lt;/p&gt;</description>
      <category>경로 생성</category>
      <category>가속도</category>
      <category>경로생성</category>
      <category>궤적</category>
      <category>다항식</category>
      <category>로봇공학</category>
      <category>모션제어</category>
      <category>저크</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/66</guid>
      <comments>https://zin9.tistory.com/66#entry66comment</comments>
      <pubDate>Thu, 7 Nov 2024 19:12:50 +0900</pubDate>
    </item>
    <item>
      <title>현대제어 2부 - 속도 관측기 설계</title>
      <link>https://zin9.tistory.com/65</link>
      <description>&lt;figure id=&quot;og_1718184801999&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;현대제어 1부&quot; data-og-description=&quot;고전제어 2부고전제어 1부... 현대제어와의 차이제어기 설계에 필요한 제어 이론에는 고전제어와 현대제어가 있다.&amp;nbsp;고전제어에서는 시스템을 단일 입력과 단일 출력의 전달함수로 나타낸다.그&quot; data-og-host=&quot;zin9.tistory.com&quot; data-og-source-url=&quot;https://zin9.tistory.com/64&quot; data-og-url=&quot;https://zin9.tistory.com/64&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bc5squ/hyWllsyyUb/CyjNtss7z9orpp1ASYKhJ0/img.png?width=753&amp;amp;height=323&amp;amp;face=0_0_753_323,https://scrap.kakaocdn.net/dn/eEBw0/hyWlbpWXTy/veTLQKNCWi0BbwAW6ENzPk/img.png?width=753&amp;amp;height=323&amp;amp;face=0_0_753_323,https://scrap.kakaocdn.net/dn/jZXVY/hyWlnjDwgM/sm0Ok71SHlNrUtstSq5sxk/img.png?width=740&amp;amp;height=335&amp;amp;face=0_0_740_335&quot;&gt;&lt;a href=&quot;https://zin9.tistory.com/64&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zin9.tistory.com/64&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bc5squ/hyWllsyyUb/CyjNtss7z9orpp1ASYKhJ0/img.png?width=753&amp;amp;height=323&amp;amp;face=0_0_753_323,https://scrap.kakaocdn.net/dn/eEBw0/hyWlbpWXTy/veTLQKNCWi0BbwAW6ENzPk/img.png?width=753&amp;amp;height=323&amp;amp;face=0_0_753_323,https://scrap.kakaocdn.net/dn/jZXVY/hyWlnjDwgM/sm0Ok71SHlNrUtstSq5sxk/img.png?width=740&amp;amp;height=335&amp;amp;face=0_0_740_335');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;현대제어 1부&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;고전제어 2부고전제어 1부... 현대제어와의 차이제어기 설계에 필요한 제어 이론에는 고전제어와 현대제어가 있다.&amp;nbsp;고전제어에서는 시스템을 단일 입력과 단일 출력의 전달함수로 나타낸다.그&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zin9.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 글이 조금 길 것이므로 미리 구성을 설명한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 비례게인 L 계산&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 관측기의 물리적 이해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 관측기의 게인 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 비례게인 L 계산&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;루엔버거 관측기의 행렬식을 세우면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1617&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXbzCp/btsHXRFGwKF/gmKnUsrG4T60CKZ8kR5gqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXbzCp/btsHXRFGwKF/gmKnUsrG4T60CKZ8kR5gqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXbzCp/btsHXRFGwKF/gmKnUsrG4T60CKZ8kR5gqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXbzCp%2FbtsHXRFGwKF%2FgmKnUsrG4T60CKZ8kR5gqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1617&quot; height=&quot;193&quot; data-origin-width=&quot;1617&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 식을 그림으로 나타내면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1577&quot; data-origin-height=&quot;954&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BKC5m/btsH1nEHn9H/BbX1dDakQcCzVfnkH8uR00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BKC5m/btsH1nEHn9H/BbX1dDakQcCzVfnkH8uR00/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. 루엔버거 관측기의 블록도&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BKC5m/btsH1nEHn9H/BbX1dDakQcCzVfnkH8uR00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBKC5m%2FbtsH1nEHn9H%2FBbX1dDakQcCzVfnkH8uR00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;339&quot; data-origin-width=&quot;1577&quot; data-origin-height=&quot;954&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. 루엔버거 관측기의 블록도&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행렬식을 정리하면 아래와 같이 되고, G1과 w의 항이 추가된다(외란과 관련된 항이다)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZJ8Ol/btsHW5EIfWh/jol9ikzL2yjan3EAqDz620/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZJ8Ol/btsHW5EIfWh/jol9ikzL2yjan3EAqDz620/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZJ8Ol/btsHW5EIfWh/jol9ikzL2yjan3EAqDz620/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZJ8Ol%2FbtsHW5EIfWh%2Fjol9ikzL2yjan3EAqDz620%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;239&quot; height=&quot;38&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오차 관련 항인 G1w의 영향을 작게 하기 위해 아래와 같은 특성 방정식이 0이 되도록 하는 근이 3개가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특성 방정식은 3차이므로 3x3 행렬의 고유값을 구하면 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계산 과정은 생략하니 직접 해봐도 좋다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eLjXxs/btsHXnZo1L4/MwoM8wVOf1b0wqOiGWk9RK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eLjXxs/btsHXnZo1L4/MwoM8wVOf1b0wqOiGWk9RK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eLjXxs/btsHXnZo1L4/MwoM8wVOf1b0wqOiGWk9RK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeLjXxs%2FbtsHXnZo1L4%2FMwoM8wVOf1b0wqOiGWk9RK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;229&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특성 방정식의 근의 값은 속도 제어기의 대역폭의 3~5배정도로 충분히 높게 설정해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;beta;값이 너무 작으면 값의 수렴속도가 느려진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;반대로 너무 크면 측정상의 잡음 또는 모델링 오차가 발생하거나 관측기가 불안정해질 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특성 방정식의 근을 3중근으로 하면 계산이나 조정 과정이 간단해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시뮬레이션에 사용한 관측기는 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CmAs4/btsHZWV7zui/kkZyZSgHFFqf9ztaGgY9gK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CmAs4/btsHZWV7zui/kkZyZSgHFFqf9ztaGgY9gK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. 관측기 설계&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CmAs4/btsHZWV7zui/kkZyZSgHFFqf9ztaGgY9gK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCmAs4%2FbtsHZWV7zui%2FkkZyZSgHFFqf9ztaGgY9gK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1144&quot; height=&quot;488&quot; data-origin-width=&quot;1144&quot; data-origin-height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. 관측기 설계&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;관측기를 설계해서 서로 다른 3개의 근으로 할 때와 3중근으로 할 때의 차이를 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 3중근으로 한 경우&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;좌측은 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;중근을 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-100Hz&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로 둔 것이고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;우측은 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;중근을 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-200Hz&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;으로 둔 것이다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;3중근의 값이 클수록(=s-평면에서 원점으로부터 왼쪽으로 멀어지므로) 속도를 빠르게 추종함을 알 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;(그림 2에서는 속도지령이 ramp지만, 편의상 step으로 바꿔서 파형을 비교한다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1881&quot; data-origin-height=&quot;769&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2sfj9/btsHZVQscCf/QZ0HNoukzKnuvdZwAKG5M0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2sfj9/btsHZVQscCf/QZ0HNoukzKnuvdZwAKG5M0/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. 3중근을 가진 경우 비교&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2sfj9/btsHZVQscCf/QZ0HNoukzKnuvdZwAKG5M0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2sfj9%2FbtsHZVQscCf%2FQZ0HNoukzKnuvdZwAKG5M0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1881&quot; height=&quot;769&quot; data-origin-width=&quot;1881&quot; data-origin-height=&quot;769&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. 3중근을 가진 경우 비교&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 서로 다른 근을 가진 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;좌측은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;중근을&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-100Hz&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로 둔 것이고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;우측은&lt;span&gt; 각각&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-400Hz, -100Hz, -100Hz&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;으로 둔 것이다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;어떻게 조정하는 게 좋은지는 필자도 아직 잘 모르기에, 편의상 3중근으로 조정해놓고 사용하자.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1844&quot; data-origin-height=&quot;767&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wO9o7/btsH0Daq9CV/rUYsqWrAA2h1r6843ESnZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wO9o7/btsH0Daq9CV/rUYsqWrAA2h1r6843ESnZk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. 서로 다른 근을 가진 경우 비교&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wO9o7/btsH0Daq9CV/rUYsqWrAA2h1r6843ESnZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwO9o7%2FbtsH0Daq9CV%2FrUYsqWrAA2h1r6843ESnZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1844&quot; height=&quot;767&quot; data-origin-width=&quot;1844&quot; data-origin-height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. 서로 다른 근을 가진 경우 비교&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;※ 시뮬레이션 분석&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;①속도&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;10rad/s, B=0.01&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이므로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;점성마찰토크는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0.1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;②추정 부하 토크 TL_&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;hat&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 아닌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0.9(=1-0.1)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;으로 나타난다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;rarr;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부하토크에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;점성마찰토크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;만큼의&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;오차가 존재한다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;rarr; 점성마찰계수가 크고 속도가 빠른 시스템에서는 오차가 더욱 커진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;beta;1, &amp;beta;2, &amp;beta;3 값에 따른 근의 위치를 살펴보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예상하다시피 값이 커질수록 좌반면으로 이동하는 경향이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때, 영점은 허수부의 값이 점점 커지므로 시스템이 불안정하게 될 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;879&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CbO0s/btsH1iDwFNW/u1dEpkNzk8iKhrkdV38Bo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CbO0s/btsH1iDwFNW/u1dEpkNzk8iKhrkdV38Bo1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. &amp;amp;beta;에 따른 근의 위치&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CbO0s/btsH1iDwFNW/u1dEpkNzk8iKhrkdV38Bo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCbO0s%2FbtsH1iDwFNW%2Fu1dEpkNzk8iKhrkdV38Bo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;520&quot; height=&quot;366&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;879&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. &amp;beta;에 따른 근의 위치&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또는 아래에서 소개하는 전달함수의 크기를 구함으로써 계산할 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 아래의 '3. 관측기의 게인 설정'의 맨 아래에서 설명하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 관측기의 물리적인 이해&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1의 관측기를 그림 6과 같이 나타내면 마치 PID 제어기의 형태로 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 6 (a)은 기존 관측기 형태이고 마치 PI 제어기와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 6 (b)는 l1의 위치를 바꿔서 PID 제어기 형태로 만든 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 기존의 PID 제어기와 유사하게 게인값을 조정할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;교재에서는 그림 6 (a)의 형태로 해석하는데, 추정 속도의 기준을 2가지로 다르게 설정할 수 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(그림 8에서 추정 속도의 위치를 조정하기 위함이므로 천천히 알아보자.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1977&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qKD8K/btsHZJQlnLB/W5xgqz6TaMoSWct1zvH7Qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qKD8K/btsHZJQlnLB/W5xgqz6TaMoSWct1zvH7Qk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 6. 관측기의 PID 제어기 형태로의 해석&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qKD8K/btsHZJQlnLB/W5xgqz6TaMoSWct1zvH7Qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqKD8K%2FbtsHZJQlnLB%2FW5xgqz6TaMoSWct1zvH7Qk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1977&quot; height=&quot;602&quot; data-origin-width=&quot;1977&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 6. 관측기의 PID 제어기 형태로의 해석&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 나타내면 그림 7이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;K1, K2, K3를 각각 미분게인, 비례게인, 적분게인으로 하여 관측기의 성능을 조절할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1070&quot; data-origin-height=&quot;553&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vp4Am/btsH0ZYAZZY/bkgisPfRJHt7tUmX7eZEYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vp4Am/btsH0ZYAZZY/bkgisPfRJHt7tUmX7eZEYK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 7. 속도 관측기의 PID 제어기 형태로의 변환&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vp4Am/btsH0ZYAZZY/bkgisPfRJHt7tUmX7eZEYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvp4Am%2FbtsH0ZYAZZY%2FbkgisPfRJHt7tUmX7eZEYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;300&quot; data-origin-width=&quot;1070&quot; data-origin-height=&quot;553&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 7. 속도 관측기의 PID 제어기 형태로의 변환&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 7에서 측정각에 대한 추정각을 전달함수를 구하면 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;낮은 주파수 영역에서는 전달함수의 크기가 1이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 추정한 기계계의 제정수 J와 B 값이 실제값과 다르더라도 추정각이 측정각과 거의 동일함을 의미한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pO0YJ/btsHZyBtRKs/uYKwcgIKDYgppoIyOEWUN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pO0YJ/btsHZyBtRKs/uYKwcgIKDYgppoIyOEWUN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pO0YJ/btsHZyBtRKs/uYKwcgIKDYgppoIyOEWUN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpO0YJ%2FbtsHZyBtRKs%2FuYKwcgIKDYgppoIyOEWUN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;201&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 추정한 J와 l1의 곱이 B보다 크게 설정한 경우, 높은 주파수 영역에서만 전달함수가 1이 아니게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 낮은 주파수 영역에서는 전달함수의 크기가 거의 1이 되어 추정각이 측정각과 거의 유사하게 됨을 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1013&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zqRpB/btsHZZMfOAh/lmG00OIxguzrrwrRzsak81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zqRpB/btsHZZMfOAh/lmG00OIxguzrrwrRzsak81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zqRpB/btsHZZMfOAh/lmG00OIxguzrrwrRzsak81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzqRpB%2FbtsHZZMfOAh%2FlmG00OIxguzrrwrRzsak81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;78&quot; data-origin-width=&quot;1013&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;측정속도와 추정속도에 대한 전달함수도 아래와 같이 구할 수 있다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;위에서 구한 '측정각과 추정각에 대한 전달함수'와 동일하게 하기 위해 그림 8와 같이 바꾸보자.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이로써 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;'측정각과 추정각에 대한 전달함수' = '측정&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;속도와 추정속도에 대한 전달함수'가 된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;867&quot; data-origin-height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gv4OP/btsH0Y6Cjxt/pyKgXGcKHs6ZghJCRGFn31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gv4OP/btsH0Y6Cjxt/pyKgXGcKHs6ZghJCRGFn31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gv4OP/btsH0Y6Cjxt/pyKgXGcKHs6ZghJCRGFn31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGv4OP%2FbtsH0Y6Cjxt%2FpyKgXGcKHs6ZghJCRGFn31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;251&quot; data-origin-width=&quot;867&quot; data-origin-height=&quot;399&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhxQW3/btsH0OwfRx5/eYz44ntKQlTRseFtv9OaH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhxQW3/btsH0OwfRx5/eYz44ntKQlTRseFtv9OaH1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 8. 추정속도의 위치를 변경&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhxQW3/btsH0OwfRx5/eYz44ntKQlTRseFtv9OaH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhxQW3%2FbtsH0OwfRx5%2FeYz44ntKQlTRseFtv9OaH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;595&quot; height=&quot;245&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 8. 추정속도의 위치를 변경&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이번에도 '낮은 주파수 영역'에서는 제정수 오차에 강인한 속도 추정이 가능하다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다만, K1이 포함된 측정 오차가 속도 추정치에 영향을 주므로, 추정된 속도가 위치 측정 잡음에 민감해지는 단점이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3. 관측기의 게인 설정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;theta;rm을 생성하는 순서이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1) 원하는 관측기의 대역폭의 10% 정도의 주파수로 설정한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;rarr; 원하는 대역폭을 50[Hz]으로 가정한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2) 구형파의 크기는 측정 범위를 벗어나지 않도록 지속적으로 조정한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;text-align: start; color: #ee2323;&quot;&gt;&amp;rarr; 구형파의 진폭은 0부터 10[rad]으로 한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조정 순서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서 1) 모든 게인 및 Te를 0으로 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;순서&lt;/span&gt;&amp;nbsp;2) 약 10% 내외의 오버슈트가 생길 때까지 비례 게인 K2를 증가시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;순서&lt;/span&gt;&amp;nbsp;3) K2를 고정시키고, 대부분의 오버슈트가 없어지도록 미분 게인 K1를 증가시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;순서&lt;/span&gt;&amp;nbsp;4) K2과 K1을 고정시키고, 약 10% 내외의 오버슈트가 생기도록 적분 게인 K3을 증가시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;순서&lt;/span&gt;&amp;nbsp;5) 입력을 제어 대상 시스템에서 받고, 전향 보상항 Te도 제어기 출력에서 받는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;순서&lt;/span&gt;&amp;nbsp;6) 실제 운전 상황에서 관측기의 입력/출력 특성을 보아가며 게인 값을 미세조정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자, 시뮬레이션으로 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대역폭을 더 높여서 해보고 싶지만, PWM 생성에서 5Hz정도로 해야만 오버슈트를 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서 2) K2 = 0.8으로 하면 오버슈트가 약 10%정도 생긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서 3) K1 = 500으로 하면 오버슈트가 거의 없어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서 4) K3 = 500으로 하면 오버슈트가 약 10% 정도로 생긴다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1902&quot; data-origin-height=&quot;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcctCJ/btsH1hrdPtG/U1iZVqyHVYgTEwRfXtPJaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcctCJ/btsH1hrdPtG/U1iZVqyHVYgTEwRfXtPJaK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 9. 관측기의 게인 조정&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcctCJ/btsH1hrdPtG/U1iZVqyHVYgTEwRfXtPJaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcctCJ%2FbtsH1hrdPtG%2FU1iZVqyHVYgTEwRfXtPJaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1902&quot; height=&quot;410&quot; data-origin-width=&quot;1902&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 9. 관측기의 게인 조정&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서 5) 구성된 시뮬레이션 블록은 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0.5초에 0.1Nm의 외란 토크가 step 응답의 형태로 입력된 상황을 가정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;584&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bF79O4/btsHZ5yNFyq/F0l85650tt5d8aGMCOAS9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bF79O4/btsHZ5yNFyq/F0l85650tt5d8aGMCOAS9k/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 10. 시뮬레이션 블록&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bF79O4/btsHZ5yNFyq/F0l85650tt5d8aGMCOAS9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF79O4%2FbtsHZ5yNFyq%2FF0l85650tt5d8aGMCOAS9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1118&quot; height=&quot;584&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;584&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 10. 시뮬레이션 블록&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;순서 6) 외란토크가 입력되었으나, 실제 속도값(파랑)과 추정 속도값(주황)은 동일하게 나타난다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(그림 11에서는 실제 속도값(파랑)이 추정 속도값(주황)와 동일하므로 가려졌다.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;965&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NcQ4c/btsHZSGuJdi/bD2Wywtwk87PXLFXHUi8tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NcQ4c/btsHZSGuJdi/bD2Wywtwk87PXLFXHUi8tk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 11. 관측기 성능&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NcQ4c/btsHZSGuJdi/bD2Wywtwk87PXLFXHUi8tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNcQ4c%2FbtsHZSGuJdi%2FbD2Wywtwk87PXLFXHUi8tk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;438&quot; height=&quot;463&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;965&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 11. 관측기 성능&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이로써 관측기의 성능 검증까지 완료되었다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;※ 비례 게인 L의 계산 방법&lt;br /&gt;위의 시뮬레이션에서 K1, K2, K3은 각각 500, 0.8, 500이다.&lt;br /&gt;그림 10에서 사용한 모터의 관성모멘트 J는 0.0001이다.&lt;br /&gt;따라서, l1 = 500, l2 = 8000, l3 = -500이 된다.&lt;br /&gt;그렇다면 역으로 &amp;beta;1, &amp;beta;2, &amp;beta;3을 구할 수 있다.&lt;br /&gt;따라서, &amp;beta;1 = -100, &amp;beta;2 = -250 - 50&amp;radic;5, &amp;beta;3 = -250 + 50&amp;radic;5 가 된다.&lt;br /&gt;&lt;br /&gt;추가)&lt;br /&gt;루트가 보기 불편하므로, &amp;beta;2와 &amp;beta;3를 -200인 2중근으로 해보자.&lt;br /&gt;(2차 방정식이 s&amp;sup2;+500s+50000=0이므로)&lt;br /&gt;그렇다면 l1 = 400, l2 = 40000, l3 = -400이 된다.&lt;br /&gt;이것을 게인으로 변환하면, K1 = 400, K2 = 4, K3 = 400이 된다.&lt;br /&gt;비례게인이 다소 커졌으나, 그 결과는 그림 11과 거의 똑같다.&lt;br /&gt;다만 3개의 근에 허수부가 없다는 장점이 생겼다.&lt;br /&gt;어느정도의 허수부가 불편하다면 이렇게 반복작업을 통해 없앨 수 있을 것이다.&lt;br /&gt;작은 허수부는 시스템의 안정성에 영향을 미치진 않겠지만...&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이상 길었던 속도 관측기 설계를 마친다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다음 시간에는 외란관측기에 대해 알아본다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;출처: 전기기기제어론 4.3.3 상태 관측기를 이용한 속도의 추정&lt;/span&gt;&lt;/p&gt;</description>
      <category>제어이론</category>
      <category>Simulink</category>
      <category>고전제어</category>
      <category>관측기</category>
      <category>루엔버거</category>
      <category>속도제어기</category>
      <category>속도추정</category>
      <category>시뮬레이션</category>
      <category>안정성</category>
      <category>현대제어</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/65</guid>
      <comments>https://zin9.tistory.com/65#entry65comment</comments>
      <pubDate>Sun, 16 Jun 2024 00:40:41 +0900</pubDate>
    </item>
    <item>
      <title>현대제어 1부 - 관측기의 이해</title>
      <link>https://zin9.tistory.com/64</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1717910606449&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;고전제어 2부&quot; data-og-description=&quot;고전제어 1부... 현대제어와의 차이제어기 설계에 필요한 제어 이론에는 고전제어와 현대제어가 있다.&amp;nbsp;고전제어에서는 시스템을 단일 입력과 단일 출력의 전달함수로 나타낸다.그리고 영점과 &quot; data-og-host=&quot;zin9.tistory.com&quot; data-og-source-url=&quot;https://zin9.tistory.com/63&quot; data-og-url=&quot;https://zin9.tistory.com/63&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/QqcBw/hyWlj10cBI/QFn6K9k7jjZKwfRmmCDZ4K/img.png?width=800&amp;amp;height=297&amp;amp;face=0_0_800_297,https://scrap.kakaocdn.net/dn/ZFupd/hyWlfrLjdI/MvndctgkUMPcYDrIybFRg1/img.png?width=800&amp;amp;height=297&amp;amp;face=0_0_800_297,https://scrap.kakaocdn.net/dn/ukSsz/hyWg21Vz4o/sTDVLTEkQEZsJvkcNoK5Lk/img.png?width=1391&amp;amp;height=518&amp;amp;face=0_0_1391_518&quot;&gt;&lt;a href=&quot;https://zin9.tistory.com/63&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zin9.tistory.com/63&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/QqcBw/hyWlj10cBI/QFn6K9k7jjZKwfRmmCDZ4K/img.png?width=800&amp;amp;height=297&amp;amp;face=0_0_800_297,https://scrap.kakaocdn.net/dn/ZFupd/hyWlfrLjdI/MvndctgkUMPcYDrIybFRg1/img.png?width=800&amp;amp;height=297&amp;amp;face=0_0_800_297,https://scrap.kakaocdn.net/dn/ukSsz/hyWg21Vz4o/sTDVLTEkQEZsJvkcNoK5Lk/img.png?width=1391&amp;amp;height=518&amp;amp;face=0_0_1391_518');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;고전제어 2부&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;고전제어 1부... 현대제어와의 차이제어기 설계에 필요한 제어 이론에는 고전제어와 현대제어가 있다.&amp;nbsp;고전제어에서는 시스템을 단일 입력과 단일 출력의 전달함수로 나타낸다.그리고 영점과&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zin9.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고전제어에 이어 현대제어를 간단히 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 전에 명심해야 할 것은, 모터제어기설계에 있어 고전제어 또는 현대제어만 하는 것이 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고전제어와 현대제어를 적절히 섞어 사용하여 최적의 제어기를 설계하는 것이 목적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현대제어에서는 상태 변수로 시스템의 방정식을 세운다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 변수가 1개 이상인 상태 변수를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위치, 속도, 부하토크로 이루어진 상태 변수를 사용하여 상태 관측기를 설계할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책에서는 &quot;전차원 관측기&quot;를 소개하는데, 그 의미를 설명하지 않고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;전차원 관측기&quot;는 모든 상태변수를 추정하는 관측기를 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 전차원 관측기(Full Order Observer)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;들어가기에 앞서 기호에 대한 설명을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태 변수 벡터인 x에 대해서 가운데 문자의 모자는 추정치를 의미하고, 오른쪽의 물결무늬는 추정된 상태의 오차를 나타낸다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vx2vF/btsHS1cphQp/WC1sYfmywl9TscveRC5k3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vx2vF/btsHS1cphQp/WC1sYfmywl9TscveRC5k3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vx2vF/btsHS1cphQp/WC1sYfmywl9TscveRC5k3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVx2vF%2FbtsHS1cphQp%2FWC1sYfmywl9TscveRC5k3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;179&quot; height=&quot;41&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 시스템은 아래와 같이 표현한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tQfuw/btsHSCxedXK/2UuJcxbUrAHaKSaRoQmcCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tQfuw/btsHSCxedXK/2UuJcxbUrAHaKSaRoQmcCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tQfuw/btsHSCxedXK/2UuJcxbUrAHaKSaRoQmcCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtQfuw%2FbtsHSCxedXK%2F2UuJcxbUrAHaKSaRoQmcCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;154&quot; height=&quot;39&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A는 시스템의 행렬, B는 입력 행렬, u는 시스템의 입력이다. &lt;br /&gt;u는 이 시스템의 제어 입력으로, 속도제어기의 출력(=토크 지령)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태 변수 벡터 x의 초기값 x(0)를 알고 있으면, 추정치의 초기값을 x(0)로 설정함으로써 만족스러운 관측기를 구성할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;관측기가 동작하기 전에 추정치의 초기값을 x(0)으로 하는 편이 좋다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;상태 변수 x, 시스템 행렬 A와 입력 행렬 B를 얻는 과정은 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;우선 상태 변수를 정의하고, 모터의 운동방정식으로부터 행렬식을 세운다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;상태 변수 x는 현재위치, 현재속도, 부하토크를 변수로 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uur2A/btsPDWA4NP2/Hh8DCPQRU8Er8FXiEJHHc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uur2A/btsPDWA4NP2/Hh8DCPQRU8Er8FXiEJHHc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uur2A/btsPDWA4NP2/Hh8DCPQRU8Er8FXiEJHHc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuur2A%2FbtsPDWA4NP2%2FHh8DCPQRU8Er8FXiEJHHc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;530&quot; height=&quot;213&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 정리하면, 시스템 행렬 A와 입력 행렬 B를 얻을 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5z9bZ/btsPEqveGED/ipV8YYa5msfpn8lVzc3Lw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5z9bZ/btsPEqveGED/ipV8YYa5msfpn8lVzc3Lw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5z9bZ/btsPEqveGED/ipV8YYa5msfpn8lVzc3Lw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5z9bZ%2FbtsPEqveGED%2FipV8YYa5msfpn8lVzc3Lw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;278&quot; height=&quot;106&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종합하면 다음과 같은 수식이 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lfIpj/btsPFXZJ5yx/MiIH5EpD88dpeAruikgblK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lfIpj/btsPFXZJ5yx/MiIH5EpD88dpeAruikgblK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lfIpj/btsPFXZJ5yx/MiIH5EpD88dpeAruikgblK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlfIpj%2FbtsPFXZJ5yx%2FMiIH5EpD88dpeAruikgblK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;138&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 시스템이 의미하는 바는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 현재 토크를 시스템의 제어 입력으로 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;현재 토크에 따라, 상태 변수인 x가 갱신된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 모터의 시스템 행렬인 A는 모터의 관성모멘트 J와 점성마찰계수 B를 포함한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; J와 B는 모터 사양이므로, 우리가 &quot;알고 있는&quot; 값이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 좌측 항인 상태 변수 x_dot 의 미분 벡터를 적분하면 현재 상태 변수 x가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 시스템 행렬로 얻을 수 있는 결론은 무엇일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행렬 A의 고유값의 절대값이 작으면, 수렴 속도는 느려진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 시스템이 빠르게 수렴하려면 행렬 A의 고유값의 절대값이 커야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;※ 고유값 풀어보기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;A가 어떻게 나오는지는 나중에 설명하고, A의 고유값의 절대값이 작아지려면 J가 크거나 B가 작아야 한다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;점성마찰계수 B는 예측이 다소 어렵기 때문에, 관성모멘트 J가 크면 수렴 속도가 낮아진다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;관성모멘트가 크다는 것은 관성이 크다는 것이므로, 응답이 느려질 것이므로 수렴 속도가 낮아질 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;93&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1xz1w/btsHTm8lHW3/XtZBPLHMC342nIhBnuiPak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1xz1w/btsHTm8lHW3/XtZBPLHMC342nIhBnuiPak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1xz1w/btsHTm8lHW3/XtZBPLHMC342nIhBnuiPak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1xz1w%2FbtsHTm8lHW3%2FXtZBPLHMC342nIhBnuiPak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;513&quot; height=&quot;62&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;93&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 루엔버거 관측기(Luenberger Observer)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 관측기는 전차원 관측기의 한 종류로, 추정된 상태와 측정된 상태의 오차를 궤환하여 상태 추정 모델을 연속적으로 수정해 나가는 관측기이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설명하기 전에 상태 방정식을 정리한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수에 모자가 있는 이유는 상태 관측기를 통해 추정해야 한다는 의미이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;J와 B 또한 기계 시스템의 값을 추정해서 입력해줘야 하므로 기호에 모자가 붙어있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;335&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d3OIsf/btsHSXumijy/96jFT0VN3V7Oq9W5zbLLeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d3OIsf/btsHSXumijy/96jFT0VN3V7Oq9W5zbLLeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d3OIsf/btsHSXumijy/96jFT0VN3V7Oq9W5zbLLeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd3OIsf%2FbtsHSXumijy%2F96jFT0VN3V7Oq9W5zbLLeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;246&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;335&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;루엔버거관측기의 수식과 그림은 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/demz9q/btsHUzMAmSZ/AzApiS24EkpfZFsnFDKpSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/demz9q/btsHUzMAmSZ/AzApiS24EkpfZFsnFDKpSk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. 루엔버거 관측기&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/demz9q/btsHUzMAmSZ/AzApiS24EkpfZFsnFDKpSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdemz9q%2FbtsHUzMAmSZ%2FAzApiS24EkpfZFsnFDKpSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;377&quot; height=&quot;317&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;317&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. 루엔버거 관측기&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L은 비례 게인으로 만족스러운 추정 오차 특성을 얻기 위해 설계자가 설정하는 값이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1으로부터 오차에 대한 상태 방정식을 구하면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvsR1C/btsHU6wcedS/APGIneHP60sug2CAKPkOZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvsR1C/btsHU6wcedS/APGIneHP60sug2CAKPkOZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvsR1C/btsHU6wcedS/APGIneHP60sug2CAKPkOZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvsR1C%2FbtsHU6wcedS%2FAPGIneHP60sug2CAKPkOZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;154&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 G1은 외란이 상태 변수 추정에 미치는 영향을 나타낸 행렬이고, w는 시스템의 외란을 나타낸 행렬이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외란이 있더라도 오차를 허용할 만큼 작게 하게 위해선, 아래의 특성방정식의 해를 구하여 비례 게인 L의 값을 정하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특성방정식은 3차 함수로 나타나며, 총 3개의 해가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계수를 비교하여 비례 게인 L의 값을 구할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVS6OE/btsHTF0Qv4H/FFCaehfxsQuKxzyWiyKfs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVS6OE/btsHTF0Qv4H/FFCaehfxsQuKxzyWiyKfs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVS6OE/btsHTF0Qv4H/FFCaehfxsQuKxzyWiyKfs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVS6OE%2FbtsHTF0Qv4H%2FFFCaehfxsQuKxzyWiyKfs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;340&quot; height=&quot;82&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2부에서는 비례 게인 L의 계산, 전차원 관측기의 물리적 이해, 외란 관측기에 대해 알아본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처: 전기기기제어론 4.3.3 상태 관측기를 이용한 속도의 추정&lt;/p&gt;</description>
      <category>제어이론</category>
      <category>고유값</category>
      <category>관측기</category>
      <category>루엔버거</category>
      <category>상태 방정식</category>
      <category>상태 변수</category>
      <category>전차원 관측기</category>
      <category>특성 방정식</category>
      <category>현대제어</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/64</guid>
      <comments>https://zin9.tistory.com/64#entry64comment</comments>
      <pubDate>Mon, 10 Jun 2024 21:02:50 +0900</pubDate>
    </item>
    <item>
      <title>고전제어 2부</title>
      <link>https://zin9.tistory.com/63</link>
      <description>&lt;figure id=&quot;og_1717901576107&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;고전제어 1부... 현대제어와의 차이&quot; data-og-description=&quot;제어기 설계에 필요한 제어 이론에는 고전제어와 현대제어가 있다.&amp;nbsp;고전제어에서는 시스템을 단일 입력과 단일 출력의 전달함수로 나타낸다.그리고 영점과 극점으로 시스템을 조정하며, 해석&quot; data-og-host=&quot;zin9.tistory.com&quot; data-og-source-url=&quot;https://zin9.tistory.com/62&quot; data-og-url=&quot;https://zin9.tistory.com/62&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/uCVK1/hyWg0QzVez/zJM5w4XUZBfOkFmej9lEB1/img.png?width=254&amp;amp;height=83&amp;amp;face=0_0_254_83,https://scrap.kakaocdn.net/dn/crwpe3/hyWhaTc2LJ/eEUzZKq5k7X45O5eYAtOHK/img.png?width=254&amp;amp;height=83&amp;amp;face=0_0_254_83,https://scrap.kakaocdn.net/dn/gDT4o/hyWljOscce/7D60yqAfdD8iOWVkK1hJP0/img.png?width=1129&amp;amp;height=425&amp;amp;face=0_0_1129_425&quot;&gt;&lt;a href=&quot;https://zin9.tistory.com/62&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zin9.tistory.com/62&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/uCVK1/hyWg0QzVez/zJM5w4XUZBfOkFmej9lEB1/img.png?width=254&amp;amp;height=83&amp;amp;face=0_0_254_83,https://scrap.kakaocdn.net/dn/crwpe3/hyWhaTc2LJ/eEUzZKq5k7X45O5eYAtOHK/img.png?width=254&amp;amp;height=83&amp;amp;face=0_0_254_83,https://scrap.kakaocdn.net/dn/gDT4o/hyWljOscce/7D60yqAfdD8iOWVkK1hJP0/img.png?width=1129&amp;amp;height=425&amp;amp;face=0_0_1129_425');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;고전제어 1부... 현대제어와의 차이&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;제어기 설계에 필요한 제어 이론에는 고전제어와 현대제어가 있다.&amp;nbsp;고전제어에서는 시스템을 단일 입력과 단일 출력의 전달함수로 나타낸다.그리고 영점과 극점으로 시스템을 조정하며, 해석&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zin9.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 시간에는 MATLAB/Simulink로 PI게인에 따른 근궤적의 변화를 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1을 보면 빨간 원 안에 조그만 화살표를 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 각 블록을 잇는 선을 선택하고 우클릭하여 [선형분석점]을 누르면, [개루프 입력] 또는 [출력 측정]을 선택하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Simulink 옵션에 따라 없을 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1391&quot; data-origin-height=&quot;518&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oFBYK/btsHTe2oeCm/XFiuMnhPN3KG4alh8KJz21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oFBYK/btsHTe2oeCm/XFiuMnhPN3KG4alh8KJz21/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. 위치-속도 제어 시스템&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oFBYK/btsHTe2oeCm/XFiuMnhPN3KG4alh8KJz21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoFBYK%2FbtsHTe2oeCm%2FXFiuMnhPN3KG4alh8KJz21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1391&quot; height=&quot;518&quot; data-origin-width=&quot;1391&quot; data-origin-height=&quot;518&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. 위치-속도 제어 시스템&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mOgLz/btsHSamuydL/CxhIupu00ApY7FKorXc7eK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mOgLz/btsHSamuydL/CxhIupu00ApY7FKorXc7eK/img.png&quot; data-alt=&quot;&amp;amp;lt;시뮬레이션 파라미터&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mOgLz/btsHSamuydL/CxhIupu00ApY7FKorXc7eK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmOgLz%2FbtsHSamuydL%2FCxhIupu00ApY7FKorXc7eK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;254&quot; height=&quot;213&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;시뮬레이션 파라미터&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 결과에선 편의상 속도 지령이 사다리꼴이 되도록 위치 지령을 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로, 등속구간에서 토크는 0.1Nm인데 이는 회전자 시정수, 관성모멘트, 현재 속도와 관련있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;토크 = (관성 모멘트)/(회전자 시정수)*(현재 속도)이기 때문이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;495&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IfhYR/btsHRvEQHzt/MivTEXwk7p4K2T3KVkNxo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IfhYR/btsHRvEQHzt/MivTEXwk7p4K2T3KVkNxo0/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. 시뮬레이션 파형&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IfhYR/btsHRvEQHzt/MivTEXwk7p4K2T3KVkNxo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIfhYR%2FbtsHRvEQHzt%2FMivTEXwk7p4K2T3KVkNxo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;536&quot; height=&quot;379&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;495&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. 시뮬레이션 파형&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 적분시정수 IT 조정&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 2를 통해 적분시정수 IT를 조정한 결과를 비교해본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적분시정수 IT는 (a)와 (b)에서 각각 10, 100으로 설정했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;1100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cu9BnD/btsHRntj6cK/bnEFhogJKsQf3ntYZCpaGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cu9BnD/btsHRntj6cK/bnEFhogJKsQf3ntYZCpaGk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. 적분시정수 조정&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cu9BnD/btsHRntj6cK/bnEFhogJKsQf3ntYZCpaGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcu9BnD%2FbtsHRntj6cK%2FbnEFhogJKsQf3ntYZCpaGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1250&quot; height=&quot;1100&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. 적분시정수 조정&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;두 그래프를 분석해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;편의상 (a)를 기준으로 극점 -34.8, -100, -217을 각각 극점 1, 2, 3으로 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 극점 3은 -217에서 -321으로 이동했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 극점 1, 2는 각각 -15.3&amp;plusmn;0.898i가 되었으며, 허수부가 생겼고 원점과 더욱 가까워졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 영점은 -100에서 -10으로 이동했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하면, 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 극점 3은 원점으로부터 더욱 멀어졌으나, 극점 1과 2가 원점과 가까워짐으로써 시스템 응답이 느려졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; ▶ 속도편차가 커졌으므로, 속도 추종이 느려졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 위치 편차가 일정 값으로 수렴하는데 걸리는 시간이 오래 걸리며, 오버슈트가 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; ▶ 극점에 허수부가 생김으로써 시스템이 조금 불안해졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 포스팅에서 언급했듯이 적분시정수를 통해 &quot;극점-영점 상쇄&quot;를 하려면, 점성마찰계수 B를 정확하게 알고 있어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 기계적인 특성(윤활유, 마찰, 마모 등)에 따라 같은 시스템이라도 다른 값을 가지게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;적정한 조정 범위 내에서 원하는 특성을 만족하는 값을 찾아서 적용해야 한다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2. 속도 비례 게인 Kvp 조정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;보통 모터드라이버 제조사의 파라미터를 보면, 편의상 속도제어기의 차단주파수 Fc[Hz]를 조정한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이번에는 차단주파수 Fc를 40에서 80으로 바꿔보자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;1108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBDfXf/btsHRZFwHNe/eAaDBtNFTOzVQIFzPxBKgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBDfXf/btsHRZFwHNe/eAaDBtNFTOzVQIFzPxBKgk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. 속도제어기의 차단주파수 조정&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBDfXf/btsHRZFwHNe/eAaDBtNFTOzVQIFzPxBKgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBDfXf%2FbtsHRZFwHNe%2FeAaDBtNFTOzVQIFzPxBKgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1248&quot; height=&quot;1108&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;1108&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. 속도제어기의 차단주파수 조정&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;두 그래프를 분석해보자.&lt;br /&gt;편의상 (a)를 기준으로 극점 -34.8, -100, -217을 각각 극점 1, 2, 3으로 부른다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1) 극점 3은 -217에서 -471으로 이동했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2) 극점 1은 -34.8에서 -32로 조금 이동했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3) 극점 2와 영점은 위치가 동일하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;정리하면, 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1) 극점 3은 원점으로부터 더욱 멀어짐으로써 시스템의 응답이 빨라졌으나, 0.3초 이후로 속도 편차에 리플이 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; ▶ 속도편차가 절반 정도로 줄어들었으나, 시스템이 조금 불안정해졌다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2) 위치 편차의 파형은 비슷하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;속도제어기의 차단주파수 Fc를 높이면, 가속하는 동안에 속도 편차가 줄어드는 효과가 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하지만, 너무 빠른 응답은 오히려 시스템을 불안정하게 만든다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하지만, 시스템이 불안정해질 수 있음에 유의해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3. 위치 비례 게인 Kpp 조정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;위치 비례 게인 Kpp를 조정할 때는 위치 편차에 주목한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;1108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mPOJO/btsHTCaUZ6c/vdGWCSasnrlAA2Ow5KlNZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mPOJO/btsHTCaUZ6c/vdGWCSasnrlAA2Ow5KlNZ0/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. 위치 비례 게인의 조정&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mPOJO/btsHTCaUZ6c/vdGWCSasnrlAA2Ow5KlNZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmPOJO%2FbtsHTCaUZ6c%2FvdGWCSasnrlAA2Ow5KlNZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1248&quot; height=&quot;1108&quot; data-origin-width=&quot;1248&quot; data-origin-height=&quot;1108&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. 위치 비례 게인의 조정&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;두 그래프를 분석해보자.&lt;br /&gt;편의상 (a)를 기준으로 극점 -34.8, -100, -217을 각각 극점 1, 2, 3으로 부른다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1) 극점 3은 -217에서 -156으로 이동했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2) 극점 1은 -34.8에서 -99로 이동했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3) 극점 2와 영점은 위치가 동일하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위치 비례 게인 Kpp를 120까지 올려보니 극점에 허수부가 발견되었다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;486&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fggmi/btsHSBcNynr/5FnakeK8TxAi6Kucg7C6Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fggmi/btsHSBcNynr/5FnakeK8TxAi6Kucg7C6Ck/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. Kpp = 120일 때&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fggmi/btsHSBcNynr/5FnakeK8TxAi6Kucg7C6Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFggmi%2FbtsHSBcNynr%2F5FnakeK8TxAi6Kucg7C6Ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;345&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;486&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. Kpp = 120일 때&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;정리하면, 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1) 극점 1이 원점과 멀어짐으로써 시스템의 응답이 빨라졌다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; ▶ 위치편차가 절반 정도로 줄어들었다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2) 위치 편차가 줄어들었기에 속도와 토크 응답 속도가 달라졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 위치 게인을 조정하면 극점에 허수부가 생기기도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;속도제어기의 차단주파수 Fc를 조정해도 극점이 허수부를 가지지 않을까?&lt;br /&gt;결론을 말하자면, 그렇다.&lt;br /&gt;다만, 일반적으로는 &quot;위치비례게인 Kpp &amp;lt;&amp;lt; 2&amp;pi;&amp;times;(속도제어기의 차단주파수 Fc)&quot;로 조정하기 때문에, 거의 허수부가 생기지 않는다.&lt;br /&gt;일부 모터의 경우 위치비례게인 Kpp를 극단적으로 높여서 사용하는 경우가 있는데, 이 때는 극점이 허수부를 가질 수도 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;파라미터를 정확하게 모르는 경우엔?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 모터에 매우 큰 부하가 연결되었지만, 관성비 IR을 0으로 입력해주면 어떻게 될까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 6을 보면 속도와 토크 파형이 흔들리면서 불안정한 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 7에선 극점이 우방면에 있는 걸 보아하니, 실제로 불안정해진 것이다. &lt;br /&gt;보통은 조금 다른 값이 입력되었다고 크게 불안정해지진 않을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파라미터 입력을 제대로 안 해주면 초기 기동이 불안정해서 주변에 악영향을 줄 수 있기에 항상 유의하자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1395&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN7wRQ/btsHTGjV9KQ/wDJH6kNjHhbXsXkh9msVJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN7wRQ/btsHTGjV9KQ/wDJH6kNjHhbXsXkh9msVJ1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 6. 모터 파라미터를 정확하게 모르는 경우&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN7wRQ/btsHTGjV9KQ/wDJH6kNjHhbXsXkh9msVJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN7wRQ%2FbtsHTGjV9KQ%2FwDJH6kNjHhbXsXkh9msVJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1395&quot; height=&quot;499&quot; data-origin-width=&quot;1395&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 6. 모터 파라미터를 정확하게 모르는 경우&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;491&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVxfgg/btsHRL1LFCk/8tvpobhsjN6pEpy89WSQgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVxfgg/btsHRL1LFCk/8tvpobhsjN6pEpy89WSQgk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 7. 불안정해진 시스템&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVxfgg/btsHRL1LFCk/8tvpobhsjN6pEpy89WSQgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVxfgg%2FbtsHRL1LFCk%2F8tvpobhsjN6pEpy89WSQgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;449&quot; height=&quot;361&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;491&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 7. 불안정해진 시스템&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;마무리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 모터를 제어하는 데 있어 이러한 이론을 심도있게 다루지는 않는 듯 하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(자동차업계나 정밀한 공정이 필요한 곳은 필요할지도...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 게인을 조정하면 어떻게 모터의 응답이 바뀌는지, 왜 모터 파라미터를 정확히 알고 있어야 하는지.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 두 가지만 알면 왠만한 문제는 다 해결할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Simulink</category>
      <category>게인조정</category>
      <category>고전제어</category>
      <category>극점</category>
      <category>속도게인</category>
      <category>영점</category>
      <category>위치게인</category>
      <category>적분시정수</category>
      <category>전달함수</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/63</guid>
      <comments>https://zin9.tistory.com/63#entry63comment</comments>
      <pubDate>Sun, 9 Jun 2024 13:49:13 +0900</pubDate>
    </item>
    <item>
      <title>고전제어 1부... 현대제어와의 차이</title>
      <link>https://zin9.tistory.com/62</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;제어기 설계에 필요한 제어 이론에는 고전제어와 현대제어가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고전제어에서는 시스템을 단일 입력과 단일 출력의 전달함수로 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 영점과 극점으로 시스템을 조정하며, 해석으로는 근-궤적법과 나이퀴스트 접근법이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;극점과 영점을 조정하는 것은 즉, PID 제어가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현대제어에서는 시스템을 다수 입력과 다수 출력의 상태 방정식으로 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태 변수와 입력 변수가 존재하며, 상태 피드백 제어기 또는 관측기로 시스템을 제어할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 외란 관측기에 사용되기도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 고전제어에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템은 전달함수 형태로 만들어지며, 극점과 영점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;극점(Pole): 분모가 0이 되는 s-평면의 한 점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영점(Zero): 분자가 0이 되는 s-평면의 한 점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 수식을 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;극점은 -3과 -4이고, 영점은 -2이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;254&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ru2gE/btsHRulBXTu/hhMtxz5ATnoifFAfqMaPRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ru2gE/btsHRulBXTu/hhMtxz5ATnoifFAfqMaPRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ru2gE/btsHRulBXTu/hhMtxz5ATnoifFAfqMaPRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRu2gE%2FbtsHRulBXTu%2FhhMtxz5ATnoifFAfqMaPRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;205&quot; height=&quot;67&quot; data-origin-width=&quot;254&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;왜 극점과 영점이라 부르는지 보자.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;s에 -3 또는 -4를 입력하면 분모가 0이 되어 G(s)는 극한으로 발산하므로, 이 값을 극점이라 부른다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;s에 -2를 입력하면 분자가 0이 되어 G(s)는 0이 되므로, 이 값을 영점이라 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 극점과 영점의 역할을 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) S-평면의 좌측에 있어야 시스템이 안정해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 원점으로부터 왼쪽으로 멀어질수록 반응 속도가 빨라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 허수부 값이 클수록 진동이 커진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 극점(=분모)이 추가될수록 시스템의 응답은 느려지고 안정도가 떨어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 이는 적분게인이 추가되는 것과 같다. 정상상태 오차를 줄여주지만, 응답이 약간 느려지고 안정성이 떨어지게 된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;5) 영점이 추가되면 근궤적을 왼쪽으로 당기는 효과가 있어 시스템의 안정도를 높여준다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 이는 미분게인이 추가되는 것과 같다. 안정성을 높일 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; ※ 적분 게인은 과거 편차를, 비례 게인은 현재 편차를, 미분 게인은 미래 편차를 사용한다. 따라서, 미래 편차를 예상할 수 없는 시스템의 경우엔 사용하지 않는 편이 좋다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;그림 1은 각각 극점이 1, 2, 3개인 시스템을 보여준다.&lt;br /&gt;극점이 3개가 되면 경우에 따라 시스템이 불안정해지기도 한다.&lt;br /&gt;되도록이면 극점이 2개 이하인 시스템으로 만들면 좋다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KcJSI/btsHRn073vC/tRD8J6i67irkETgqBqZXrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KcJSI/btsHRn073vC/tRD8J6i67irkETgqBqZXrk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. 극점의 효과&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KcJSI/btsHRn073vC/tRD8J6i67irkETgqBqZXrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKcJSI%2FbtsHRn073vC%2FtRD8J6i67irkETgqBqZXrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;228&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. 극점의 효과&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;br /&gt;그림 2는 영점의 위치에 따른 시스템의 안정성이 어떻게 변하는지 보여준다.&lt;br /&gt;(a)는 극점이 3개인 시스템이다.&lt;br /&gt;(b)~(d)는 영점이 0에 가까울수록 시스템이 안정되는 것을 보여준다.&lt;br /&gt;(d)에서는 영점이 극점과 매우 가까우며, 그 값은 거의 0이다.&lt;br /&gt;영점과 극점이 둘 다 0이 되어버린다면, 극점이 하나 상쇄되는 것이므로 시스템이 무척 안정화된다.&lt;br /&gt;바로 밑에서 이를 설명한다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;655&quot; data-origin-height=&quot;622&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBUSF6/btsHS6ciuNb/OdkpOylhHBWb8RkH9g5q50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBUSF6/btsHS6ciuNb/OdkpOylhHBWb8RkH9g5q50/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. 영점의 효과&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBUSF6/btsHS6ciuNb/OdkpOylhHBWb8RkH9g5q50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBUSF6%2FbtsHS6ciuNb%2FOdkpOylhHBWb8RkH9g5q50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;539&quot; height=&quot;512&quot; data-origin-width=&quot;655&quot; data-origin-height=&quot;622&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. 영점의 효과&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;br /&gt;극점이 3개 이상이라면? 극점-영점 상쇄를 통해 강제로 극점을 낮추는 방법이 있다.&lt;br /&gt;아래와 같이 극점과 영점이 동일한 점이 있는 경우, 소거를 통해 없앨 수 있다.&lt;br /&gt;뒤에서 기술할 PI 제어기 설계는 극점-영점 상쇄를 이용하여 게인값을 설정한다.&lt;br /&gt;아래에서 설명하도록 한다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;79&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZMaoN/btsHSBqj4Gm/JPjoKKvYPDKWxAIpcNfFOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZMaoN/btsHSBqj4Gm/JPjoKKvYPDKWxAIpcNfFOK/img.png&quot; data-alt=&quot;&amp;amp;lt;극점-영점 상쇄 기법&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZMaoN/btsHSBqj4Gm/JPjoKKvYPDKWxAIpcNfFOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZMaoN%2FbtsHSBqj4Gm%2FJPjoKKvYPDKWxAIpcNfFOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;64&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;79&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;극점-영점 상쇄 기법&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;position: absolute;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;MATLAB/SIMULINK를 통해 고전제어를 이해해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크립트를 작성해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7SZY6/btsHS6QTOZp/GV8fhxh1xYXS5Cao0RSa1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7SZY6/btsHS6QTOZp/GV8fhxh1xYXS5Cao0RSa1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7SZY6/btsHS6QTOZp/GV8fhxh1xYXS5Cao0RSa1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7SZY6%2FbtsHS6QTOZp%2FGV8fhxh1xYXS5Cao0RSa1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;313&quot; height=&quot;263&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;263&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;임의의 모터 정수와 게인 값을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;J는 관성모멘트, T는 모터 회전자 시정수, B는 점성마찰계수, Kpp는 위치제어기의 P 게인, Kvp는 속도제어기의 P게인, Kvi는 속도제어기의 적분시정수, IR은 관성비를 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kvp의 수식이 어떻게 유도되었는지는 다음의 링크에서 확인할 수 있다.&lt;/p&gt;
&lt;figure id=&quot;og_1717899727566&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;속도 제어기 설계 (2) - 설계 이론&quot; data-og-description=&quot;속도 제어기 설계 (1) - 모터 파라미터 전류 제어기를 설계했으니 이제 속도 제어기를 설계해보자. DQ변환 때메 골머리를 먹었는데 어느정도 해결이 되어 글을 다시 써본다. 속도 제어기 설계는 (2&quot; data-og-host=&quot;zin9.tistory.com&quot; data-og-source-url=&quot;https://zin9.tistory.com/22&quot; data-og-url=&quot;https://zin9.tistory.com/22&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fokQy/hyWlaqrdb7/n5jcXFEf4TMEBXCgB37szk/img.png?width=800&amp;amp;height=235&amp;amp;face=0_0_800_235,https://scrap.kakaocdn.net/dn/b1ObUr/hyWlleqG2K/9v4HuGc1NSk4cuCI3ODjtk/img.png?width=800&amp;amp;height=235&amp;amp;face=0_0_800_235,https://scrap.kakaocdn.net/dn/bapk7o/hyWgVPfYre/FjwLR0HdpoTcK36bcK0A0K/img.png?width=1286&amp;amp;height=379&amp;amp;face=0_0_1286_379&quot;&gt;&lt;a href=&quot;https://zin9.tistory.com/22&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zin9.tistory.com/22&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fokQy/hyWlaqrdb7/n5jcXFEf4TMEBXCgB37szk/img.png?width=800&amp;amp;height=235&amp;amp;face=0_0_800_235,https://scrap.kakaocdn.net/dn/b1ObUr/hyWlleqG2K/9v4HuGc1NSk4cuCI3ODjtk/img.png?width=800&amp;amp;height=235&amp;amp;face=0_0_800_235,https://scrap.kakaocdn.net/dn/bapk7o/hyWgVPfYre/FjwLR0HdpoTcK36bcK0A0K/img.png?width=1286&amp;amp;height=379&amp;amp;face=0_0_1286_379');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;속도 제어기 설계 (2) - 설계 이론&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;속도 제어기 설계 (1) - 모터 파라미터 전류 제어기를 설계했으니 이제 속도 제어기를 설계해보자. DQ변환 때메 골머리를 먹었는데 어느정도 해결이 되어 글을 다시 써본다. 속도 제어기 설계는 (2&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zin9.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;위에서 &quot;극점-영점 상쇄 기법&quot;을 설명했다.&lt;br /&gt;적분 시정수인 Kvi가 10인 이유가 여기에서 나온다.&lt;br /&gt;그림 3에서 속도 제어 루프를 살펴보자.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cK56K9/btsHRK9DWCZ/yZYpmx4nFy7yEOiyUHFxf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cK56K9/btsHRK9DWCZ/yZYpmx4nFy7yEOiyUHFxf1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. 속도 제어 루프&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cK56K9/btsHRK9DWCZ/yZYpmx4nFy7yEOiyUHFxf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcK56K9%2FbtsHRK9DWCZ%2FyZYpmx4nFy7yEOiyUHFxf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;227&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. 속도 제어 루프&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;br /&gt;속도 제어 루프를 전달함수로 나타내면 다음과 같다.&lt;br /&gt;관성모멘트와 회전자 시정수 Tshaft를 알고 있으므로, 아래의 수식과 같이 전달함수가 간단해진다.&lt;br /&gt;회전자 시정수 Tshaft는 적분 시정수 IT와 동일하기 때문이다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dj5Ei6/btsHRK2TRH4/mbqfhk7T2f37soI5WcAmm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dj5Ei6/btsHRK2TRH4/mbqfhk7T2f37soI5WcAmm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dj5Ei6/btsHRK2TRH4/mbqfhk7T2f37soI5WcAmm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdj5Ei6%2FbtsHRK2TRH4%2Fmbqfhk7T2f37soI5WcAmm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;469&quot; height=&quot;231&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;실제 시스템에서는 J와 B의 값을 정확히 추정하기 어렵다.&lt;br /&gt;특히 로봇의 경우 관성모멘트 J의 값을 정확히 추정하기 어려운 경우가 많다.&lt;br /&gt;게다가 점성마찰계수 B의 값을 기계의 상태에 따라 값이 변하고 그 편차가 심한 편이다.&lt;br /&gt;그래서 관성모멘트 J를 실제보다 낮게 설정하는 일도 있으며, B는 상황에 따라 조정하기도 한다.&lt;br /&gt;&lt;br /&gt;여기에 더불어, 그림 4를 통해 극점-영점 상쇄가 되어 있는 위치-속도 제어루프를 고려해보자.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jrt4E/btsHTENkrXz/6hVDwHTpzQanmPQtEKKosk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jrt4E/btsHTENkrXz/6hVDwHTpzQanmPQtEKKosk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. 위치-속도 제어 루프&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jrt4E/btsHTENkrXz/6hVDwHTpzQanmPQtEKKosk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJrt4E%2FbtsHTENkrXz%2F6hVDwHTpzQanmPQtEKKosk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;159&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. 위치-속도 제어 루프&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;br /&gt;그림 4를 전달함수로 풀면 아래의 수식으로 나타낼 수 있다.&lt;br /&gt;즉, 모터 파라미터를 정확하게 알고 있다면, &quot;극점-영점 상쇄&quot;으로 이 시스템을 2차 시스템으로 해석할 수 있다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKTOvY/btsHS64sMWq/jG07tkLONniLRVRBNds72K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKTOvY/btsHS64sMWq/jG07tkLONniLRVRBNds72K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKTOvY/btsHS64sMWq/jG07tkLONniLRVRBNds72K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKTOvY%2FbtsHS64sMWq%2FjG07tkLONniLRVRBNds72K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;365&quot; height=&quot;223&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Simulink 모델은 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전류루프는 부하가 변하더라도 불변이므로, 전류제어루프는 생략한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 튜닝할 일도 거의 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 포스팅에서 그림 5를 가지고 근궤적을 추적해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;425&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj3QrP/btsHRNLY0Tn/QeFRQCOWcbAPc9KQv0JjmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj3QrP/btsHRNLY0Tn/QeFRQCOWcbAPc9KQv0JjmK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. Simulink 모델&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj3QrP/btsHRNLY0Tn/QeFRQCOWcbAPc9KQv0JjmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj3QrP%2FbtsHRNLY0Tn%2FQeFRQCOWcbAPc9KQv0JjmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1129&quot; height=&quot;425&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;425&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. Simulink 모델&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1, 2 - 오가타 modern control engineering&lt;/p&gt;</description>
      <category>제어이론</category>
      <category>PID제어</category>
      <category>고전제어</category>
      <category>극점</category>
      <category>영점</category>
      <category>영점극점상쇄</category>
      <category>현대제어</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/62</guid>
      <comments>https://zin9.tistory.com/62#entry62comment</comments>
      <pubDate>Sun, 9 Jun 2024 11:40:52 +0900</pubDate>
    </item>
    <item>
      <title>약계자 제어(Field Weekening Control) - 1부</title>
      <link>https://zin9.tistory.com/61</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;약계자 제어 또는 약자계 제어라고 Field Weekening Control에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 자계(Field)를 약하게 하는 것인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;D축 전류를 이용하기 때문에 자계(Field)가 약해지기 때문&lt;/span&gt;&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래에서 알아보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;약계자 제어를 이해하기 위해서 &quot;전류제한원&quot;과 &quot;전압제한원&quot;에 대해 알아야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 &quot;MTPA&quot;와 &quot;MTPV&quot;이라는 용어도 나오니 같이 알아두자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 전류제한원에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 전류 제한원&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 전류가 제한된다는 말일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 모터 제조사로부터 속도-토크 특성으로부터 전류가 제한되는 &quot;최대 전류&quot;를 얻을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파나소닉 사의 &quot;MSMF092L1&quot; 모터를 예시로 들어본다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvXJep/btsGe9hcUZK/4SqwKNh2IliKPDk11kRnV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvXJep/btsGe9hcUZK/4SqwKNh2IliKPDk11kRnV1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. MSMF092L1 모터의 속도-토크 곡선&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvXJep/btsGe9hcUZK/4SqwKNh2IliKPDk11kRnV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvXJep%2FbtsGe9hcUZK%2F4SqwKNh2IliKPDk11kRnV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;466&quot; height=&quot;326&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. MSMF092L1 모터의 속도-토크 곡선&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 곡선으로 얻을 수 있는 정보는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 3800[rpm] 이하로 동작할 때 사용 가능한 최대 토크는 9.55[Nm]이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 최대 속도인 5000[rpm]으로 동작할 때 사용 가능한 최대 토크는 4.0~5.5[Nm]이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 연속으로 동작할 때는 최대 토크로 3.36[Nm] 이하를 권장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최대 전류는 17.1[Arms](=24.2[Ao-p]/&amp;radic;2)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파나소닉 모터에서 17.1[Arms]는 선전류를 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 모터 결선은 Y결선으로 되어 있으므로, &quot;상전류 = 선전류&quot;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 모터의 상전류의 최대 순시치는 24.2[A]이고, 이 값이 전류제한원의 최대 크기가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 2는 이 값을 토대로 한 전류제한원이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수식으로 표현하면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nQOrD/btsGcKjdGmI/0O2Lfhnk5Y4nBOnVCU9jR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nQOrD/btsGcKjdGmI/0O2Lfhnk5Y4nBOnVCU9jR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nQOrD/btsGcKjdGmI/0O2Lfhnk5Y4nBOnVCU9jR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnQOrD%2FbtsGcKjdGmI%2F0O2Lfhnk5Y4nBOnVCU9jR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;252&quot; height=&quot;37&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;665&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxR4pR/btsGd7LmJhR/FdjBpH51swDS32LI5Yx3KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxR4pR/btsGd7LmJhR/FdjBpH51swDS32LI5Yx3KK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. 전류제한원&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxR4pR/btsGd7LmJhR/FdjBpH51swDS32LI5Yx3KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxR4pR%2FbtsGd7LmJhR%2FFdjBpH51swDS32LI5Yx3KK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;345&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;665&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. 전류제한원&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. MTPA&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에 개념이 하나 더 들어간다면, MTPA이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PMSM은 두 종류가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SPMSM은 D축 전류를 0으로 한 채 Q축 전류 값만 올리는 반면,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPMSM은 D축 전류를 적절히 인가하여 단위 전류당 최대 토크를 발생시키도록 하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 MTPA(Max Torque Per Ampere) 기법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이론과 수식에 근거한 그래프를 그림 3으로 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0[A]부터 최대 전류인 24.2[A]에 도달할 때까지 단위 전류당 최대 토크를 발생하는 경로를 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPMSM도 D축 전류를 0으로 해도 제어에 문제는 없겠지만, 효율이 낮아질 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;573&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpcdTC/btsGe9O3JY2/7uNXBWyM2FVvMMjlAP2nzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpcdTC/btsGe9O3JY2/7uNXBWyM2FVvMMjlAP2nzK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. MTPA 곡선&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpcdTC/btsGe9O3JY2/7uNXBWyM2FVvMMjlAP2nzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdpcdTC%2FbtsGe9O3JY2%2F7uNXBWyM2FVvMMjlAP2nzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;391&quot; height=&quot;382&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;573&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. MTPA 곡선&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;D축 전류는 왜 음수인가?&lt;br /&gt;다음 글에서 소개할테지만, 전압제한원의 중심은 -D축에 위치하고 있다.&lt;br /&gt;한계 속도에 다다랐을 때 '속도를 더 높이기 위해' D축 전류를 인가하여 '약계자 제어'를 한다.&lt;br /&gt;그렇다면 D축 전류는 왜 음수로 하는 걸까?&lt;br /&gt;이는 전압제한원과 관련있다.&lt;br /&gt;(전압제한원은 다음 글에서 소개한다.)&lt;br /&gt;전압제한원의 수식에 따르면 최대 운전 속도가 높아질수록 원의 크기는 줄어들게 된다.&lt;br /&gt;그래서 D축 전류를 양의 값으로 입력하면 속도를 높이기는 커녕 낮은 속도로 운전하게 된다.&lt;br /&gt;그리고 MTPA 곡선과도 연속되지 않을 것이다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 약계자제어(FWC)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;약계자제어를 언제 사용하는가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로, '속도를 더 높이기 위해서'이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전류제한원으로 인해 최대로 사용할 수 있는 전류의 크기는 정해져 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전류가 제한되므로 최대 토크도 제한되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 약계자 제어를 사용하면 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;토크를 다소 포기하고 속도를 높일 수 있다&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;약계자 제어는 '모터의 속도-토크 곡선을 바꾸는 기법'이라고도 볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그림 4을 보자.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;파란 선을 보면 모터를 전류가 증가함에 따라 토크도 증가하고, 속도도 높일 수 있게 되었다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예를 들면 모터의 속도-토크 특성에 따르면 6000[RPM]이 최대 속도이다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그런데 6500[RPM]까지 속도를 높여서 운전하고 싶다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이런 경우에 약계자 제어를 사용하게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그림 4의 오른쪽 그림에서 우측 상단의 회색 영역은 '약계자제어로 인해 사용 불가능해진 영역'이다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;빨간색 영역은 '약계자제어로 인해 사용 가능해진 영역'이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;571&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFWoBR/btsGdEJBiwj/oFw2z3GFNKMbZT33amRmOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFWoBR/btsGdEJBiwj/oFw2z3GFNKMbZT33amRmOK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. MTPA곡선+약계자제어&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFWoBR/btsGdEJBiwj/oFw2z3GFNKMbZT33amRmOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFWoBR%2FbtsGdEJBiwj%2FoFw2z3GFNKMbZT33amRmOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;710&quot; height=&quot;298&quot; data-origin-width=&quot;1360&quot; data-origin-height=&quot;571&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. MTPA곡선+약계자제어&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size16&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그렇다면, 약계자제어를 해서 속도-토크 특성을 바꿔서 사용하면 되지 않을까?&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이런 생각이 들 수 있다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하지만, 불가능하다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;저속에서는 굳이 사용할 필요가 없다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그리고 손실 증가, 이로 인한 과열 위험, 제어의 어려움 등 여러 단점이 있기에, 꼭 필요할 때만 사용하는 편이 좋다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이전 회사에서는 3000[RPM]이 최대 속도인 상황에서 순시적으로 3500[RPM]을 사용해야 하는 경우가 있었다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그래서 3000[RPM]이상일 때만 D축 전류를 발생시켜서 약계자제어를 적용한 적이 있었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;모터 제조사가 제공하는 속도-토크 특성으로 사용하되, 속도를 더 높이고 싶을 때 사용하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 시간에는 MTPA의 수식, 전압제한원, MTPV 등에 대해 알아본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>제어이론</category>
      <category>D축전류</category>
      <category>FieldWeekening</category>
      <category>FWC</category>
      <category>Motor</category>
      <category>MTPA</category>
      <category>MTPV</category>
      <category>PMSM</category>
      <category>약계자</category>
      <category>약자계</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/61</guid>
      <comments>https://zin9.tistory.com/61#entry61comment</comments>
      <pubDate>Sat, 30 Mar 2024 12:17:11 +0900</pubDate>
    </item>
    <item>
      <title>IGBT 보호 기능 - Desaturation (3)</title>
      <link>https://zin9.tistory.com/60</link>
      <description>&lt;figure id=&quot;og_1709437430383&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;IGBT 보호 기능 - Desaturation (2)&quot; data-og-description=&quot;IGBT 보호 기능 - Desaturation (1) 모터에 UVW상을 제어하는 IGBT의 보호 기능에 대해 알아본다. HCPL-316J 라는 IGBT의 데이터 시트를 기반으로 글을 작성한다. 사양 요약본을 참고하면 고전압, 대전류에 사&quot; data-og-host=&quot;zin9.tistory.com&quot; data-og-source-url=&quot;https://zin9.tistory.com/38&quot; data-og-url=&quot;https://zin9.tistory.com/38&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ujqhj/hyVuqg7th9/N8vA0KCEBqCCtJqSG06Wrk/img.png?width=800&amp;amp;height=454&amp;amp;face=0_0_800_454,https://scrap.kakaocdn.net/dn/bxSaPz/hyVuhEsEMf/yMPeHEVs9kwoKXQNmvjW10/img.png?width=800&amp;amp;height=454&amp;amp;face=0_0_800_454,https://scrap.kakaocdn.net/dn/MAHdm/hyVqvK9kEv/bkt4asgf7vQPUu1iUCnKn0/img.png?width=905&amp;amp;height=638&amp;amp;face=0_0_905_638&quot;&gt;&lt;a href=&quot;https://zin9.tistory.com/38&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zin9.tistory.com/38&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ujqhj/hyVuqg7th9/N8vA0KCEBqCCtJqSG06Wrk/img.png?width=800&amp;amp;height=454&amp;amp;face=0_0_800_454,https://scrap.kakaocdn.net/dn/bxSaPz/hyVuhEsEMf/yMPeHEVs9kwoKXQNmvjW10/img.png?width=800&amp;amp;height=454&amp;amp;face=0_0_800_454,https://scrap.kakaocdn.net/dn/MAHdm/hyVqvK9kEv/bkt4asgf7vQPUu1iUCnKn0/img.png?width=905&amp;amp;height=638&amp;amp;face=0_0_905_638');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;IGBT 보호 기능 - Desaturation (2)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;IGBT 보호 기능 - Desaturation (1) 모터에 UVW상을 제어하는 IGBT의 보호 기능에 대해 알아본다. HCPL-316J 라는 IGBT의 데이터 시트를 기반으로 글을 작성한다. 사양 요약본을 참고하면 고전압, 대전류에 사&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zin9.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회로 설계에 대한 질문이 있어 글로 올리고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Q. 100&lt;span style=&quot;font-family: 'Noto Serif KR'; color: #333333; text-align: center;&quot;&gt;&amp;Omega;이 아닌 500&lt;span style=&quot;font-family: 'Noto Serif KR'; color: #333333; text-align: center;&quot;&gt;&amp;Omega; 으로 하면 어떻게 될까?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론을 말하면 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Fault가 되는 Vdesat 전압 레벨에는 큰 차이가 없다&lt;/b&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;100&lt;span style=&quot;color: #333333; text-align: center;&quot;&gt;&amp;Omega;일 때와 500&lt;span style=&quot;color: #333333; text-align: center;&quot;&gt;&amp;Omega;일 때의 저항에 걸리는 전압을 알아보자.&lt;/span&gt; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;V1 = 250uA x 100&lt;span style=&quot;color: #333333; text-align: center;&quot;&gt;&amp;Omega; = 0.025V&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: center;&quot;&gt;V2 = &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;250uA x 500&amp;Omega; = 0.125V&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;V1과 V2일 때의 desaturation 전압을 Vdesat1, Vdesat2라 하면,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;Vdesat1 = 0.025V + 5V + 2V = 7.025V&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;Vdesat2 = 0.125V + 5V + 2V = 7.125V&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;따라서, 큰 영향을 주지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저항이 10k&amp;Omega;나 그 이상이 된다면 유의미한 영향을 줄지 모른다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;(하지만, 권장하는 사양이 아니므로 굳이 알아보진 않는다.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;먼저 회로를 보자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Rdesat의 저항값을 바꾸면서 회로에 어떤 영향을 주는지 확인해보자.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1324&quot; data-origin-height=&quot;767&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ekPEM2/btsFs0S198Y/aaQI5XT60DIy89nSv7W6qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ekPEM2/btsFs0S198Y/aaQI5XT60DIy89nSv7W6qk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. Desaturation 시뮬레이션 회로&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ekPEM2/btsFs0S198Y/aaQI5XT60DIy89nSv7W6qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FekPEM2%2FbtsFs0S198Y%2FaaQI5XT60DIy89nSv7W6qk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1324&quot; height=&quot;767&quot; data-origin-width=&quot;1324&quot; data-origin-height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. Desaturation 시뮬레이션 회로&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;시뮬레이션 결과를 파형으로 비교하면 그림 2와 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그림 2의 왼쪽 파형은 Rdesat = 100&amp;Omega;일때, 오른쪽 파형은 Rdesat = 500&amp;Omega;일 때를 나타낸다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Vdesat의 값은 앞서 말할대로 조금 차이가 있긴 하지만, &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Fault가 발생하는 시점엔 큰 차이가 없다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Fault 발생하는 시점에 영향을 주는 것은 Cblank 값이기 때문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Rdesat의 Cblank에 충전된 전류가 방전되는 시간이 늘어난다.&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이는 RC 병렬 회로와 같게 되기 때문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;아래에서 그림 3의 (b)를 보면서 설명한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;846&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4u0yE/btsFs24mUkU/VMdC3v7u3hML0To2FymfU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4u0yE/btsFs24mUkU/VMdC3v7u3hML0To2FymfU1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. Rdesat에 따른 파형 비교&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4u0yE/btsFs24mUkU/VMdC3v7u3hML0To2FymfU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4u0yE%2FbtsFs24mUkU%2FVMdC3v7u3hML0To2FymfU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1704&quot; height=&quot;846&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;846&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. Rdesat에 따른 파형 비교&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회로로 해석해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Rdesat값에 따른 차이를 보기 전에 그림 2에 대한 회로 해석을 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Vdesat에 따른 해석&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(a) Vdesat &amp;lt; 7V&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 그림 3을 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Desaturation 회로가 동작하면 Vdesat에 7V가 입력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회로가 동작하지 않을 때는 0V이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기에는 거의 모든 전류가 Cblank로 흐르지만 시간이 지남에 따라 Rdesat으로 흐르는 전류가 많아진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 4에서 화살표의 크기로 전류 흐름을 나타내었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cblank로 전류가 충전되면서 커패시터 양단의 전압이 상승하기 시작한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1814&quot; data-origin-height=&quot;731&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYsc3w/btsLxFIsTiK/5oPH3hZRmxu13yJKxZ053k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYsc3w/btsLxFIsTiK/5oPH3hZRmxu13yJKxZ053k/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. Vdesat에 따른 전류 흐름&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYsc3w/btsLxFIsTiK/5oPH3hZRmxu13yJKxZ053k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYsc3w%2FbtsLxFIsTiK%2F5oPH3hZRmxu13yJKxZ053k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1814&quot; height=&quot;731&quot; data-origin-width=&quot;1814&quot; data-origin-height=&quot;731&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. Vdesat에 따른 전류 흐름&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(b) Vdesat &amp;ge; 7V&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Vdesat의 값이&lt;span&gt;&amp;nbsp;&lt;/span&gt;Vd와 VCE의 합인 7V보다 높아지므로 고장 신호를 감지한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Vdesat은 포화 상태에 이르게 된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Cblank 양단의 전압이 7V가 되면 Cblank에 흐르는 전류도 감소하면서 0이 된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이와 동시에 모든 전류가 Rdesat으로 흐르게 된다(그림 4).&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;634&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csYGVt/btsLv8SGnvj/xWH41uJsKcMyInnaJ9Ojkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csYGVt/btsLv8SGnvj/xWH41uJsKcMyInnaJ9Ojkk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. Vdesat이 상승함에 따라 변화하는 전류 흐름&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csYGVt/btsLv8SGnvj/xWH41uJsKcMyInnaJ9Ojkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsYGVt%2FbtsLv8SGnvj%2FxWH41uJsKcMyInnaJ9Ojkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;596&quot; height=&quot;429&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;634&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. Vdesat이 상승함에 따라 변화하는 전류 흐름&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다이오드를 잘못 설계해서 6V로 하면 어떻게 될까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 Vd + Vce = 8V &amp;gt; 7V 이므로 블랭킹 시간인 2.8&amp;mu;s가 지난 뒤에 Fault 신호가 1이 된다(그림 5).&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;634&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YYKOK/btsLw51Vzv2/3Hfau0cXqVQGrz9XTAYkz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YYKOK/btsLw51Vzv2/3Hfau0cXqVQGrz9XTAYkz0/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. Vd가 6V인 경우&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YYKOK/btsLw51Vzv2/3Hfau0cXqVQGrz9XTAYkz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYYKOK%2FbtsLw51Vzv2%2F3Hfau0cXqVQGrz9XTAYkz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;591&quot; height=&quot;434&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;634&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. Vd가 6V인 경우&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>드라이버 회로설계</category>
      <category>desaturation</category>
      <category>HCPL-316J</category>
      <category>RC병렬</category>
      <category>드라이버회로설계</category>
      <category>보호회로</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/60</guid>
      <comments>https://zin9.tistory.com/60#entry60comment</comments>
      <pubDate>Sun, 3 Mar 2024 14:04:14 +0900</pubDate>
    </item>
    <item>
      <title>PWM 이해하기 - 2부</title>
      <link>https://zin9.tistory.com/59</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1708340851872&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;PWM 이해하기&quot; data-og-description=&quot;포스팅이 조금 늦어져버렸지만, 2월까지 PWM에 대한 글을 올릴 예정이다. PWM은 대략적으로 이해하고 있지만, 그 이론적인 내용과 다양한 방법에 대해 알아보고자 한다. 우선은 MATLAB/SIMULINK로 설계&quot; data-og-host=&quot;zin9.tistory.com&quot; data-og-source-url=&quot;https://zin9.tistory.com/57&quot; data-og-url=&quot;https://zin9.tistory.com/57&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/deZ93z/hyVm4ZJiBF/bTNVRDPvsL1fFdXrldrCwK/img.png?width=800&amp;amp;height=176&amp;amp;face=0_0_800_176,https://scrap.kakaocdn.net/dn/byPOam/hyVm4k5MWL/i3kZeSKf81MrwW8r3X6G2k/img.png?width=800&amp;amp;height=176&amp;amp;face=0_0_800_176,https://scrap.kakaocdn.net/dn/mII0J/hyVmSZfmR1/59URcKILLX3XEA4jsscaR0/img.png?width=1388&amp;amp;height=601&amp;amp;face=0_0_1388_601&quot;&gt;&lt;a href=&quot;https://zin9.tistory.com/57&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zin9.tistory.com/57&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/deZ93z/hyVm4ZJiBF/bTNVRDPvsL1fFdXrldrCwK/img.png?width=800&amp;amp;height=176&amp;amp;face=0_0_800_176,https://scrap.kakaocdn.net/dn/byPOam/hyVm4k5MWL/i3kZeSKf81MrwW8r3X6G2k/img.png?width=800&amp;amp;height=176&amp;amp;face=0_0_800_176,https://scrap.kakaocdn.net/dn/mII0J/hyVmSZfmR1/59URcKILLX3XEA4jsscaR0/img.png?width=1388&amp;amp;height=601&amp;amp;face=0_0_1388_601');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;PWM 이해하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;포스팅이 조금 늦어져버렸지만, 2월까지 PWM에 대한 글을 올릴 예정이다. PWM은 대략적으로 이해하고 있지만, 그 이론적인 내용과 다양한 방법에 대해 알아보고자 한다. 우선은 MATLAB/SIMULINK로 설계&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zin9.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 시간엔 시뮬레이션으로 PWM을 구현해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 시간엔 이론으로 PWM을 알아보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;PWM 목적&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PWM(펄스 폭 변조)를 사용하는 목적은 직류 전압을 교류 전압으로 만들어주기 위함이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스위칭 소자에 입력되는 Duty를 조절함으로써 공급받은 DC전압을 AC전압으로 바꿔준다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1, 2를 보면서 회로를 이해해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(그림 2에 오류가 있지만 이해만 하려고 간단히 그렸다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 SMPS로부터 직류 전압을 공급받는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DQ 변환으로 3상 교류 전압을 생성해주어야 모터가 회전하는데, 공급받은 링크 전압을 교류 전압으로 바꿔준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파란선은 스위칭 소자에 입력되는 PWM duty를 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빨간선은 출력 전압이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 2의 회로와 같이 구성하고 파란색처럼 duty를 입력하면, 그림 1의 파란색 파형처럼 전압이 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&quot;커패시터&quot;&lt;/b&gt;&lt;/span&gt;때문에 파란색 파형이 아닌 빨간색 파형처럼 전압이 생성되게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzySn0/btsE5DK5gk9/abz5WG3OkleputXjJBVsq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzySn0/btsE5DK5gk9/abz5WG3OkleputXjJBVsq0/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. PWM 원리&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzySn0/btsE5DK5gk9/abz5WG3OkleputXjJBVsq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzySn0%2FbtsE5DK5gk9%2Fabz5WG3OkleputXjJBVsq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;336&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. PWM 원리&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bF1zIk/btsEZQq71RM/DTej7YPH91W2VSkHWLAgzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bF1zIk/btsEZQq71RM/DTej7YPH91W2VSkHWLAgzK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. 모터 회로&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bF1zIk/btsEZQq71RM/DTej7YPH91W2VSkHWLAgzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF1zIk%2FbtsEZQq71RM%2FDTej7YPH91W2VSkHWLAgzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;434&quot; height=&quot;387&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. 모터 회로&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;스위칭 소자가 On인 상태에서는 모터에 걸리는 전압이 상승하게 된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;DC 링크 전압이 48V라 하면, 모터에 걸리는 전압은 48V이 되어야 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;하지만, 커패시터는 &quot;전압의 변화를 방해하는&quot; 성질을 가지고 있기 때문에, Duty가 낮은 상황에서는 48V까지 상승하기 어렵다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;특히, 스위칭 주파수는 보통 10kHz 이상을 사용하기에 0.1ms라는 짧은 시간에 짧은 Duty로는 0V에서 48V까지 상승하기 어렵다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;스위칭 소자가 Off인 상태에서는 모터에 걸리는 전압이 0V이 되어야 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Duty가 1로 출력되어 모터에 걸리는 전압이 48V가 된 상황이라 가정하자.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 때 Duty가 Off가 되더라도 모터에 걸리는 전압은 단숨에 0V가 되지 않는다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;회로의 시정수에 따라 서서히 0V가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;PWM Duty 생성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스위칭 소자의 Duty는 어떻게 생성될까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 3의 (b)를 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사인파로 생성되는 전압이 전류제어기의 출력인 전압 지령이고, 지그재그로 반복되는 파형이 삼각 반송파이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삼각 반송파의 피크치는 DC링크 전압보다 조금 작게한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 그림 3의 (c)를 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(b)에서의 전압 지령과 삼각 반송파의 차이를 비교한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차이가 양수라면 Duty를 1으로하고, 차이가 음수라면 Duty를 0으로 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 Duty를 그림 2의 스위칭 소자에 입력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 그림 4의 (d)를 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PWM을 통해 (b)의 사인파형과 동일한 사인파형의 출력 전압이 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(완전 같을 수는 없지만, 거의 비슷하다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 밖에 스위칭 주파수로 인한 손실이라든가 다른 내용은 생략하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;591&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XVAkb/btsE0iHMBKj/kv1WDEbfxk2k4Wd7rTVvhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XVAkb/btsE0iHMBKj/kv1WDEbfxk2k4Wd7rTVvhK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. PWM Duty 생성&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XVAkb/btsE0iHMBKj/kv1WDEbfxk2k4Wd7rTVvhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXVAkb%2FbtsE0iHMBKj%2Fkv1WDEbfxk2k4Wd7rTVvhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;625&quot; height=&quot;476&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;591&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. PWM Duty 생성&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;SPWM vs SVPWM&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과를 말하자면 SVPWM을 사용하는 편이 더 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(SVPWM: Space Vector PWM)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SVPWM 수식 풀이는 책을 보고 공부하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표1에는 들어가있지만, 우리는 BLDC 모터를 제어할 것이 아니기에 설명은 넣지 않는다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;SVPWM이 SPWM에 비해 더 많은 전압을 사용할 수 있는 것에 주목하자.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s6gCU/btsE3m3U5r2/uL5yh6Wur9tCgKvAkXdNn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s6gCU/btsE3m3U5r2/uL5yh6Wur9tCgKvAkXdNn0/img.png&quot; data-alt=&quot;&amp;amp;lt;표 1. PWM 방식 비교&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s6gCU/btsE3m3U5r2/uL5yh6Wur9tCgKvAkXdNn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs6gCU%2FbtsE3m3U5r2%2FuL5yh6Wur9tCgKvAkXdNn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;789&quot; height=&quot;281&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;표 1. PWM 방식 비교&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SVPWM을 사용할 때의 장점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① 모터의 사용 영역이 넓어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (모터 N-T 곡선)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 간단하게 코드로 구현할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (옵셋 방식을 이용한 방법)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6F6i/btsE6DqzUe1/bpqMQiZOsViEXvHsB7KoC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6F6i/btsE6DqzUe1/bpqMQiZOsViEXvHsB7KoC1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. 모터 N-T 곡선&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6F6i/btsE6DqzUe1/bpqMQiZOsViEXvHsB7KoC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6F6i%2FbtsE6DqzUe1%2FbpqMQiZOsViEXvHsB7KoC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;355&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. 모터 N-T 곡선&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 5를 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상전압은 SPWM, 극전압은 SVPWM이라 보면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 5가 무엇을 의미하는가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SPWM 기법을 사용할 때는 검정 점선만큼의 전압이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, SVPWM 기법을 사용할 때는 그보다 낮은 전압이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 토크를 발생하는데 있어 SPWM은 Vdc/&amp;radic;3의 전압이 필요하고, SVPWM은 Vdc/2의 전압이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 마디로 동일한 토크를 생성하는 데 필요한 구동 전압이 낮아진다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 더불어 Vdc/&amp;radic;3만큼 전압을 올릴 수 있다는 의미이므로, 좀 더 토크를 사용할 수 있다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, SPWM에 비해 15.5%의 전압 여유가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi5jAY/btsE5FIUD9Q/s8cbKOCUeLZEqzckIyFxBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi5jAY/btsE5FIUD9Q/s8cbKOCUeLZEqzckIyFxBk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. SPWM와 SVPWM 비교&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi5jAY/btsE5FIUD9Q/s8cbKOCUeLZEqzckIyFxBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi5jAY%2FbtsE5FIUD9Q%2Fs8cbKOCUeLZEqzckIyFxBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;379&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;379&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. SPWM와 SVPWM 비교&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면, SVPWM은 어떻게 구현하는가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 6을 보면, abc상 전압에 옵셋 전압(Vsn)을 더해주는 방식으로 구현한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 방식에서는 옵셋 전압은 3상 중 최대전압과 최소전압의 평균에 음의 값을 취한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 적절한 3차 고조파를 이용할 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X3uey/btsE2C6LaKY/ZFI3r2tRKNz9r3kCbdkaWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X3uey/btsE2C6LaKY/ZFI3r2tRKNz9r3kCbdkaWK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 6. 옵셋 전압을 이용한 PWM 방식&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X3uey/btsE2C6LaKY/ZFI3r2tRKNz9r3kCbdkaWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX3uey%2FbtsE2C6LaKY%2FZFI3r2tRKNz9r3kCbdkaWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;561&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;561&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 6. 옵셋 전압을 이용한 PWM 방식&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vas, Vbs, Vcs는 전류제어기의 출력 전압 지령(=상전압)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Van, Vbn, Vcn은 옵셋전압이 인가된 PWM 입력 전압 지령(=극전압)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전류제어기에서 출력 전압이 높게 나오더라도, 실제로 PWM에 인가되는 전압지령은 상전압보다 낮다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 전류제어기의 출력제한값을 높게 설정할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력제한값은 SPWM 대비 15.5%만큼 증가할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 벡터선도로 사용가능한 전압 영역을 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SVPWM은 외부의 육각형에 내접한 원이 사용 영역이며, SPWM은 내부의 육각형에 내접한 원이 사용 영역이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Locus-of-maximum-voltage-in-SPWM-and-SVPWM.png&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;414&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/91tSd/btsE42RFM6U/ZSrVNqUHidV8RnoC7iymqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/91tSd/btsE42RFM6U/ZSrVNqUHidV8RnoC7iymqK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 7. PWM 사용 전압 벡터선도&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/91tSd/btsE42RFM6U/ZSrVNqUHidV8RnoC7iymqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F91tSd%2FbtsE42RFM6U%2FZSrVNqUHidV8RnoC7iymqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;414&quot; data-filename=&quot;Locus-of-maximum-voltage-in-SPWM-and-SVPWM.png&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;414&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 7. PWM 사용 전압 벡터선도&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s6gCU/btsE3m3U5r2/uL5yh6Wur9tCgKvAkXdNn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s6gCU/btsE3m3U5r2/uL5yh6Wur9tCgKvAkXdNn0/img.png&quot; data-alt=&quot;&amp;amp;lt;표 1. PWM 방식 비교&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s6gCU/btsE3m3U5r2/uL5yh6Wur9tCgKvAkXdNn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs6gCU%2FbtsE3m3U5r2%2FuL5yh6Wur9tCgKvAkXdNn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;789&quot; height=&quot;281&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;표 1. PWM 방식 비교&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 1) &lt;a href=&quot;https://www.researchgate.net/figure/Ideal-pulse-width-modulation-PWM-inverter-output-voltage-instantaneous-component-blue_fig4_319071311&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.researchgate.net/figure/Ideal-pulse-width-modulation-PWM-inverter-output-voltage-instantaneous-component-blue_fig4_319071311&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 3) &lt;a href=&quot;https://www.researchgate.net/figure/Sinusoidal-pulse-width-modulator-a-the-comparator-and-PWM-signal-b-reference-and_fig4_308944633&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.researchgate.net/figure/Sinusoidal-pulse-width-modulator-a-the-comparator-and-PWM-signal-b-reference-and_fig4_308944633&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 5, 6) 『모터제어』(김상훈 저)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 7) &lt;a href=&quot;https://www.researchgate.net/figure/Locus-of-maximum-voltage-in-SPWM-and-SVPWM_fig1_292416013&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.researchgate.net/figure/Locus-of-maximum-voltage-in-SPWM-and-SVPWM_fig1_292416013&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>제어이론</category>
      <category>PWM</category>
      <category>SPWM</category>
      <category>SVPWM</category>
      <category>모터제어</category>
      <category>전류제어기</category>
      <category>펄스폭변조</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/59</guid>
      <comments>https://zin9.tistory.com/59#entry59comment</comments>
      <pubDate>Mon, 19 Feb 2024 21:29:53 +0900</pubDate>
    </item>
    <item>
      <title>PWM 이해하기</title>
      <link>https://zin9.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;포스팅이 조금 늦어져버렸지만, 2월까지 PWM에 대한 글을 올릴 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PWM은 대략적으로 이해하고 있지만, 그 이론적인 내용과 다양한 방법에 대해 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선은 MATLAB/SIMULINK로 설계해보고 나서 간단히 수식과 이론을 이해할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 나서는 PSIM으로도 해볼까한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 SIMULINK로 설계를 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. SIMULINK 블록&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 그림은 필자가 설계한 PMSM 제어 블록도이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1593&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LNaAI/btsD4llh21x/yYo9kkEBSEQ86BXDFCbW8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LNaAI/btsD4llh21x/yYo9kkEBSEQ86BXDFCbW8K/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. PMSM 제어 블록도&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LNaAI/btsD4llh21x/yYo9kkEBSEQ86BXDFCbW8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLNaAI%2FbtsD4llh21x%2FyYo9kkEBSEQ86BXDFCbW8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1593&quot; height=&quot;352&quot; data-origin-width=&quot;1593&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. PMSM 제어 블록도&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위치 제어기와 속도 제어기는 기본으로 제공하는 PID 제어 블록을 사용한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;DQ 역변환 블록&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;DQ 역변환 블록인 &quot;Inverse DQ&quot;는 코드를 직접 만들어 적용했지만, 기본 제공하는 블록을 사용해도 무방하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;블록 안에서 D축 전류 지령을 0으로, Q축 전류 지령은 속도 제어기의 출력인 토크 지령을 토크 상수로 나누어서 입력하고 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;전기각은 기계각에 쌍 극 수를 곱해서 입력해주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;217&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDvnh4/btsD3J0R1Xy/vO0nra2ta4oK8h5Gq5huDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDvnh4/btsD3J0R1Xy/vO0nra2ta4oK8h5Gq5huDK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. DQ 역변환&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDvnh4/btsD3J0R1Xy/vO0nra2ta4oK8h5Gq5huDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDvnh4%2FbtsD3J0R1Xy%2FvO0nra2ta4oK8h5Gq5huDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;217&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;217&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. DQ 역변환&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;CRPWM&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 그 다음으로 중요한 CRPWM 블록이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CRPWM은 검색하면 잘 나오지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Current Regulated PWM의 약어로, 전류 제어 PWM이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표 전류와 현재 전류의 차이를 이용하여 PWM 신호를 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 차이가 양수면 HIGH 상태를, 음수면 LOW 상태를 생성하여 전류를 제어한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방식을 사용하면 전류제어기 없이 PWM 신호를 만들어낼 수 있어서 시뮬레이션 시간이 줄어든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/carRAu/btsD4SwcByW/ewzCLMoVQFQXvSsj7vf58K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/carRAu/btsD4SwcByW/ewzCLMoVQFQXvSsj7vf58K/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. CRPWM 블록의 일부&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/carRAu/btsD4SwcByW/ewzCLMoVQFQXvSsj7vf58K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcarRAu%2FbtsD4SwcByW%2FewzCLMoVQFQXvSsj7vf58K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;170&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. CRPWM 블록의 일부&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 3은 CRPWM의 일부이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직접 설계해보라는 의미에서 간단히 표시해두었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태변수 값을 저장하기 위해 memory 블록을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 HIGH 또는 LOW로 출력하기 위해 relay 블록을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 반전 신호를 출력하기 위해 logical operator를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Switch&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자, 다음으로 스위칭 소자가 들어있는 블록이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 IGBT를 사용했지만, MOSFET을 사용해도 무방하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어차피 이산시간계로 설계하지도 않을 것이므로 편한 소자를 사용하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;903&quot; data-origin-height=&quot;508&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cr9klC/btsD3G4luYU/DtIsjZx8kOzTPFUIBK2Kh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cr9klC/btsD3G4luYU/DtIsjZx8kOzTPFUIBK2Kh1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. 스위칭 소자 블록&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cr9klC/btsD3G4luYU/DtIsjZx8kOzTPFUIBK2Kh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcr9klC%2FbtsD3G4luYU%2FDtIsjZx8kOzTPFUIBK2Kh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;903&quot; height=&quot;508&quot; data-origin-width=&quot;903&quot; data-origin-height=&quot;508&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. 스위칭 소자 블록&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 스위칭 소자에 붙어 있는 이상한 블록?은 terminator이다. 사용하지 않아도 큰 문제는 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 DC 링크 전압을 입력해주기 위해 DC voltage source를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;Simscape / Electrical / Specialized Power Systems / Sources 에 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 자세히 보면 전력변환 소자와 연결되는 와이어의 끝은 네모 상자로 표시된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 신호선은 scope 블록으로 관찰 불가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 점 때문에 PSIM을 사용하는 게 더 좋은 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(물론 시뮬레이션 시간도 SIMULINK가 더 오래 걸린다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IGBT 블록은 이상적인 소자를 사용하기에 블록에서 제공하는 기본값을 그대로 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저항이나 인덕턴스를 따로 설정할 필요가 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;Simscape / Electrical / Specialized Power Systems / Power Electronics 에 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 UVW상 전압 신호를 연결하기 위해 connection port가 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;Simscape / Utilities 에 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;모터&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;모터는 PMSM 모델을 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: left;&quot;&gt;Simscape / Electrical / Specialized Power Systems / Electrical Machines에 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;기본 값도 왠만하면 바꾸지 않고 사용하자. 물론 이렇게 되면 게인 값을 조금 손 봐줘야 할 수도 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;값을 직접 설정하고 싶다면, PMSM 블록에서 빨간 상자에 해당하는 버튼을 클릭해주자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;토크상수를 비롯한 파라미터를 정확하게 알고 있는 경우에만 사용하자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;이 블록에서 약간 이상한 점이 있다면, 값을 설정하더라도 파라미터 설정 창을 다시 켜면 이전에 입력했던 값이 전부 날아가버린다는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: start;&quot;&gt;왜 이렇게 해놓았는지는 의문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1388&quot; data-origin-height=&quot;601&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pTSEM/btsD8y45ClH/EHpoo2F7BLefhjkrXkrjeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pTSEM/btsD8y45ClH/EHpoo2F7BLefhjkrXkrjeK/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. 모터 파라미터 설정&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pTSEM/btsD8y45ClH/EHpoo2F7BLefhjkrXkrjeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpTSEM%2FbtsD8y45ClH%2FEHpoo2F7BLefhjkrXkrjeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1388&quot; height=&quot;601&quot; data-origin-width=&quot;1388&quot; data-origin-height=&quot;601&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. 모터 파라미터 설정&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;시뮬레이션 결과&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시뮬레이션에서는 위치 지령을 스텝으로 입력했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0도에서 180도로 입력을 주니, 순간적으로 100RPM까지 상승했지만, 0.2초 이내에 지령값에 수렴한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 토크 파형은 다소 좋지 않게 나왔는데, 전류제어기가 없어서 그런 거 같기도 하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;701&quot; data-origin-height=&quot;796&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lLPF7/btsD4UHBFgD/CNDMUkImW57HBqJkGLmbtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lLPF7/btsD4UHBFgD/CNDMUkImW57HBqJkGLmbtk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 6. 시뮬레이션 결과&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lLPF7/btsD4UHBFgD/CNDMUkImW57HBqJkGLmbtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlLPF7%2FbtsD4UHBFgD%2FCNDMUkImW57HBqJkGLmbtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;701&quot; height=&quot;796&quot; data-origin-width=&quot;701&quot; data-origin-height=&quot;796&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 6. 시뮬레이션 결과&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 SIMULINK로 제어기를 설계하고 PWM도 적용해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제어 알고리즘을 테스트하는 목적이라면 PWM을 제외하고 하는 편이 훨씬 낫다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, PSIM으로 시뮬레이션 하는 편이 훨씬 빠르니 이런게 있다는 것 정도만 알아두자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 시간에는 이론으로 접근해보도록 한다.&lt;/p&gt;</description>
      <category>제어이론</category>
      <category>matlab</category>
      <category>psim</category>
      <category>PWM</category>
      <category>Simulink</category>
      <category>모터공부</category>
      <category>모터제어</category>
      <category>전류제어PWM</category>
      <category>펄스폭변조</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/57</guid>
      <comments>https://zin9.tistory.com/57#entry57comment</comments>
      <pubDate>Mon, 29 Jan 2024 19:33:40 +0900</pubDate>
    </item>
    <item>
      <title>[TMS320F28388D] SYS/BIOS 10부 - Semaphore</title>
      <link>https://zin9.tistory.com/56</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://zin9.tistory.com/55&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://zin9.tistory.com/55&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 시간에는 RTOS에 사용되는 Semaphore를 알아본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2개의 우선순위가 다른 태스크에서 세마포어를 사용하여 세마포어가 잘 동작하는지 알아볼 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9부에서는 태스크에 대해 알아보고, 10부에서 Semaphore를 본격적으로 들어갈테니 참고하도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;세마포어란?&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 세마포어가 무엇인지 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'공용자원에 동시 접근을 막는 것' 이라고 설명하면 이해가 쉬울 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서로 다른 태스크가 공용자원(변수, 버퍼 등)에 '독점적' 사용권을 가지는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;태스크가 될 수도 있고 인터럽트가 될 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어를 쉽게 열쇠라고 생각하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 작업자 A가 열쇠를 가져오면(pend, take) 작업자 B는 공용자원에 접근할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업자 A가 작업을 마치고 열쇠를 반납하면(post, give) 작업자 B는 공용자원에 접근할 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;세마포어 모드&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 카운트 모드와 바이너리 모드가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바이너리 모드는 공용자원에 1개의 태스크 또는 인터럽트가 접근할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카운트 모드는 1개 이상의 태스크 또는 인터럽트가 접근할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바이너리 모드와 카운트 모드 둘다 실습에서 확인한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nYcn5/btsCydCa76x/G7LdcVLiirZ4NbIVoJswQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nYcn5/btsCydCa76x/G7LdcVLiirZ4NbIVoJswQ1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 1. 세마포어 설정&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nYcn5/btsCydCa76x/G7LdcVLiirZ4NbIVoJswQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnYcn5%2FbtsCydCa76x%2FG7LdcVLiirZ4NbIVoJswQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;608&quot; height=&quot;284&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 1. 세마포어 설정&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;세마포어 함수&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Semaphore_pend(Semaphore_Handle handle, UINT32 timeout)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어(key)를 가져오는 함수이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때, timeout에는 BIOS_NO_WAIT 와 BIOS_WAIT_FOREVER 라는 2개의 옵션을 가진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;BIOS_NO_WAIT&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;은&amp;nbsp;&lt;/span&gt;&lt;/span&gt;bios의 응답을 기다리지 않고 즉시 가져온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BIOS_WAIT_FOREVER&lt;span&gt;&amp;nbsp;&lt;/span&gt;은 bios의 응답을 영원히 기다리는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때, 세마포어(key)를 가져오게 되면, 카운트를 1만큼 감소한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수가 실행될 때 세마포어(key)의 카운트가 0이라면, timeout 값에 따라 행동한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Semaphore_post( Semaphore_Handle handle)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어(key)를 반납하는 함수이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공용자원에 대한 접근을 마치면 세마포어(key)를 반납해서 다른 작업자가 사용할 수 있게 해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어 카운트를 1만큼 증가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자 개념으로 생각하면 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어 카운트가 0이 아닌 상태에서 Semaphore_pend() 함수가 실행되면 세마포어 카운트를 1만큼 감소한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Semaphore_post() 함수가 실행되면 세마포어 카운트를 1만큼 증가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;세마포어 설정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;app.cfg 파일에 들어가서 세마포어 설정을 그림 1과 같이 해주자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어 타입을 Binary로 하는 경우엔 세마포어 카운트는 0과 1만 사용하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 초기 카운트를 0 또는 1로 해주자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은 초기 카운트를 0으로 하는 경우에는, BIOS_start() 함수 전에 Semaphore_post(Semaphore_Handle handle) 함수를 써주자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(필자가 사용한 코드에서는 Semaphore_post(semaphore0) 이 될 것이다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기화가 중요한 이유!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 2는 Semaphore_pend() 함수가 실행될 때 세마포어 카운트가 0인 경우를 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;timeout 값이 BIOS_WAIT_FOREVER 이므로 세마포어 카운트가 0이 아니게 될 때까지 무한정 기다리게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선순위가 높은 TaskB가 먼저 실행되었고, 이 때의 세마포어 카운트가 0이었기에 무한정 기다리게 되어 Blocked 상태가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤이어 실행되는 TaskA에서도 세마포어 카운트가 0인 상태이므로 무한정 기다리게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측 상단에서 Timer와 TaskA, TaskB의 실행 카운트를 보면 두 태스크는 1회만 실행된 것을 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어 카운트 값을 강제로 1로 만들어 주더라도 태스크는 무한정 대기 상태에서 벗어나지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1597&quot; data-origin-height=&quot;817&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGZ7IZ/btsCDgD5Pbd/58i2JZ3eAW6WC4uuKs8UL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGZ7IZ/btsCDgD5Pbd/58i2JZ3eAW6WC4uuKs8UL1/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 2. 세마포어 카운트 초기값을 0으로 한 경우&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGZ7IZ/btsCDgD5Pbd/58i2JZ3eAW6WC4uuKs8UL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGZ7IZ%2FbtsCDgD5Pbd%2F58i2JZ3eAW6WC4uuKs8UL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1597&quot; height=&quot;817&quot; data-origin-width=&quot;1597&quot; data-origin-height=&quot;817&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 2. 세마포어 카운트 초기값을 0으로 한 경우&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;실습&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 3을 살펴보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Semaphore_pend() 함수가 실행되기 전에 세마포어 카운트는 1이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Semaphore_pend() 함수가 실행되면, 카운트를 1만큼 감소하여 0이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;1023&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwzN0P/btsCzp9MD53/DE4F3nefv7GyW7siDbUSn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwzN0P/btsCzp9MD53/DE4F3nefv7GyW7siDbUSn0/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 3. 세마포어 카운트 감소&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwzN0P/btsCzp9MD53/DE4F3nefv7GyW7siDbUSn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwzN0P%2FbtsCzp9MD53%2FDE4F3nefv7GyW7siDbUSn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1206&quot; height=&quot;1023&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;1023&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 3. 세마포어 카운트 감소&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 그림 4와 같이 두 태스크에서 pend와 post를 나누어 담당할 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eePkaP/btsCCzKzKjK/L6CQa2PjKicftwculeAYBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eePkaP/btsCCzKzKjK/L6CQa2PjKicftwculeAYBk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 4. 세마포어 예시&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eePkaP/btsCCzKzKjK/L6CQa2PjKicftwculeAYBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeePkaP%2FbtsCCzKzKjK%2FL6CQa2PjKicftwculeAYBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;539&quot; height=&quot;580&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 4. 세마포어 예시&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;태스크가 3개인 예시도 확인해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 5에는 TaskA, Task B, Task C가 순차적으로 실행되게끔 우선순위를 3, 2, 1로 설정했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TaskA에서 post를 하지 않은 상태에서 TaskB가 실행되며 pend를 하면 어떻게 될까?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1616&quot; data-origin-height=&quot;907&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wf6tJ/btsCxGLdkcr/LqGqwLX1hRyrFdpx5RSKmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wf6tJ/btsCxGLdkcr/LqGqwLX1hRyrFdpx5RSKmk/img.png&quot; data-alt=&quot;&amp;amp;lt;그림 5. 태스크가 3개인 예시&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wf6tJ/btsCxGLdkcr/LqGqwLX1hRyrFdpx5RSKmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwf6tJ%2FbtsCxGLdkcr%2FLqGqwLX1hRyrFdpx5RSKmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1616&quot; height=&quot;907&quot; data-origin-width=&quot;1616&quot; data-origin-height=&quot;907&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;그림 5. 태스크가 3개인 예시&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우엔 TaskB가 가장 마지막에 실행된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TaskA &amp;rarr; TaskC &amp;rarr; TaskB 순으로 실행되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 좀더 나가보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림 6과 같이 pend와 post를 각각 2개씩 태스크 4개에 나누어 놓으면?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;TaskA &amp;rarr; TaskC&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr; TaskB&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt; TaskD 순서로 실행된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;pend가 포함되어 있는 태스크 중 우선순위가 높은 TaskA가 실행된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;post가 포함되어 있는 태스크 중 우선순위가 가장 높은 TaskC가 그 다음으로 실행된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;그 다음 설명은 말하지 않아도 알 것으로 생각한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마포어 카운트의 초기값을 2로 한다면?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;TaskA &amp;rarr; TaskB&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr; TaskC&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;TaskD&lt;span&gt; 순으로 실행된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;카운트에 따라서 알아서 실행 순서를 바꿔주는 셈이다!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;심지어 우선순위가 다름에도!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TMS320F28388D 공부</category>
      <category>DSP</category>
      <category>PEND</category>
      <category>POST</category>
      <category>Semaphore</category>
      <category>SYSBIOS</category>
      <category>task</category>
      <category>TI-RTOS</category>
      <category>TMS320F28388</category>
      <category>XDC</category>
      <author>Zin9</author>
      <guid isPermaLink="true">https://zin9.tistory.com/56</guid>
      <comments>https://zin9.tistory.com/56#entry56comment</comments>
      <pubDate>Tue, 26 Dec 2023 17:10:44 +0900</pubDate>
    </item>
  </channel>
</rss>