<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>피드백 Archives - JIN&#039;s BOT</title>
	<atom:link href="https://jinsbot.com/tag/%ED%94%BC%EB%93%9C%EB%B0%B1/feed/" rel="self" type="application/rss+xml" />
	<link>https://jinsbot.com/tag/피드백/</link>
	<description>Coding + Engineering</description>
	<lastBuildDate>Sun, 22 Sep 2024 11:18:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>
<site xmlns="com-wordpress:feed-additions:1">158124120</site>	<item>
		<title>제어 이론 기본 개념</title>
		<link>https://jinsbot.com/pid-control-%ec%a0%9c%ec%96%b4/</link>
					<comments>https://jinsbot.com/pid-control-%ec%a0%9c%ec%96%b4/#respond</comments>
		
		<dc:creator><![CDATA[geniuskpj]]></dc:creator>
		<pubDate>Sat, 28 Jan 2023 09:18:03 +0000</pubDate>
				<category><![CDATA[ControlTheory]]></category>
		<category><![CDATA[Control]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[PID]]></category>
		<category><![CDATA[제어]]></category>
		<category><![CDATA[제어기]]></category>
		<category><![CDATA[피드백]]></category>
		<guid isPermaLink="false">https://jinsbot.com/?p=847</guid>

					<description><![CDATA[<p>제어 관련 기초적인 내용을 정리하여 공유한다. 제어 배경 지식 Laplace 변환 Time domain 함수 를 s-domain 함수 로의 변환을 말한다. 개념은 어려울 수 있는데 이해하기 보단 미분방정식을 풀기 위한 도구라고만 알아두자. 라플라스 변환을 통해 복잡한 미분방정식을 간단한 대수방정식으로 바꾸어 풀 수 있다. 그리고 시간 영역에서 풀기 어려운 문제를 다른 영역에서 해석하면 유용한 정보를 추출할 수 [&#8230;]</p>
<p>The post <a href="https://jinsbot.com/pid-control-%ec%a0%9c%ec%96%b4/">제어 이론 기본 개념</a> appeared first on <a href="https://jinsbot.com">JIN&#039;s BOT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>제어 관련 기초적인 내용을 정리하여 공유한다.</p>
<h2 class="wp-block-heading">제어 배경 지식</h2>
<h3 class="wp-block-heading">Laplace 변환</h3>
<p>Time domain 함수 <img decoding="async" src="https://s0.wp.com/latex.php?latex=f%28t%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="f(t)" class="latex" />를 s-domain 함수 <img decoding="async" src="https://s0.wp.com/latex.php?latex=F%28s%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="F(s)" class="latex" />로의 변환을 말한다.</p>
<p>개념은 어려울 수 있는데 이해하기 보단</p>
<p><a href="https://namu.wiki/w/%EB%AF%B8%EB%B6%84%EB%B0%A9%EC%A0%95%EC%8B%9D" target="_blank" rel="noreferrer noopener">미분방정식</a>을 풀기 위한 도구라고만 알아두자.</p>
<p>라플라스 변환을 통해 복잡한 미분방정식을</p>
<p>간단한 <strong>대수방정식</strong>으로 바꾸어 풀 수 있다.</p>
<p>그리고 시간 영역에서 풀기 어려운 문제를</p>
<p>다른 영역에서 해석하면 유용한 정보를 추출할 수 있다.</p>
<h3 class="wp-block-heading">Transfer function</h3>
<p>이런 장점을 ‘<strong>전달 함수</strong>‘에서 잘 볼 수 있다.</p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=H%28s%29%3D%5Cfrac%7BOutput%28s%29%7D%7BInput%28s%29%7D%3D%5Cfrac%7B%28s-b_1%29%5Ccdots%28s-b_m%29%7D%7B%28s-a_1%29%5Ccdots%28s-a_n%29%7D&#038;bg=ffffff&#038;fg=000&#038;s=2&#038;c=20201002" alt="H(s)=&#92;frac{Output(s)}{Input(s)}=&#92;frac{(s-b_1)&#92;cdots(s-b_m)}{(s-a_1)&#92;cdots(s-a_n)}" class="latex" /></p>
<p>위와 같이 정의되고 함수 <img decoding="async" src="https://s0.wp.com/latex.php?latex=H%28s%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="H(s)" class="latex" />가 Input을</p>
<p>어떻게 변화시킬 지 직관적으로 보여준다.</p>
<p>예를 들어 Input(s)의 해 <img decoding="async" src="https://s0.wp.com/latex.php?latex=a_1%2C%5Ccdots%2Ca_n&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="a_1,&#92;cdots,a_n" class="latex" /> 중</p>
<p>어느 하나라도 실수 값이 양수라면 Ouput은 발산한다.</p>
<p>이 말을 간단하게 정리하면 다음과 같다.</p>
<ul>
<li><img decoding="async" src="https://s0.wp.com/latex.php?latex=%5Cforall+Re%28a_i%29%3C0%22&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#92;forall Re(a_i)&lt;0&quot;" class="latex" /> 일 때 <img decoding="async" src="https://s0.wp.com/latex.php?latex=H%28s%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="H(s)" class="latex" /> 는 stable하다.</li>
</ul>
<p>TF는 미적분과정까지 포함해 하나의 분수 형태로 표현할 수 있다.</p>
<p>보통 Input 과 Output 에 따라 다음 표와 같이 Plant, Controller 를 구분한다.</p>
<figure class="wp-block-table">
<table class="has-fixed-layout">
<thead>
<tr>
<th>명칭</th>
<th>Input</th>
<th>Output</th>
</tr>
</thead>
<tbody>
<tr>
<td>Controller</td>
<td>기준값</td>
<td>제어입력</td>
</tr>
<tr>
<td>Plant</td>
<td>제어입력</td>
<td>측정값, State</td>
</tr>
</tbody>
</table>
</figure>
<h2 class="wp-block-heading">Feedback 제어</h2>
<figure class="wp-block-image size-full"><a href="https://jinsbot.com/wp-content/uploads/2024/09/feedback.webp"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-862" src="https://jinsbot.com/wp-content/uploads/2024/09/feedback.webp" alt="" width="634" height="446" srcset="https://jinsbot.com/wp-content/uploads/2024/09/feedback.webp 634w, https://jinsbot.com/wp-content/uploads/2024/09/feedback-300x211.webp 300w, https://jinsbot.com/wp-content/uploads/2024/09/feedback-150x106.webp 150w" sizes="(max-width: 634px) 100vw, 634px" /></a><br /><noscript><br />
<img data-lazy-fallback="1" decoding="async" width="634" height="446" src="https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback.jpg" alt="피드백 제어" class="wp-image-1037" srcset="https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback.jpg 634w, https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback-300x211.jpg 300w, https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback-150x106.jpg 150w" sizes="(max-width: 634px) 100vw, 634px"/><br />
</noscript></figure>
<h3 class="wp-block-heading">Open-loop controller</h3>
<p>위에 나오듯 기준값으로만 제어 입력을 계산하는 것을</p>
<p>Open-loop 제어기라고 부른다.</p>
<p>이 때 Open-loop TF는 다음과 같이 구할 수 있다.</p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=Y%3DCGR&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="Y=CGR" class="latex" /></p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=%5Crightarrow+H_%7BOL%7D%28s%29%3D%5Cfrac+%7BY%28s%29%7D%7BR%28s%29%7D%3DCG+&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#92;rightarrow H_{OL}(s)=&#92;frac {Y(s)}{R(s)}=CG " class="latex" /></p>
<p>따라서 Y가 R을 정확히 추종하기 위해서는 <img decoding="async" src="https://s0.wp.com/latex.php?latex=C%3DG%5E-1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="C=G^-1" class="latex" /> 가 되어야한다.</p>
<p>G에 오차가 있는 경우 그만큼 오차 E가 발생한다.</p>
<h3 class="wp-block-heading">Closed-loop controller</h3>
<p>아래 diagram처럼 기준값과 측정값의 차이를 이용하는 것을</p>
<p>Closed-loop 제어기라고 한다.</p>
<p>이 때 Closed-loop TF는 다음과 같다.</p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=Y%3DCG%28R-Y%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="Y=CG(R-Y)" class="latex" /></p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=%5Crightarrow+%281%2BCG%29Y%3DCGR&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#92;rightarrow (1+CG)Y=CGR" class="latex" /></p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=%5Crightarrow+H_%7BCL%7D%28s%29%3D%5Cfrac+%7BY%28s%29%7D%7BR%28s%29%7D%3D%5Cfrac%7BCG%7D%7B1%2BCG%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#92;rightarrow H_{CL}(s)=&#92;frac {Y(s)}{R(s)}=&#92;frac{CG}{1+CG}" class="latex" /></p>
<p>G에 대한 정보가 없더라도 <img decoding="async" src="https://s0.wp.com/latex.php?latex=C+%5Crightarrow+%5Cinfty&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="C &#92;rightarrow &#92;infty" class="latex" />라면 <img decoding="async" src="https://s0.wp.com/latex.php?latex=H_%7BCL%7D+%5Crightarrow+I&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="H_{CL} &#92;rightarrow I" class="latex" />이기때문에</p>
<p>손쉽게 오차를 최소화 할 수 있다.</p>
<p>위의 예시처럼 측정값을 제어에 사용하는 걸 Feedback 제어라고 한다.</p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=H_%7BOL%7D%2CH_%7BCL%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="H_{OL},H_{CL}" class="latex" />를 각각 Open-loop,Closed-loop 게인이라고도 말하며</p>
<p>기호로는<img decoding="async" src="https://s0.wp.com/latex.php?latex=L%28s%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="L(s)" class="latex" />로 나타낸다.</p>
<h2 class="wp-block-heading">외란, 잡음이 존재할 때의 제어</h2>
<p>좀 더 General한 경우 저주파 외란 <img decoding="async" src="https://s0.wp.com/latex.php?latex=W%28s%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="W(s)" class="latex" />와 고주파 잡음<img decoding="async" src="https://s0.wp.com/latex.php?latex=V%28s%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="V(s)" class="latex" />가 존재한다.</p>
<figure class="wp-block-image size-full"><a href="https://jinsbot.com/wp-content/uploads/2024/09/feedback_wv.webp"><img decoding="async" class="aligncenter size-full wp-image-863" src="https://jinsbot.com/wp-content/uploads/2024/09/feedback_wv.webp" alt="" width="643" height="487" srcset="https://jinsbot.com/wp-content/uploads/2024/09/feedback_wv.webp 643w, https://jinsbot.com/wp-content/uploads/2024/09/feedback_wv-300x227.webp 300w, https://jinsbot.com/wp-content/uploads/2024/09/feedback_wv-150x114.webp 150w" sizes="(max-width: 643px) 100vw, 643px" /></a><br /><noscript><br />
<img loading="lazy" data-lazy-fallback="1" decoding="async" width="643" height="487" src="https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback_wv.jpg" alt="Feedback with disturbance,noise" class="wp-image-1052" srcset="https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback_wv.jpg 643w, https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback_wv-300x227.jpg 300w, https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/feedback_wv-150x114.jpg 150w" sizes="(max-width: 643px) 100vw, 643px"/><br />
</noscript></figure>
<h3 class="wp-block-heading">Open-loop</h3>
<p>이 때 측정값 Y는 다음과 같다.</p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=Y%3DG%28CR%2BW%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="Y=G(CR+W)" class="latex" /></p>
<p>외란이 존재할경우 GW 만큼의 오차가 항상 발생한다.</p>
<h3 class="wp-block-heading">Closed-loop</h3>
<p>이 경우는 다음과 같다.</p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=Y%3DG%28C%28R-Y-V%29%2BW%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="Y=G(C(R-Y-V)+W)" class="latex" /></p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=%5Crightarrow+%281%2BCG%29Y%3DCGR%2BGW-CGV&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#92;rightarrow (1+CG)Y=CGR+GW-CGV" class="latex" /></p>
<p><img decoding="async" src="https://s0.wp.com/latex.php?latex=%5Crightarrow+Y%3D%5Cfrac%7BCG%7D%7B1%2BCG%7DR%2B%5Cfrac%7BG%7D%7B1%2BCG%7DW-%5Cfrac%7BCG%7D%7B1%2BCG%7DV&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="&#92;rightarrow Y=&#92;frac{CG}{1+CG}R+&#92;frac{G}{1+CG}W-&#92;frac{CG}{1+CG}V" class="latex" /></p>
<p>기준값을 추종하기 위해 R의 계수는 1로 만들어야하고</p>
<p>외란,잡음의 영향을 최소화 하기 위해 W,V의 계수는 0으로 만들어야 한다.</p>
<p>Open-loop 와 달리 피드백 제어는 C를 잘 설계하여 세가지를 다 만족시킬 수 있다.</p>
<h3 class="wp-block-heading">loop shaping</h3>
<p>R의 계수를 1로 만들고 W의 계수를 0으로 만드려면 C를 키워야한다.</p>
<p>하지만 V의 계수를 0으로 만드려면 C를 줄여야하기때문에 딜레마다.</p>
<p>다행히도 C(s)는 상수가 아니라 s에 대한 함수이기때문에</p>
<p>주파수 영역에 따라 다른 크기를 가지도록 설계할 수 있다.</p>
<p>Loop gain <img decoding="async" src="https://s0.wp.com/latex.php?latex=L%28s%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="L(s)" class="latex" />를 목적에 맞게 설계하는 것을 Loop shaping이라고 한다.</p>
<p>Open-loop gain에 대해 그래프로 나타내보자.</p>
<figure class="wp-block-image size-full"><a href="https://jinsbot.com/wp-content/uploads/2024/09/loopshaping.webp"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-867" src="https://jinsbot.com/wp-content/uploads/2024/09/loopshaping.webp" alt="" width="524" height="431" srcset="https://jinsbot.com/wp-content/uploads/2024/09/loopshaping.webp 524w, https://jinsbot.com/wp-content/uploads/2024/09/loopshaping-300x247.webp 300w, https://jinsbot.com/wp-content/uploads/2024/09/loopshaping-150x123.webp 150w" sizes="(max-width: 524px) 100vw, 524px" /></a><br /><noscript><br />
<img data-lazy-fallback="1" loading="lazy" decoding="async" width="524" height="431" src="https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/loopshaping.jpg" alt="제어 loop gain" class="wp-image-1057" srcset="https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/loopshaping.jpg 524w, https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/loopshaping-300x247.jpg 300w, https://web.archive.org/web/20240529095117im_/https://jinsbot.com/wp-content/uploads/2023/01/loopshaping-150x123.jpg 150w" sizes="(max-width: 524px) 100vw, 524px"/><br />
</noscript></figure>
<p>보통 R과 W는 저주파 영역에 졶재하고 V는 고주파 영역에 존재한다.</p>
<p>따라서 L(s)는 다음과 같은 조건을 가지면 목표성능을 만족시킬 수 있다.</p>
<ul>
<li>저주파 영역 <img decoding="async" src="https://s0.wp.com/latex.php?latex=%28s%3C%5Comega_1%29%3A+L%28s%29%3EL_1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="(s&lt;&#92;omega_1): L(s)&gt;L_1" class="latex" /></li>
<li>고주파 영역 <img decoding="async" src="https://s0.wp.com/latex.php?latex=%28s%3E%5Comega_2%29%3A+L%28s%29%3CL_2&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002" alt="(s&gt;&#92;omega_2): L(s)&lt;L_2" class="latex" /></li>
</ul>
<p>이 조건대로 설계할 수 있는 방법론이 많지만 다음 제어기들이 가장 많이 쓰인다.</p>
<ul>
<li>Lead, Lag 보상기</li>
<li>PID 제어기</li>
<li>H-infinity 제어기</li>
</ul>
<p>추후에 이들 제어기에 대해서도 설명하겠다.</p>


<p></p>
<p>The post <a href="https://jinsbot.com/pid-control-%ec%a0%9c%ec%96%b4/">제어 이론 기본 개념</a> appeared first on <a href="https://jinsbot.com">JIN&#039;s BOT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jinsbot.com/pid-control-%ec%a0%9c%ec%96%b4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">847</post-id>	</item>
	</channel>
</rss>
