<?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/"
	>

<channel>
	<title>制御入門と実践 | 即戦力モノづくり!エンジニアへの道標</title>
	<atom:link href="https://depfields.com/category/control/feed/" rel="self" type="application/rss+xml" />
	<link>https://depfields.com</link>
	<description>組み込み（マイコン）スキルを楽しんで学びながら身につけて短期間で効率よく自由自在に扱えるようになりたいと思いませんか？</description>
	<lastBuildDate>Mon, 16 Dec 2024 06:18:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://depfields.com/wp-content/uploads/2020/07/cropped-favicon-1-32x32.png</url>
	<title>制御入門と実践 | 即戦力モノづくり!エンジニアへの道標</title>
	<link>https://depfields.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>インパルス応答とその伝達関数の物理的解釈</title>
		<link>https://depfields.com/inpulse/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=inpulse</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Thu, 28 Apr 2022 15:20:44 +0000</pubDate>
				<category><![CDATA[実践で使う制御理論]]></category>
		<category><![CDATA[最新記事]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=13081</guid>

					<description><![CDATA[<p>システム入出力間の時間領域における関数g(t)が入力信号に応じてどのような特性をもつのか検証してみました。この検証のためにはインパルス応答というものが必要ですので、まずインパルス信号について要点を押さえていきます。インパ [&#8230;]</p>
<p>The post <a href="https://depfields.com/inpulse/">インパルス応答とその伝達関数の物理的解釈</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img fetchpriority="high" decoding="async" width="800" height="420" src="https://depfields.com/wp-content/uploads/2022/04/impact-front.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2022/04/impact-front.jpg 800w, https://depfields.com/wp-content/uploads/2022/04/impact-front-300x158.jpg 300w, https://depfields.com/wp-content/uploads/2022/04/impact-front-768x403.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></div>
<p class="vk_block-margin-sm--margin-bottom vk_block-margin-sm--margin-top">システム入出力間の時間領域における関数g(t)が入力信号に応じてどのような特性をもつのか検証してみました。この検証のためには<strong><a href="https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%91%E3%83%AB%E3%82%B9%E5%BF%9C%E7%AD%94" target="_blank" rel="noreferrer noopener">インパルス応答</a></strong>というものが必要ですので、まず<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス信号</span></strong>について要点を押さえていきます。インパルス応答は機械系のモーションコントロールを扱っているうえでは普段はあまり意識せずともよいところですが、制御理論としてはよく目にするものです。電気系システムの信号解析などにはよく使用されるかもしれません。</p>



<p class="vk_block-margin-sm--margin-bottom vk_block-margin-sm--margin-top">周波数領域であるs空間での伝達関数表記では入力U(s)、制御対象G(s)、出力Y(s)は分けて解釈できるのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時間領域の関数g(t)の特性は入力信号u(t)との合成</span><span class="tadv-color" style="color:#cf2e2e">、</span></strong>つまり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><span class="tadv-color" style="color:#cf2e2e">y(t)=g(t)</span></span></strong>によるものなので実態がつかみにくいことになります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">そこでシステムに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ステップ入力</span></strong>を与えたときの応答と比較しながら、インパルス応答時の特性を調べて、数式的な解釈と物理的な現象ではどういうことを意味するのかを考察していきます。</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>







<h2 class="wp-block-heading">インパルス入力の定義</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス入力</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時間幅が無限小</span></strong>で、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>振幅は無限大</strong></span>、かつ<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">積分すると1</span></strong>であるものです。実現はできませんが、数式の上でシステム特性を調べるのに有用です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>システムに対して瞬時に衝撃的なインパルス入力を与えるとその応答として安定して収束するのか、不安定になり発散するのか、いわゆる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><span style="color:#cf2e2e" class="tadv-color">システムそのものの特性</span></span></strong>が現れます。これが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス応答</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="228" height="140" src="https://depfields.com/wp-content/uploads/2022/04/impulse-definition.jpg" alt="" class="wp-image-13191"/><figcaption class="wp-element-caption"><span data-fontsize="14px" style="font-size: 14px;" class="vk_inline-font-size">インパルス信号の定義</span></figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>理想のインパルス信号は現実には生成できませんので試験等で使用するには近似したものを使用します。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="306" src="https://depfields.com/wp-content/uploads/2022/04/impulse.jpg" alt="" class="wp-image-13093" srcset="https://depfields.com/wp-content/uploads/2022/04/impulse.jpg 640w, https://depfields.com/wp-content/uploads/2022/04/impulse-300x143.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス信号は<a href="https://depfields.com/controltheory-preparation/" target="_blank" rel="noreferrer noopener" title="">ラプラス変換</a>すると1</span></strong>となるのも特徴です。つまり、システム伝達関数のインパルス応答特性を時間領域に逆ラプラス変換する場合、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">s領域での入力は1</span></strong>なので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><span style="color:#cf2e2e" class="tadv-color">伝達関数そのものの特性</span></span></strong>を調べることになります。これが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス応答の重要な部分</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="218" height="154" src="https://depfields.com/wp-content/uploads/2022/04/s-impulse.jpg" alt="" class="wp-image-13094"/><figcaption class="wp-element-caption"><span data-fontsize="14px" style="font-size: 14px;" class="vk_inline-font-size">インパルス入力のラプラス変換</span></figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="357" height="167" src="https://depfields.com/wp-content/uploads/2022/04/s-input.jpg" alt="" class="wp-image-13186" srcset="https://depfields.com/wp-content/uploads/2022/04/s-input.jpg 357w, https://depfields.com/wp-content/uploads/2022/04/s-input-300x140.jpg 300w" sizes="(max-width: 357px) 100vw, 357px" /></figure>



<h2 class="wp-block-heading">入力に対するそれぞれの応答</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>さて、インパルス入力というものがわかったところで、システムにステップ入力を与えた場合と比較していきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>下の表に、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システム伝達関数G(s)</span></strong>が、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定数K</span></strong>、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>積分1/s</strong></span>および<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>1次遅れ1/(1+Ts)</strong></span>の場合に、それぞれ<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス入力</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ステップ入力</span></strong>を与えた場合の時間関数g(t)を記載しています。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="470" height="366" src="https://depfields.com/wp-content/uploads/2022/04/conv-table.jpg" alt="" class="wp-image-13187" srcset="https://depfields.com/wp-content/uploads/2022/04/conv-table.jpg 470w, https://depfields.com/wp-content/uploads/2022/04/conv-table-300x234.jpg 300w" sizes="(max-width: 470px) 100vw, 470px" /><figcaption class="wp-element-caption">定数・積分・1次遅れ系の伝達関数G(s)とインパルス・ステップ応答g(t)</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>以下にシステムが定数、積分、一次遅れの場合に入力に対してどのような出力となるかを図解で解釈していきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">s領域の伝達関数が定数の場合</span></strong>①②は時間領域のシステムも感覚通りに理解できます。例えば、伝達関数が定数Kの場合には入力が1の場合は出力はK倍のKになります。時間領域でも入力1に対して出力はKになります。どの条件でも出力は入力のK倍となります。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="399" height="260" src="https://depfields.com/wp-content/uploads/2022/04/constant.jpg" alt="" class="wp-image-13097" srcset="https://depfields.com/wp-content/uploads/2022/04/constant.jpg 399w, https://depfields.com/wp-content/uploads/2022/04/constant-300x195.jpg 300w" sizes="(max-width: 399px) 100vw, 399px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>次は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">伝達関数が積分の場合</span></strong>③④です。数学的な解釈ではインパルス信号の定義や積分の意味から<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス入力に対する応答は1</span></strong>の固定値で、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ステップ入力に対する積分応答は出力が線形に増加</span></strong>することがわかります。s領域の伝達関数から解釈するとこのように理解するのに迷いはないとおもいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今度は逆に<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%, rgba(255, 253, 107, 0.7) 0px);" class="vk_highlighter"><b>時間領域のシステムが1または</b></span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定数の場合</span></strong>②③から考えてみます。つまり、g(t)=1(定数)の場合です。これは物理的にはどのような状態を意味するのでしょうか。ちょっと解釈に迷うところですが、入力に対して出力の変化がないこと、つまり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システムの時間経過において状態の変化がない</span></strong>ことを意味しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ちょっと抽象的な表現のため、具体的な例を次節「<strong><a href="#equation">運動方程式での解釈</a></strong>」で運動方程式を使って説明します。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="405" height="276" src="https://depfields.com/wp-content/uploads/2022/04/integral.jpg" alt="" class="wp-image-13098" srcset="https://depfields.com/wp-content/uploads/2022/04/integral.jpg 405w, https://depfields.com/wp-content/uploads/2022/04/integral-300x204.jpg 300w" sizes="(max-width: 405px) 100vw, 405px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>最後に、システムが一次遅れ特性をもつ場合⑤⑥です。積分特性に比べて直感的に動作を解釈しやすいと思います。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="379" height="250" src="https://depfields.com/wp-content/uploads/2022/04/1st-lag.jpg" alt="" class="wp-image-13143" srcset="https://depfields.com/wp-content/uploads/2022/04/1st-lag.jpg 379w, https://depfields.com/wp-content/uploads/2022/04/1st-lag-300x198.jpg 300w" sizes="(max-width: 379px) 100vw, 379px" /></figure>



<h2><a id="equation"></a>運動方程式での解釈</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>積分特性を物理的に解釈するために、摩擦を無視した質量Mの物体に外力<em>f(t)</em>を与えたときの速度<em>v(t)</em>について考えます。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="503" height="295" src="https://depfields.com/wp-content/uploads/2022/04/eqation-of-motion.jpg" alt="" class="wp-image-13145" srcset="https://depfields.com/wp-content/uploads/2022/04/eqation-of-motion.jpg 503w, https://depfields.com/wp-content/uploads/2022/04/eqation-of-motion-300x176.jpg 300w" sizes="(max-width: 503px) 100vw, 503px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>時間領域の運動方程式において、外力<em>f(t)</em>により生じる加速度<em>a(t)</em>は質量Mが一定であれば外力<em>f(t)</em>に比例します。つまり、入力を外力<em>f(t)</em>、出力を加速度<em>a(t)</em>とすると、入出力間の伝達関数は①②の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定数</span></strong>に相当します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>物体の速度<em>v(t)</em>は加速度<em>a(t)</em>の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時間積分</span></strong>ですので、外力<em>f(t)</em>からみると<em>v(t)</em>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">積分器を通したもの</span></strong>になります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここから本題に入ります。静止している物体に外力として<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インパルス入力を与える</span></strong>と物体は初速度<em>V<sub>0</sub></em>で運動を始め、摩擦がない空間では質量Mによる慣性により<em>V<sub>0</sub></em>の等速運動を続けます③。つまり、入力に対して時間経過において速度<em>v(t)</em>の状態変化はありません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これが、時間関数<em>g(t)</em>が一定であるシステムにインパルス入力を与えた積分動作の物理的解釈です。</p>
</div></div></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="450" height="195" src="https://depfields.com/wp-content/uploads/2022/04/impulse-motion.jpg" alt="" class="wp-image-13105" style="width:450px;height:195px" srcset="https://depfields.com/wp-content/uploads/2022/04/impulse-motion.jpg 450w, https://depfields.com/wp-content/uploads/2022/04/impulse-motion-300x130.jpg 300w" sizes="(max-width: 450px) 100vw, 450px" /><figcaption class="wp-element-caption">インパルス入力f(t)：初期速度Voの等速運動</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>外力<em>f(t)</em>を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ステップ入力</span></strong>にした場合は、物体は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">一定の加速度<em>a(t)</em>で等加速度運動</span></strong>し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度<em>v(t)</em>は線形に増加する積分動作</span></strong>④をします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ステップ入力自体の<strong><a href="https://depfields.com/controltheory-preparation/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【準備編】">ラプラス変換</a></strong>は積分と同じ<strong>1/s</strong>になるため、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">積分システムにステップ入力</span></strong>を与えると<strong>1/s<sup>2</sup></strong>の特性で出力は<strong>ランプ関数</strong>になります。</p>
</div></div></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="453" height="201" src="https://depfields.com/wp-content/uploads/2022/04/step-motion.jpg" alt="" class="wp-image-13106" style="width:458px;height:236px" srcset="https://depfields.com/wp-content/uploads/2022/04/step-motion.jpg 453w, https://depfields.com/wp-content/uploads/2022/04/step-motion-300x133.jpg 300w" sizes="(max-width: 453px) 100vw, 453px" /><figcaption class="wp-element-caption">ステップ入力f(t)：等加速度運動</figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>高校物理の教科書や参考書でよく見かける水平投射は<strong>インパルス入力</strong>による<span style="background-color: #ffff99;"><strong>初速度V<sub>0</sub>の等速直線運動</strong></span>で、鉛直方向は自由落下で<strong>ステップ入力に相当する重力</strong>による<span style="background-color: #ffff99;"><strong>加速度gの等加速度運動</strong></span>です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>現実には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">摩擦が存在</span></strong>するので、外力<em>f(t)</em>をステップ入力で与えると、摩擦力と釣り合い、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度<em>v(t)</em></span></strong>は1次遅れになります。</p>
</div></div></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="443" height="186" src="https://depfields.com/wp-content/uploads/2022/04/1st-lag-motion.jpg" alt="" class="wp-image-13202" style="width:333px;height:139px" srcset="https://depfields.com/wp-content/uploads/2022/04/1st-lag-motion.jpg 443w, https://depfields.com/wp-content/uploads/2022/04/1st-lag-motion-300x126.jpg 300w" sizes="(max-width: 443px) 100vw, 443px" /><figcaption class="wp-element-caption">ステップ入力f(t)：摩擦がある1次遅れ系</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-sm--margin-top"></div></div>



<p>後記：<br>インパルス応答は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システムそのものの応答特性</span></strong>を検証するのに有用なもので、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実用的なステップ応答と比較</span></strong>して解説しました。数式上では公式として当たり前のように使用しているものでも完全に理解していなければうまく説明できないことがあります。今回、焦点をあてたインパルス、ステップ応答と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">積分との組み合わせ</span></strong>も意外と完全に理解できるまで手こずりました。他にもこのような事例があればできるだけ凡例をあげて解釈していきたいと思います。</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div><p>The post <a href="https://depfields.com/inpulse/">インパルス応答とその伝達関数の物理的解釈</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>制御入門【ARMマイコンによる応用と実践】</title>
		<link>https://depfields.com/controltheory/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=controltheory</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Mon, 11 Apr 2022 14:41:09 +0000</pubDate>
				<category><![CDATA[制御入門と実践]]></category>
		<category><![CDATA[制御理論]]></category>
		<category><![CDATA[モーションコントロール]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=12491</guid>

					<description><![CDATA[<p>実践で使う制御理論 みなさんは制御と聞くと何を思い浮かべるでしょうか。イメージはひとそれぞれだと思いますが、ロボットなどの装置を構想したとおりの動作になるようにプログラミング等で実現することを想像するひとも多いのではない [&#8230;]</p>
<p>The post <a href="https://depfields.com/controltheory/">制御入門【ARMマイコンによる応用と実践】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="480" src="https://depfields.com/wp-content/uploads/2022/04/gyro-boy.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2022/04/gyro-boy.jpg 640w, https://depfields.com/wp-content/uploads/2022/04/gyro-boy-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>




<h2 class="wp-block-heading">実践で使う制御理論</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">みなさんは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御</span></strong>と聞くと何を思い浮かべるでしょうか。イメージはひとそれぞれだと思いますが、ロボットなどの装置を構想したとおりの動作になるようにプログラミング等で実現することを想像するひとも多いのではないでしょうか。このサイトで扱う制御はプログラミング等で命令を順次実行して想定通りの動作を実現するいわゆるシーケンス制御ではなく、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードバック制御</span></strong>と呼ばれるものです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードバック制御</span></strong>は実行したいターゲット（制御対象）に与えた目標値（入力）に対して、センサーなどで検知した動作量（出力）を入力側に戻して自動で最適に調整して目標値に近づける制御方式です。フィードバック制御は感覚的に実現するものではなく、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御理論</span></strong>に基づいて設計するものですが、この制御理論というものは工学というよりむしろ数学に近いものでとても難解なものです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">制御理論は制御工学に属するものですが他の工学分野と比較してとても<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">抽象的</span></strong>なものです。学問としての制御理論について詳しい解説等はよく見られるのですが、理論の範囲内にとどまっていて実際のモノに適用して実験レベルを超えて実用化させた経験のある人は果たしてどれくらいいるでしょうか。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">実際のモノに適用する際には、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">理論とのインターフェースがわかりにくい</span></strong>部分で、物理的モデルの不確かさ、外乱やノイズによる影響、入出力の物理的制限（電流制限、センサ分解能等）、またプログラミングによる離散化の影響など現実に直面する多くの要素すべて解決しなければ実用的なものとはなりません。そういった意味で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">本当に使える人</span></strong>はあまりいないのではないでしょうか。それだけに、基礎を理解し<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実際にモノに適用して経験を積む</span></strong>と人より一歩先に進めることは確実です。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">このサイトでは独学ではなかなか理解しにくい制御理論をできるだけ感覚的に理解できるように物理的な<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モーションコントロール</span></strong>を例にあげて解説しています。<strong><a href="https://depfields.com/controltheory-preparation/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【準備編】">「準備編」</a></strong>からはじめて<strong><a href="https://depfields.com/controltheory-advanced/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【発展編】">「発展編」</a></strong>まで理解できるころには実践で応用できるきっかけはつかめるのではないでしょうか。<strong><a href="#motioncontrol">モーションコントロールアプリ</a></strong>では実際のモノに適用して検証していますので制御理論が本当に有効で実用的であることが実感できると思います。</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h3 class="wp-block-heading">準備編</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/controltheory-preparation" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.12.07</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/12/control-theory1-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">マイコンで実現するフィードバック制御のための基礎知識【準備編】</div><div class="lkc-url" title="https://depfields.com/controltheory-preparation">https://depfields.com/controltheory-preparation</div><div class="lkc-excerpt">組み込み・マイコンを使ったモーションコントロールを実現するうえで使いこなせれば設計開発の世界が広がる制御理論の概要について自分なりにまとめてみました。制御といってもプログラミングのように命令順に実行するシーケンス制御ではなく、コントロール対象の出力を入力側に返して比較修正するフィードバック制御についてです 。 一般的に制御工学と呼ばれている分野のもので、市販の書物や教科書などに書かれている内容は物理的なものというよりむしろ数学的で初心者には抽象的すぎて独学ではとても簡単に理解できるものではあり...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">解析編</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/controltheory-analysis" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.12.08</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/12/control-theory2-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">マイコンで実現するフィードバック制御のための基礎知識【解析編】</div><div class="lkc-url" title="https://depfields.com/controltheory-analysis">https://depfields.com/controltheory-analysis</div><div class="lkc-excerpt">マイコンで実現するフィードバック制御のための基礎知識【準備編 】ではフィードバック制御の概要およびモデリングした制御対象を複素数s空間にラプラス変換して伝達関数を作成するところまでをまとめています。この【解析編】ではブロック線図の見方および伝達関数の基本形である1次遅れおよび2次遅れ系の特性を解説してから、いよいよフィードバック制御システムを設計するための勘所をできるだけ数式と物理的な観点を合わせて解説していきたいとおもいます。特に安定性や追従性を解説するには最低限の数式で表現しなければ説明でき...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">応用編</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/controltheory-application" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2020.12.08</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/12/control-application-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">マイコンで実現するフィードバック制御のための基礎知識【応用編】</div><div class="lkc-url" title="https://depfields.com/controltheory-application">https://depfields.com/controltheory-application</div><div class="lkc-excerpt"> マイコンで実現するフィードバック制御のための基礎知識【解析編 】 では制御理論として制御対象を数式でモデリングをしてフィードバックを施して特性を改善させたり出力の目標値への追従性を向上させるための手段を数式により解説をしてきました。これからは制御理論を実践現場の技術として応用されているものを紹介しながら、実際にどのように活用されているかを確認していきたいと思います。           PID制御とはめかのとろPID制御とは現場でよく聞かれるフィードバック制御の一種です。PIDは比例Proportional, 積分Integral, 微...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">発展編</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/controltheory-advanced" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2021.01.11</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/01/harddisk-4002369_640-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">マイコンで実現するフィードバック制御のための基礎知識【発展編】</div><div class="lkc-url" title="https://depfields.com/controltheory-advanced">https://depfields.com/controltheory-advanced</div><div class="lkc-excerpt">マイコンで実現するフィードバック制御のための基礎知識【応用編 】では古典制御理論をベースに実践で使われるPID制御を解説しました。PID制御は感覚的にゲインを設定できるので、制御をするモデルが比較的単純なものである場合は現場でも使いやすいのですが、外乱や制御対象のパラメータ変動などによりモデル化できなかった部分の影響が大きい場合は望んだとおりの性能は期待できないことになります。そこで、本編では従来の古典制御理論を発展させたDCモータを制御モデルとしたアドバンスト制御とよばれるものを紹介します。目的は実...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">番外編</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/controltheory-modern" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2021.01.15</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/01/2387976_s-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">マイコンで実現するフィードバック制御のための基礎知識【番外編】</div><div class="lkc-url" title="https://depfields.com/controltheory-modern">https://depfields.com/controltheory-modern</div><div class="lkc-excerpt">倒立振子は現代制御理論の典型的な教材です。一般的に出回っている情報では学術的すぎるか、試行錯誤的すぎるかのものが多く初心者でも理解できるように体系的に検証したものはあまりみられないため、実践で使えそうなものに絞りまとめてみました。さらにロバスト制御を適用し、より実用的な検証をしてみました。    現代制御理論の適用めかのとろこれまで伝達関数をベースとしてフィードバック制御について検証してきました。いわゆる古典制御でのアプローチです。制御できるのは原則として1入力1出力の制御対象システムで温度コント...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">多角的な解釈</h3>


<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/inpulse" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2022.04.29</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2022/04/impact-front-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">インパルス応答とその伝達関数の物理的解釈</div><div class="lkc-url" title="https://depfields.com/inpulse">https://depfields.com/inpulse</div><div class="lkc-excerpt">システム入出力間の時間領域における関数g(t)が入力信号に応じてどのような特性をもつのか検証してみました。この検証のためにはインパルス応答というものが必要ですので、まずインパルス信号について要点を押さえていきます。インパルス応答は機械系のモーションコントロールを扱っているうえでは普段はあまり意識せずともよいところですが、制御理論としてはよく目にするものです。電気系システムの信号解析などにはよく使用されるかもしれません。周波数領域であるs空間での伝達関数表記では入力U(s)、制御対象G(s)、出力Y(s)は分け...</div></div><div class="clear">
							</div>
						</div></a></div></div>


<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/circuit-reactance" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2020.12.07</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/12/交流回路-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">コイルとコンデンサの実際の働き</div><div class="lkc-url" title="https://depfields.com/circuit-reactance">https://depfields.com/circuit-reactance</div><div class="lkc-excerpt">マイコンのインターフェースを構成する電気回路は主に直流回路ですので抵抗を負荷としたオームの法則に従う比較的単純なものでした。ところが、交流回路となると話が変わってきます。それは回路に使われるコイルやコンデンサは流れる電気信号の周波数によってインピーダンスという直流回路でいう抵抗値が変化し、信号の電圧と電流の位相がずれる特性があるからです。 なぜコイルとコンデンサでは電流に対して電圧の位相がずれるか数式だけに頼らず物理的に考察してみます。 &nbsp;コイル：めかのとろ コイルには流れる電流が時間変化す...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>





<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2><a id="motioncontrol"></a>モーションコントロールアプリ</h2>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御理論</span></strong>は理解するだけでは<strong>数学の域を超えません。<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実際のモノに適用して初めて利用価値がある</span>といえます。</strong>また、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実際に適用させてはじめて本質が理解できる</span></strong>こともあります。制御工学とはいえ、大学の講義などでは数学の範囲内であるものも数多いため、より敷居が高いものとなっています。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">この章では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御理論の適用</span></strong>として<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">レゴ</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">®</span></strong></strong></span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マインドストーム<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">®</span></strong></strong></span>EV3モータ</span></strong>を使用したさまざまなアプリケーションで実際に動作させて、理論の有効性を確認していきます。それぞれのアプリケーションには実践で得たノウハウがつまっています。学術論文レベルのものもありますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">敷居をずっとさげた実用的なもの</span></strong>にしています。制御理論の応用は非常にシンプルで実用的であることがおわかりいただけると思います。</p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h3 class="wp-block-heading">PWMオープンコントロール</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/dcmotor-pwmcontrol" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2021.01.25</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/01/ev3-Lmotor-150x150.png" width="100px" height="108px" alt="" /></figure><div class="lkc-title">DCモータのマイコンPWM出力による回転速度制御（オープンループ制御）</div><div class="lkc-url" title="https://depfields.com/dcmotor-pwmcontrol">https://depfields.com/dcmotor-pwmcontrol</div><div class="lkc-excerpt">レゴ®マインドストーム®EV3のLモータを使って、STM32Nucleoボードにより実際にモータを動作させてみます。EV3のモータにはエンコーダが内蔵していますので速度のモニターをするのみならず、フィードバックさせることでより高度な運転ができるようになります。まず、マイコンを使ったモーションコントロールの手始めとしてエンコーダからのフィードバックを使わないPWM信号によるオープン制御をしてみたいと思います。      実機で使うモータモジュールめかのとろマイコンで実現するフィードバック制御のための基礎知識【応用編】でDCモ...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">速度フィードバックコントロール</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/dcmotor-highgainfeedback" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2021.02.01</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/01/DCmotor-150x150.png" width="100px" height="108px" alt="" /></figure><div class="lkc-title">DCモータの実用的な速度フィードバック制御システムをマイコンで構築する</div><div class="lkc-url" title="https://depfields.com/dcmotor-highgainfeedback">https://depfields.com/dcmotor-highgainfeedback</div><div class="lkc-excerpt">DCモータは市販のドライバを用いると電圧制御タイプではマイコンからのPWMパルス出力を与えるとデューティ比に応じてオープンループで簡単に速度をコントロールすることができます。速度はデューティ比にほぼ比例しているのですが、これは運転条件が無負荷での場合です。突発的な負荷や定常負荷がかかると速度は安定しないのがオープンループでの限界です。そこでエンコーダなどのセンサによる速度のフィードバックを施すことにより特性を改善して、多少の負荷があっても安定させ、また、定常状態でも速度を安定させることを図ります。...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">ロバストコントロール</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/dcmotor-robustcontrol" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2021.02.04</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/02/excavator-51665_640-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">実践で使えるDCモータのロバスト速度制御をマイコンで構築する</div><div class="lkc-url" title="https://depfields.com/dcmotor-robustcontrol">https://depfields.com/dcmotor-robustcontrol</div><div class="lkc-excerpt">ギアを介した負荷側にエンコーダが装着しているレゴEV3LモータにPI速度制御と2自由度ロバスト制御を適用してみてそれらの運転特性と効果を調べてみます。簡易モータでも実装が簡単で効果があれば積極的に採用したいものです。          PI速度フィードバックコントロールめかのとろ一般的なフィードバック制御といえばPID制御がまず挙げられます。難しい理論抜きでも感覚的にゲインを設定して出力を調整することも多いです。めかのとろもともと安定しているEV3モータに多少の条件が変わっても一定の目標値を維持するための制御です。偏...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">速度サーボコントロール</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/dcmotor-speedservo" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2021.03.22</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/03/lego-4504048_640-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">実践で使えるDCモータの速度サーボ制御をマイコンで構築する</div><div class="lkc-url" title="https://depfields.com/dcmotor-speedservo">https://depfields.com/dcmotor-speedservo</div><div class="lkc-excerpt">これまではDCモータを使ったレゴEV3モータをさまざまな制御方式のステップ応答(一定値入力）でそれぞれの特性を確認しました。実際にモータを運転する場合は一定の速度だけで使うのみならず加減速も任意に与えたパターンに追従させるいわゆるサーボ運転をさせる用途も多いです。そこで、今回はそれぞれの制御方式において、あらかじめ作成した台形の速度パターンを指令値入力としたときに、手動で負荷を加えたときの追従性と外乱による変動の影響を確認してみます。まずそれぞれの制御方式をシミュレーションで確認してから、プログラ...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">位置決めサーボコントロール</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/dcmotor-positionservo" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">1 Pocket</div></div><div class="lkc-date">2021.04.07</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/04/2021-04-02_21h44_11-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">実践で使えるDCモータの位置決め制御サーボシステムをマイコンで構築する</div><div class="lkc-url" title="https://depfields.com/dcmotor-positionservo">https://depfields.com/dcmotor-positionservo</div><div class="lkc-excerpt">前回ではレゴEV3モータをテーマとして実践で使える速度サーボ運転をマイコンで実現するのに、このサイトで紹介したPI制御方式、ハイゲインフィードバック方式そして２自由度ロバスト方式を適用してそれぞれの特性を実機において検証しました。 今回は速度サーボのさらなる発展としてモータの回転位置をコントロールする位置サーボ（位置追従制御）を実機を使って検証していきたいと思います。    位置決めサーボ（加速度指令方式）めかのとろ速度制御系でハイゲインフィードバック方式や2自由度ロバスト制御が適用されて指令値通りに応...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<h3 class="wp-block-heading">位置決めサーボコントロール２</h3>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/dcmotor-positionservo2" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div><div class="lkc-date">2021.05.08</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2021/04/racing-car-4438174_640-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">パルスに追従する位置決めサーボ制御システムをマイコンで構築する</div><div class="lkc-url" title="https://depfields.com/dcmotor-positionservo2">https://depfields.com/dcmotor-positionservo2</div><div class="lkc-excerpt">これまではあらかじめ作成したモータ位置の軌道に追従する方式として加速度指令方式での位置決めモーションコントロールを実現し、その動作の有効性を確認しました。 実際のモータ位置決めサーボシステムではパルスを位置決め指令として与えるものが多いです。そこで、今回は外部のエンコーダで発生させたパルスを指令値としてその動作に追従させる位置決めシステムをマイコンで実現してみます。パルスに追従するところからステッピングモータのように与えたパルス分だけ動作することになります。      一般的な位置決めサーボシステム...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>





<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="linkcard"><div class="lkc-internal-wrap"><a class="lkc-link no_icon" href="https://depfields.com/nucleo" target="_blank"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">即戦力モノづくり!エンジニアへの道標</div>&nbsp;<div class="lkc-share"> <div class="lkc-sns-po">5 Pockets</div></div><div class="lkc-date">2020.05.06</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/2020/07/nureo-f103rb-150x150.jpg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">マイコン学習の初心者にArduinoでなくSTM32 Nucleoをすすめるわけ</div><div class="lkc-url" title="https://depfields.com/nucleo">https://depfields.com/nucleo</div><div class="lkc-excerpt">現役エンジニア社長のめかのとろです。組み込みエンジニアをめざしているひとにとって、本格的に勉強を始めるためにどんなものを教材にすれば効率よく短期間で本当につかえるスキルが身につくのかを検討しておすすめでとっておきの方法を紹介します。ここでは電子工作において巷で大流行のArduinoとARMのオープンソース開発環境であるMbed、そして今回の紹介するNucleoマイコンボードを使いこなすために開発環境STM32CubeIDEをカスタマイズしたものとの比較をしていきます。ArduinoについてArduino センサーシールドArduinoめかのとろA...</div></div><div class="clear">
							</div>
						</div></a></div></div>



<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/controltheory/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/14391beeb18bec41035675bbdd77739c7b506453b370ee2c517c7e4ada05774e.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Tutorial to Feedback Control [ARM in Practice] | Most Powerful Bible to Becom...</div><div class="lkc-url" title="https://en.depfields.com/controltheory/">https://en.depfields.com/controltheory/</div><div class="lkc-excerpt">Control Theory Used in PracticeWhat comes to mind when you hear the word &quot;Control&quot;?  Although the image may vary from person to person, many people probably imagine programming robots and other devices to operate as envisioned. The k</div></div><div class="clear">
							</div>
						</div></a></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div><p>The post <a href="https://depfields.com/controltheory/">制御入門【ARMマイコンによる応用と実践】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>パルスに追従する位置決めサーボ制御システムをマイコンで構築する</title>
		<link>https://depfields.com/dcmotor-positionservo2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dcmotor-positionservo2</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sat, 08 May 2021 08:00:42 +0000</pubDate>
				<category><![CDATA[モーションコントロールアプリ]]></category>
		<category><![CDATA[マイコン]]></category>
		<category><![CDATA[位置決めサーボ]]></category>
		<category><![CDATA[モーションコントロール]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<category><![CDATA[DCモータ]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=9306</guid>

					<description><![CDATA[<p>これまではあらかじめ作成したモータ位置の軌道に追従する方式として加速度指令方式での位置決めモーションコントロールを実現し、その動作の有効性を確認しました。 実際のモータ位置決めサーボシステムではパルスを位置決め指令として [&#8230;]</p>
<p>The post <a href="https://depfields.com/dcmotor-positionservo2/">パルスに追従する位置決めサーボ制御システムをマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="426" src="https://depfields.com/wp-content/uploads/2021/04/racing-car-4438174_640.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2021/04/racing-car-4438174_640.jpg 640w, https://depfields.com/wp-content/uploads/2021/04/racing-car-4438174_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">これまではあらかじめ作成したモータ位置の軌道に追従する方式として<strong><a aria-label=" (opens in a new tab)" href="https://depfields.com/dcmotor-positionservo/" target="_blank" rel="noreferrer noopener">加速度指令方式での位置決めモーションコントロール</a></strong>を実現し、その動作の有効性を確認しました。 </p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">実際のモータ位置決めサーボシステムでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パルスを位置決め指令</span></strong>として与えるものが多いです。そこで、今回は外部のエンコーダで発生させた<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パルスを指令値としてその動作に追従させる位置決めシステム</span></strong>を<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>マイコンで実現</strong></span>してみます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">パルスに追従するところからステッピングモータのように与えたパルス分だけ動作することになります。</p>







<h2 class="wp-block-heading">一般的な位置決めサーボシステム</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>一般的なモータの位置決めサーボシステムのブロック線図です。パワーアンプが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電流指令タイプの場合は</span></strong>一番内側に電流フィードバックループがあり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータへは電流指令</span></strong>を与えます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電圧指令タイプの場合は電圧指令値</span></strong>をオープン制御で与えることになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>モータ位置決めサーボシステムではまず速度制御フィードバックによりモータ速度を安定させてから、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外側に位置フィードバックループを設けるものが一般的</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/位置制御システム.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/位置制御システム.png" alt="" class="wp-image-9310" width="590" height="231" srcset="https://depfields.com/wp-content/uploads/2021/04/位置制御システム.png 728w, https://depfields.com/wp-content/uploads/2021/04/位置制御システム-300x117.png 300w" sizes="(max-width: 590px) 100vw, 590px" /></a><figcaption>一般的なモータ位置決めサーボシステム</figcaption></figure>



<h2 class="wp-block-heading">ハイゲインフィードバック方式を適用した位置決めサーボ</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>速度制御にはマイコンプログラムで簡単に実現でき、外乱抑制にも効果のある<strong><a href="https://depfields.com/dcmotor-highgainfeedback/" target="_blank" rel="noreferrer noopener" title="DCモータの実用的な速度フィードバック制御システムをマイコンで構築する">ハイゲインフィードバック方式</a><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">を採用</span></strong>します<strong>。</strong></p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>位置制御システムに発展させるためには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度制御系</span></strong><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">の外側に位置フィードバックループを設けます</span></strong>。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/パルス追従位置制御.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置制御.png" alt="" class="wp-image-9380" width="580" height="281" srcset="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置制御.png 717w, https://depfields.com/wp-content/uploads/2021/05/パルス追従位置制御-300x146.png 300w" sizes="(max-width: 580px) 100vw, 580px" /></a><figcaption> 速度制御にハイゲインフィードバック方式を適用した位置決めサーボシステム </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハイゲインフィードバック方式では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度制御系は1次遅れ系に近似</span></strong>できます。位置制御の補償器が比例ゲインK<sub>P</sub>だけなのは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力から出力までの伝達関数を2次遅れ系</span></strong>とするためです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/パルス追従位置制御簡易表記.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置制御簡易表記.png" alt="" class="wp-image-9398" width="513" height="225" srcset="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置制御簡易表記.png 513w, https://depfields.com/wp-content/uploads/2021/05/パルス追従位置制御簡易表記-300x132.png 300w" sizes="(max-width: 513px) 100vw, 513px" /></a><figcaption> 位置決めサーボ簡略化 </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>外部から任意のパルスを与える場合は多少難がありますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">あらかじめ位置目標値の軌道がわかっている場合</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度指令値が作成できる</span></strong>ので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードフォワード項</span></strong>として付加すると遅れはほぼなくなり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">追従性はより向上</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/フィードフォワード付き.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/05/フィードフォワード付き.png" alt="" class="wp-image-9399" width="560" height="255" srcset="https://depfields.com/wp-content/uploads/2021/05/フィードフォワード付き.png 560w, https://depfields.com/wp-content/uploads/2021/05/フィードフォワード付き-300x137.png 300w" sizes="(max-width: 560px) 100vw, 560px" /></a><figcaption> 速度フィードフォワード項を追加したシステム </figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-sm--margin-top"></div></div>



<h2 class="wp-block-heading">位置補償器ゲインの決定</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>入力から出力間の伝達関数は以下のように2次遅れ系となります。<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%, rgba(255, 253, 107, 0.7) 0px);" class="vk_highlighter"><b>時定数T</b><sub style="font-weight: bold;">m2</sub><b>は既知</b></span>のため、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">減衰比ζのみを指定</span></strong>すると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ゲインK<sub>P</sub>は一意的に決まり</span></strong>ます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/パルス追従位置制御2次遅れ系.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/パルス追従位置制御2次遅れ系.png" alt="" class="wp-image-9313" width="429" height="585" srcset="https://depfields.com/wp-content/uploads/2021/04/パルス追従位置制御2次遅れ系.png 429w, https://depfields.com/wp-content/uploads/2021/04/パルス追従位置制御2次遅れ系-220x300.png 220w" sizes="(max-width: 429px) 100vw, 429px" /></a><figcaption>位置決めサーボシステムの入出力間伝達関数</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>例えば 時定数T<sub>m2</sub>が25msの場合は減衰比ζを1に指定するとω<sub>n</sub>が20となるのでK<sub>P</sub>は10になります。</p>
</div></div></div>



<h2 class="wp-block-heading">実際の回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>モータの位置および 外部入力パルスによる位置指令値は<strong><a aria-label=" (opens in a new tab)" href="https://depfields.com/pulse-position/" target="_blank" rel="noreferrer noopener">タイマのエンコーダインターフェースモード</a></strong>によりアップダウンカウントすることで得られます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>User SWは位置情報をリセット/プリセットするために使用します。リセットしたときにアップダウンカウンタの中間値あたりに指定しておけば、動作中に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">カウンタのオーバーフローやアンダーフローによる動作不良を防ぐ</span></strong>ことができます。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/05/配線図_入力.png"><img decoding="async" width="508" height="559" src="https://depfields.com/wp-content/uploads/2021/05/配線図_入力.png" alt="" class="wp-image-9322" srcset="https://depfields.com/wp-content/uploads/2021/05/配線図_入力.png 508w, https://depfields.com/wp-content/uploads/2021/05/配線図_入力-273x300.png 273w" sizes="(max-width: 508px) 100vw, 508px" /></a><figcaption>信号入出力回路</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/05/配線図_出力.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/05/配線図_出力.png" alt="" class="wp-image-9324" width="574" height="346" srcset="https://depfields.com/wp-content/uploads/2021/05/配線図_出力.png 574w, https://depfields.com/wp-content/uploads/2021/05/配線図_出力-300x181.png 300w" sizes="(max-width: 574px) 100vw, 574px" /></a><figcaption>モータドライバ回路</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">シミュレーションと実際の動作</h2>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;①　シミュレーション&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まず恒例のシミュレーションをマイクロソフトExcelで実施しました。条件として<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバックゲインC1,C2をそれぞれ2,3</span></strong>とする場合で検証します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入出力間伝達関数は２次遅れ系</span></strong>となりますので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">減衰比</span></strong><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ζを1と指定</span></strong>すると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置ゲインK<sub>P</sub>は15</span></strong>となります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この条件では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">２次遅れ系の特徴</span></strong>がよく現れていて、入力の指令値がランプ状で変化しているときは、出力はわずかな定常偏差をもって変化し、定値になったところで定常偏差がなくなる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サーボ追従</span></strong>をしています。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御理論の<a href="https://depfields.com/controltheory-analysis/" target="_blank" aria-label="最終値定理 (opens in a new tab)" rel="noreferrer noopener">最終値定理</a></span></strong>のとおりです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハイゲインフィードバックゲインC1,Ｃ2を上げすぎると速度の追従性および外乱抑制は向上しますが、敏感になりすぎて振動的になります。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置サーボの場合は、小さめのゲインでも十分効果はあります</span></strong>。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置サーボシミュレーション.png"><img decoding="async" width="553" height="369" src="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置サーボシミュレーション.png" alt="" class="wp-image-9337" srcset="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置サーボシミュレーション.png 553w, https://depfields.com/wp-content/uploads/2021/05/パルス追従位置サーボシミュレーション-300x200.png 300w" sizes="(max-width: 553px) 100vw, 553px" /></a><figcaption>外部パルスに追従する位置決めサーボシステムのシミュレーション</figcaption></figure>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b"><strong>2次遅れ系の場合</strong>は、<strong>ランプ入力では定常偏差が残ります</strong></span>が、位置補償器内でさらに<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">積分補償器を追加</span></strong>して伝達関数の次数を増やすことで<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">理論上（最終値定理と内部モデル原理）</span></strong>、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">定常偏差はゼロに収束</span></strong>します。前節の「<a href="https://depfields.com/dcmotor-positionservo/" target="_blank" rel="noreferrer noopener"><strong>実践で使えるDCモータの位置決め制御サーボシステムをマイコンで構築する</strong></a>」で構成したように軌道が既知であれば<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">指令値として加速度、速度をフィードフォワード項を追加</span></strong>すれば<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">遅れなしに追従するシステムを構成</span></strong>できます。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;②　実機による実測&nbsp;</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実機による動作の実測値です。エンコーダ軸を手動で回すと軸の動きに合わせて発生するパルスに追従するいわゆる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パルス同期運転</span></strong>となります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>正転、逆転ともにモータの位置は<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>任意に与えたパルスの通り</strong></span>、つまり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">エンコーダの軸の動きに追従</span></strong>しているのが確認できます。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値.png"><img decoding="async" width="737" height="379" src="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値.png" alt="" class="wp-image-9402" srcset="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値.png 737w, https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値-300x154.png 300w" sizes="(max-width: 737px) 100vw, 737px" /></a><figcaption> 外部パルスに追従する位置決めサーボシステムの 実測値</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>多少複雑な入力パターンの場合でもしっかり追従しています。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値2.png"><img decoding="async" width="737" height="479" src="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値2.png" alt="" class="wp-image-9410" srcset="https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値2.png 737w, https://depfields.com/wp-content/uploads/2021/05/パルス追従位置決めサーボ実測値2-300x195.png 300w" sizes="(max-width: 737px) 100vw, 737px" /></a><figcaption> 外部パルスに追従する位置決めサーボシステムの 実測値２</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>シリアルモニターでエンコーダからの位置指令パルス(上段)とモータ位置パルス(下段)の値を確認してみますと、モータ位置パルスは指令パルスに追従しているのがわかります。</p>
</div></div></div>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:75% auto"><figure class="wp-block-media-text__media"><video controls src="https://depfields.com/wp-content/uploads/2022/02/position-servo2.mp4"></video></figure><div class="wp-block-media-text__content">
<p class="has-large-font-size"></p>
</div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>基本的なDCモータの位置決めサーボシステムは<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">速度制御が安定に実現できていれば、その外側に位置制御用フィードバックループを加え</span></strong>、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">その位置偏差に位置補償器ゲインK<sub>P</sub>を通したものを速度指令</span></strong>とすると簡単に実現できます。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">位置指令として与えた任意のパルス分だけ動く</span></strong>ことでまさに<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ステッピングモータと同じ動作</span></strong>をします。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>動画ではいとも簡単に外部から与えたパルスに追従している様子が確認できますが、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">試行錯誤の調整部分はなく</span></strong>、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">制御理論の上に成り立ったシステム</span></strong>です。制御の基礎をしっかり理解しておくと、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">一見難しそうな技術をかえってシンプルに実現できてしまう一例</span></strong>であるといえます。LEGOモータのような高精度でないホビー用途のものでも<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">理論とプログラム次第で高度な運転ができるようになる</span></strong>ところに<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">フィードバック制御の醍醐味</span></strong>があります。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/dcmotor-positionservo2/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/583d70d27a9a96b30656fa3ff140cf7eca470b0bcd97be1e7122f1c262526d0c.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Build a pulse-following positioning servo control system using Microcontrolle...</div><div class="lkc-url" title="https://en.depfields.com/dcmotor-positionservo2/">https://en.depfields.com/dcmotor-positionservo2/</div><div class="lkc-excerpt">So far, I have realized positioning motion control using the acceleration command method as a method to follow a motor position trajectory created in advance, and confirmed the effectiveness of this operation.Many actual motor position</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/dcmotor-positionservo2/">パルスに追従する位置決めサーボ制御システムをマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		<enclosure url="https://depfields.com/wp-content/uploads/2022/02/position-servo2.mp4" length="8786607" type="video/mp4" />

			</item>
		<item>
		<title>実践で使えるDCモータの位置決め制御サーボシステムをマイコンで構築する</title>
		<link>https://depfields.com/dcmotor-positionservo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dcmotor-positionservo</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Tue, 06 Apr 2021 15:50:55 +0000</pubDate>
				<category><![CDATA[モーションコントロールアプリ]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<category><![CDATA[ロバスト制御]]></category>
		<category><![CDATA[DCモータ]]></category>
		<category><![CDATA[マイコン]]></category>
		<category><![CDATA[位置決めサーボ]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=9044</guid>

					<description><![CDATA[<p>前回ではレゴEV3モータをテーマとして実践で使える速度サーボ運転をマイコンで実現するのに、このサイトで紹介したPI制御方式、ハイゲインフィードバック方式そして２自由度ロバスト方式を適用してそれぞれの特性を実機において検証 [&#8230;]</p>
<p>The post <a href="https://depfields.com/dcmotor-positionservo/">実践で使えるDCモータの位置決め制御サーボシステムをマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="593" height="405" src="https://depfields.com/wp-content/uploads/2021/04/2021-04-02_21h44_11.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2021/04/2021-04-02_21h44_11.jpg 593w, https://depfields.com/wp-content/uploads/2021/04/2021-04-02_21h44_11-300x205.jpg 300w" sizes="(max-width: 593px) 100vw, 593px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">前回では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">レゴEV3モータ</span></strong>をテーマとして実践で使える<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度サーボ運転</span></strong>をマイコンで実現するのに、このサイトで紹介した<strong><a aria-label=" (opens in a new tab)" href="https://depfields.com/dcmotor-robustcontrol/" target="_blank" rel="noreferrer noopener">PI制御方式</a></strong>、<strong><a aria-label=" (opens in a new tab)" href="https://depfields.com/dcmotor-highgainfeedback/" target="_blank" rel="noreferrer noopener">ハイゲインフィードバック方式</a></strong>そして<strong><a aria-label=" (opens in a new tab)" href="https://depfields.com/dcmotor-robustcontrol/" target="_blank" rel="noreferrer noopener">２自由度ロバスト方式</a></strong>を適用してそれぞれの特性を実機において検証しました。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"> 今回は速度サーボのさらなる発展としてモータの回転位置をコントロールする<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置サーボ（位置追従制御）を実機を使って検証</span></strong>していきたいと思います。</p>







<h2 class="wp-block-heading">位置決めサーボ（加速度指令方式）</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>速度制御系でハイゲインフィードバック方式や2自由度ロバスト制御が適用されて指令値通りに応答できるようになっていれば、位置決めサーボ系に発展させることは容易です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置決めサーボ系</span></strong>において<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">応答を決めるゲインをほぼ一意的に選定できる加速度指令方式</span></strong>を採用して実機に適用してその有効性を検証していきます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度指令方式</span></strong>については<strong><a href="https://depfields.com/controltheory-advanced/" target="_blank" rel="noreferrer noopener">マイコンで実現するフィードバック制御のための基礎知識【発展編<strong>】</strong></a></strong>で詳細を解説しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この方式では設定する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">目標軌道の位置のみならず、速度および加速度に分解したものを予め作成</span></strong>して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">指令値</span></strong>として与えます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ゲインKp, Kvの決め方</span></strong>は<strong><a aria-label=" (opens in a new tab)" href="https://depfields.com/controltheory-analysis/" target="_blank" rel="noreferrer noopener">マイコンで実現するフィードバック制御のための基礎知識【解析編】</a></strong>で解説している<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">2次遅れ特性</span></strong>を参考にしてください。ゲインを適切に設定することにより<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置偏差がゼロに収束</span></strong>していわゆる位置決めサーボが実現できます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/加速度指令値.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/加速度指令値.png" alt="" class="wp-image-10043" width="500" height="246" srcset="https://depfields.com/wp-content/uploads/2021/04/加速度指令値.png 613w, https://depfields.com/wp-content/uploads/2021/04/加速度指令値-300x148.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption class="wp-element-caption">加速度指令値</figcaption></figure>





<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>上式が成立するのは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度系にロバスト制御</span></strong>が施されていて速度指令値θ<sup>'ref</sup> ≒ 速度θ<sup>'</sup> となることにより<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度指令値θ<sup>"ref</sup> ≒ 加速度θ<sup>"</sup></span></strong> とみなせるからです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>適切に設定したゲインKv、Kpによって<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">起動時に発生している誤差が２次遅れ系の特性で収束</span></strong>すると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置θは<strong>目標値 θ<sub>0</sub>に遅れなしに</strong>追従する</span></strong>ことになります。<strong>詳細は<a href="https://depfields.com/controltheory-advanced/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【発展編】">マイコンで実現するフィードバック制御のための基礎知識【発展編】</a></strong>の<strong>位置決め追従制御(加速度指令方式)</strong>で解説しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回は速度制御系の部分には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック</span></strong>方式を採用して簡易的な<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト制御を実現</span></strong>しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/ロバスト制御モータ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/ロバスト制御モータ.png" alt="" class="wp-image-9127" width="528" height="397" srcset="https://depfields.com/wp-content/uploads/2021/04/ロバスト制御モータ.png 528w, https://depfields.com/wp-content/uploads/2021/04/ロバスト制御モータ-300x226.png 300w" sizes="(max-width: 528px) 100vw, 528px" /></a><figcaption class="wp-element-caption">ハイゲインフィードバック方式による簡易的なロバスト制御モータ</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">実機への適用</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">指令値</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">台形速度パターン</span></strong>が最も簡単なので今回はこれを採用しています。プログラムで浮動小数点を使用すればsin関数を用いた加速度曲線などが定義でき、よりスムーズなパターンが作成できます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>指令値を作成するにあたってはマイクロソフトExcelを使用して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サイクルタイム毎に刻んで演算</span></strong>すれば下図のような数値が得られます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実際のプログラミングではExcelの演算と同じものをそれぞれ加速度、速度および位置指令値の配列に代入すればよいわけです。準備する配列の個数は下図の例ではサイクルタイムを5msとしているため各1000個ずつ必要です(5s/5ms個)。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/指令値.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/指令値.png" alt="" class="wp-image-9121" width="517" height="376" srcset="https://depfields.com/wp-content/uploads/2021/04/指令値.png 557w, https://depfields.com/wp-content/uploads/2021/04/指令値-300x218.png 300w" sizes="(max-width: 517px) 100vw, 517px" /></a><figcaption class="wp-element-caption">指令値</figcaption></figure>



<ul class="wp-block-list">
<li> <strong>ピーク速度が360p/s</strong> </li>



<li> <strong>加減速期間1.5s</strong> </li>



<li> <strong>定常速度期間2.0sの台形速度パターン</strong> </li>
</ul>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>指令値作成は高校数学の関数問題レベルのものです。微分・積分の基本的な考え方と1次・2次関数のおさらいです。ちょっとした頭の体操になりますのでやってみてください。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>フィードバックおよび実機計測に取り込む速度と位置のデータはエンコーダからのパルスをNucleoに取り組みますが、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>速度と位置はそれぞれ別個のタイマ・カウンタで計測</strong></span>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">実際の動作</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>外乱負荷を与えない状態での<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度変化の指令値と実測値</span></strong>です。起動時はどうしてもわずかに乱れていますがハイゲインフィードバックの影響かもしれません。エンコーダ分解能が極めて粗いのと、演算を整数化しているため、一工夫しているとはいえ特に低速時には理想通りには動作させるにはあと何か必要かもしれません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>位置決めサーボでの速度実測値ですので速度定常時にわずかに脈動しているのは問題ではありません。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/速度外乱なし.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/速度外乱なし.png" alt="" class="wp-image-9049" width="486" height="310" srcset="https://depfields.com/wp-content/uploads/2021/04/速度外乱なし.png 582w, https://depfields.com/wp-content/uploads/2021/04/速度外乱なし-300x192.png 300w" sizes="(max-width: 486px) 100vw, 486px" /></a><figcaption class="wp-element-caption">モータ速度（外乱負荷なし）</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>0.5s毎に外乱負荷を与えた場合の速度です。わずかに外乱の影響はありますが、ハイゲインフィードバックが効いてほぼ安定しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/速度外乱あり.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/速度外乱あり.png" alt="" class="wp-image-9050" width="472" height="303" srcset="https://depfields.com/wp-content/uploads/2021/04/速度外乱あり.png 598w, https://depfields.com/wp-content/uploads/2021/04/速度外乱あり-300x193.png 300w" sizes="(max-width: 472px) 100vw, 472px" /></a><figcaption class="wp-element-caption">モータ速度（外乱負荷あり）</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実際のモータの移動位置です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置指令値と実測値にはずれが見られず遅れなく追従してい</span>る</strong>のが確認できます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱負荷を与えた場合でも位置にはほぼ影響がありません</span></strong>。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/04/位置外乱あり.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/位置外乱あり.png" alt="" class="wp-image-9048" width="500" height="315" srcset="https://depfields.com/wp-content/uploads/2021/04/位置外乱あり.png 614w, https://depfields.com/wp-content/uploads/2021/04/位置外乱あり-300x189.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption class="wp-element-caption">モータ位置（外乱負荷あり）</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">レゴEV3Lモータは一回転あたり180パルス</span></strong>のエンコーダを内蔵しています。この指令値はちょうど<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">7回転で最終到達パルスが1260パルス</span></strong>になるものです。</p>
</div></div></div>



<p><strong>動画1</strong>　シリアルモニター<br>上段が速度、下段が位置です。5秒で台形加減速して設定位置1260に到達しています。</p>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:73% auto"><figure class="wp-block-media-text__media"><video controls src="https://depfields.com/wp-content/uploads/2022/02/speed-position.mp4"></video></figure><div class="wp-block-media-text__content">
<p class="has-large-font-size"></p>
</div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p><strong>動画2</strong>　 レゴEV3Lモータ7回転位置決め<br>起動してからちょうど7回転(1260パルス分)で停止しています。</p>



<div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:72% auto"><figure class="wp-block-media-text__media"><video controls src="https://depfields.com/wp-content/uploads/2022/02/position-servo.mp4"></video></figure><div class="wp-block-media-text__content">
<p class="has-large-font-size"></p>
</div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">レゴEV3Lモータ</span></strong>のような簡易的なエンコーダがついたものでも高度なロバスト制御を施した位置決めサーボに発展させると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">高精度な位置の追従制御ができる</span></strong>ことが確認できました。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハードウェアは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">マイコンと電圧制御タイプのドライバのごく普通の組み合わせ</span></strong>のものなのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">本格的な理論を適用したモーションコントロールが簡単に実現</span></strong>できてしまうのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御理論の応用</span></strong>も特殊なハードウェアを必要とするものでなく<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">だれでも身近に応用できる</span></strong>ものを紹介しました。ここではモータを使ったモーションコントロールを例にあげて解説してきましたが、それ以外の用途に活用しても面白いと思います。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>モーションコントロールを始めとする制御系をプログラミングによりマイコン等で操作を行うためには<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">まずシミュレーションで動作を確認</span></strong>して理論通りに実現できるかどうかを見極めることです。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">理論段階ではScilab等のシミュレーションソフト</span></strong>で動作確認をし、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">プログラミングのためにはExcel等などを使って離散系を意識したシミュレーション</span></strong>をすることが<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">実現化の早道</span></strong>です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p><strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">高度な制御理論を適用</span></strong>したものでもその<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ツボとなる部分</span></strong>は実際の何百行に渡るプログラムにおいて<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ほんの数行足らずの数式</span></strong>にすぎません。ですが、このほんの数行の記述で<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">もともとの特性が全く高度なものに化ける</span></strong>のです。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">物理的な対象が化学のように化ける</span></strong>のが<span style="color: #ff0000;"><strong>フィードバック制御の面白いところ</strong></span>です。興味深いと思いませんか。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/dcmotor-positionservo/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/42e6e9758b4afaf3166c9f4d7b975b2e566c71e5f533308a0ed68d747f52220a.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Build a positioning control servo system of DC motor using Microcontroller fo...</div><div class="lkc-url" title="https://en.depfields.com/dcmotor-positionservo/">https://en.depfields.com/dcmotor-positionservo/</div><div class="lkc-excerpt">In the previous issue, I applied the PI control method, High-gain feedback method, and 2-degrees of freedom robust method introduced on this site to realize practical speed servo operation with MCU using the LEGO EV3 motor as a theme, and</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/dcmotor-positionservo/">実践で使えるDCモータの位置決め制御サーボシステムをマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		<enclosure url="https://depfields.com/wp-content/uploads/2022/02/speed-position.mp4" length="2123360" type="video/mp4" />
<enclosure url="https://depfields.com/wp-content/uploads/2022/02/position-servo.mp4" length="13716430" type="video/mp4" />

			</item>
		<item>
		<title>実践で使えるDCモータの速度サーボ制御をマイコンで構築する</title>
		<link>https://depfields.com/dcmotor-speedservo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dcmotor-speedservo</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Mon, 22 Mar 2021 07:17:07 +0000</pubDate>
				<category><![CDATA[モーションコントロールアプリ]]></category>
		<category><![CDATA[マイコン]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<category><![CDATA[ロバスト制御]]></category>
		<category><![CDATA[DCモータ]]></category>
		<category><![CDATA[速度サーボ]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=8868</guid>

					<description><![CDATA[<p>これまではDCモータを使ったレゴEV3モータをさまざまな制御方式のステップ応答(一定値入力）でそれぞれの特性を確認しました。実際にモータを運転する場合は一定の速度だけで使うのみならず加減速も任意に与えたパターンに追従させ [&#8230;]</p>
<p>The post <a href="https://depfields.com/dcmotor-speedservo/">実践で使えるDCモータの速度サーボ制御をマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="435" src="https://depfields.com/wp-content/uploads/2021/03/lego-4504048_640.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2021/03/lego-4504048_640.jpg 640w, https://depfields.com/wp-content/uploads/2021/03/lego-4504048_640-300x204.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">これまではDCモータを使ったレゴEV3モータをさまざまな制御方式の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ステップ応答</span></strong>(一定値入力）でそれぞれの特性を確認しました。実際にモータを運転する場合は一定の速度だけで使うのみならず加減速も<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">任意に与えたパターンに追従させるいわゆるサーボ運転</span></strong>をさせる用途も多いです。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">そこで、今回はそれぞれの制御方式において、あらかじめ作成した台形の速度パターンを指令値入力としたときに、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">手動で負荷を加えたときの追従性と外乱による変動の影響を確認</span></strong>してみます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">まずそれぞれの制御方式を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シミュレーションで確認</span></strong>してから、プログラムを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実機に適用して制御方式による特性の違いを確認</span></strong>して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">より実用的な方式を探求</span></strong>していきたいと思います。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">シミュレーションおよび実機での動作確認ともにこれまでに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ステップ応答で解説してきたものと同じ装置に台形速度入力指令</span></strong>を与えたもので検討します。</p>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>厳密には<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">サーボ</span></strong>とは<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">目標値に対する出力との偏差がゼロになる設計</span></strong>としたものですが<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ここでは任意の入力値に追従することを広い意味でサーボ</span></strong>といっています。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>







<h2 class="wp-block-heading">オープン制御での速度サーボ制御</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>オープン制御の場合は、速度指令値を台形パターンにするにはその<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">指令値に比例した電圧となるようなPWMデューティ比率</span></strong>に指定します。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/03/オープン速度.png"><img decoding="async" width="567" height="181" src="https://depfields.com/wp-content/uploads/2021/03/オープン速度.png" alt="" class="wp-image-8898" srcset="https://depfields.com/wp-content/uploads/2021/03/オープン速度.png 567w, https://depfields.com/wp-content/uploads/2021/03/オープン速度-300x96.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></a><figcaption> オープン速度制御のブロック線図 </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>モータ速度は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">無負荷の状態</span></strong>では与えた電圧に比例して動作するはずです。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/03/モータオープン特性.png"><img decoding="async" width="431" height="197" src="https://depfields.com/wp-content/uploads/2021/03/モータオープン特性.png" alt="" class="wp-image-8929" srcset="https://depfields.com/wp-content/uploads/2021/03/モータオープン特性.png 431w, https://depfields.com/wp-content/uploads/2021/03/モータオープン特性-300x137.png 300w" sizes="(max-width: 431px) 100vw, 431px" /></a></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実際の運転で起こり得る負荷を想定してモータ軸にブレーキがかかる向きに約0.5s間隔で一定の負荷トルクを与えて出力のモータ速度にどのような影響がでるかを調べてみます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><a href="https://depfields.com/controltheory-application/" target="_blank" aria-label="マイコンで実現するフィードバック制御のための基礎知識【応用編】 (opens in a new tab)" rel="noreferrer noopener">マイコンで実現するフィードバック制御のための基礎知識【応用編】</a></strong>で解説しましたが、DCモータはオープン制御の場合は負荷がかかると、大きく影響を受けてしまいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まずシミュレーションで確認してみると、やはり理論で証明されているように出力の速度はかなり変動してしまうことがわかります。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ_simulation.png"><img decoding="async" width="511" height="319" src="https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ_simulation.png" alt="" class="wp-image-8904" srcset="https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ_simulation.png 511w, https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ_simulation-300x187.png 300w" sizes="(max-width: 511px) 100vw, 511px" /></a><figcaption>オープン速度制御の の外乱影響（シミュレーション） </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今度は、シミュレーションと同じ条件になるプログラムを作成して、速度指令値が台形パターンとなる電圧をモータに与えたときの速度を実測してみます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>シミュレーションと同じ結果で、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ちょっとした負荷ですぐに速度は変動してしまう</span></strong>ことが確認できます。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ.png"><img decoding="async" width="790" height="288" src="https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ.png" alt="" class="wp-image-8907" srcset="https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ.png 790w, https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ-300x109.png 300w, https://depfields.com/wp-content/uploads/2021/03/オープン速度サーボ-768x280.png 768w" sizes="(max-width: 790px) 100vw, 790px" /></a><figcaption>オープン速度制御の外乱影響（実測値）</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>無防備な状態</strong></span>で、例えばマイクロマウスなどの駆動に適用すると勾配やちょっとした段差などの障害でも望むような動作ができない場合が起こりえます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そこで、より性能を向上すべく<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータ速度をフィードバック</span></strong>した種々の方式で速度指令値（目標値）に対する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">追従性と外乱の影響を確認</span></strong>していきます。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>速度指令パターンは制御のサイクルタイム（今回は5ms)ごとの算出データを配列に入れ、加減速時間1.5s,　定常速度時間2sの台形パターンとしています。使用モータの定格速度(7.2V印加時)は410p/sであるため、ゆとりをもたせて指令値の速度ピークは少し低い350p/sとしています。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">PI制御での速度サーボ</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>PID制御のうち、比例と積分要素を補償器としたフィードバック速度制御を構成して性能を確認します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ステップ応答時と同じ条件で速度指令値を台形パターンにしたものです。補償器の条件は<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>比例ゲインを0.5</strong></span>, <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">積分ゲインを15</span></strong>にしたものです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/03/PI制御実システム.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/03/PI制御実システム.png" alt="" class="wp-image-8886" width="476" height="212"/></a><figcaption>PI速度制御のブロック線図</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まずシミュレーションで確認してみると、この条件においては外乱の影響に関しては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ぼぼオープン制御と同じ</span></strong>で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ほとんど改善効果は見られません</span></strong>。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/03/PI速度サーボ_simulation.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/03/PI速度サーボ_simulation.png" alt="" class="wp-image-8892" width="501" height="305"/></a><figcaption>PI速度制御の の外乱影響（シミュレーション） </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>シミュレーションと全く同じ条件で実測した結果をみても同様ですが、オープン制御と異なる点は速度指令値と実際の速度には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定常偏差がなくなっている</span></strong>点です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/03/PI速度サーボ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/03/PI速度サーボ.png" alt="" class="wp-image-8936" width="580" height="210"/></a><figcaption>  PI速度制御の外乱影響（実測値）  </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回の条件ではゲインを比較的小さめに設定したこともあり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱の影響を抑制する効果はほとんどない</span></strong>といえます。もっとも、ゲインをより大きく設定すると外乱の影響を抑えることはできますが、ループ内全体のゲインをあまり大きくすると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ノイズ等の影響も受けやすくなり</span></strong>あまり好ましくはありません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PI制御は定常状態の偏差をなくす</span></strong>には有効な方式ですが、外乱負荷の影響をなくすにはあまり効果が期待できないことがわかります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">ハイゲインフィードバック制御での速度サーボ</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今度は最もシンプルなフィードバック方式で、効果もあげやすい<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式</span></strong>で検討してみます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここではこの方式を"<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック</span></strong>"と名づけてはいるのですが、実際にはそんなに大きなゲインは使用しない<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">いたって実用的な方式</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>検証する条件は下記ブロック線図のとおりです。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/03/ハイゲインフィードバック速度サーボ.png"><img decoding="async" width="545" height="277" src="https://depfields.com/wp-content/uploads/2021/03/ハイゲインフィードバック速度サーボ.png" alt="" class="wp-image-8887" srcset="https://depfields.com/wp-content/uploads/2021/03/ハイゲインフィードバック速度サーボ.png 545w, https://depfields.com/wp-content/uploads/2021/03/ハイゲインフィードバック速度サーボ-300x152.png 300w" sizes="(max-width: 545px) 100vw, 545px" /></a><figcaption>ハイゲインフィードバック速度制御のブロック線図</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>上記の条件では入力から出力間の特性は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実質10msの時定数をもった１次遅れ系</span></strong>となります。詳細は<strong><a aria-label="DCモータの簡単で実用的な速度フィードバック制御 (opens in a new tab)" href="https://depfields.com/dcmotor-highgainfeedback" target="_blank" rel="noreferrer noopener">DCモータの簡単で実用的な速度フィードバック制御</a></strong>で解説しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まずシミュレーションで確認しますが、オープン速度制御やPI速度制御ではあれだけ負荷外乱の影響をうけていたのですが、この方式では同じ条件であるのにかかわらずほぼ打ち消されていて、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度指令値どおりに追従するサーボ運転となっています</span></strong>。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/03/ハイゲイン速度サーボ_simulation.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/03/ハイゲイン速度サーボ_simulation.png" alt="" class="wp-image-8893" width="496" height="299"/></a><figcaption>ハイゲインフィードバック速度制御の外乱影響（シミュレーション） </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>シミュレーションでは良い結果であったのですが、実測値ではどうでしょうか。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シミュレーションと同じ条件</span></strong>でプログラムを構成して実測してみました。制御アルゴリズムのプログラミングでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">積分器を使用するPI制御よりも単純</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここでも結果はシミュレーションと同じく外乱の影響をキャンセルして安定して指令値に追従していることが確認できます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/03/ハイゲイン速度サーボ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/03/ハイゲイン速度サーボ.png" alt="" class="wp-image-8909" width="580" height="217"/></a><figcaption>ハイゲインフィードバック速度制御の外乱影響（実測値） </figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">２自由度ロバスト制御での速度サーボ</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハイゲインフィードバック方式はシンプルな構造なのにも関わらず効果も抜群の方式でしたが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱抑制を高めるためにゲインを大きくすると同時に応答性も向上してしまうことが短所</span></strong>でした。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これで問題がなければよいのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱抑制と応答性を独立して設定したい場合に有効な方式が2自由度ロバスト制御方式</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回の場合もステップ応答で構成したものに速度指令値（目標値）を台形パターンにしたところだけが異なります。シミュレーションやプログラムを構成するのに容易な近似タイプを採用します。【<strong><a aria-label="実践で使えるDCモータのロバスト速度制御 (opens in a new tab)" href="https://depfields.com/dcmotor-robustcontrol/" target="_blank" rel="noreferrer noopener">実践で使えるDCモータのロバスト速度制御</a></strong>】参照</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/03/2自由度実システム.png"><img decoding="async" width="676" height="328" src="https://depfields.com/wp-content/uploads/2021/03/2自由度実システム.png" alt="" class="wp-image-8888" srcset="https://depfields.com/wp-content/uploads/2021/03/2自由度実システム.png 676w, https://depfields.com/wp-content/uploads/2021/03/2自由度実システム-300x146.png 300w" sizes="(max-width: 676px) 100vw, 676px" /></a><figcaption>２自由度ロバスト速度制御のブロック線図</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まずシミュレーションで確認しますが、ハイゲインフィードバック方式と比較すると、速度が指令値に対してわずかに遅れているのは、近似タイプのため、ロバスト補償器の時定数T<sub>m2</sub>をモータ制御対象の時定数T<sub>m</sub>と同じ50msにしているからです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>外乱抑制についてはハイゲインフィードバック方式と同じく<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">十分な効果があることが確認</span></strong>できます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/03/ロバスト速度サーボ_simulation.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/03/ロバスト速度サーボ_simulation.png" alt="" class="wp-image-8894" width="505" height="320"/></a><figcaption>２自由度ロバスト速度制御の の外乱影響（シミュレーション） </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> 制御アルゴリズムのプログラミングでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">１次遅れのフィルターを構成する必要はあります</span></strong>が、そう複雑なものでもありません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>シミュレーションと同じ条件で実測したものでも外乱の影響がなく安定して指令値に追従していることが確認できます。近似タイプでも十分効果があることが確認できました。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/03/ロバスト速度サーボ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/03/ロバスト速度サーボ.png" alt="" class="wp-image-8910" width="580" height="243"/></a><figcaption>２自由度ロバスト速度制御の外乱影響（実測値）</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">まとめ</h2>



<ol class="is-style-vk-numbered-square-mark wp-block-list"><li>オープン制御では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">簡単な速度調整程度</span></strong>はできますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱の影響を簡単にうけてしまう</span></strong>ので速度サーボ的な任意な速度で運転させることには向いていません。</li><li>DCモータをPI速度制御で運転しても、外乱の影響は受けてしまいます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PI速度制御は一定負荷をかけた状態で一定速度の指令値（目標値）通りに運転させる用途</span></strong>には向いていますが目標値が変化する速度サーボ運転への適用は厳しいです。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">高いゲインを使用することが条件</span></strong>です。</li><li><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式は比較的簡単に外乱の影響をキャンセルできる方式でおすすめ</span></strong>。ゲイン値により応答性が高くなりすぎないように注意する必要があります。</li><li><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>外乱抑制を向上させながら、応答性も任意に調整したい場合には２自由度ロバスト制御が有効</strong></span>です。近似タイプで用が足りるならばよいですが、より本格的な設定をしたい場合は本来のタイプが効果的です。ただし制御補償器の次数が増えるためにプログラム内の制御アルゴリズムは複雑になります。</li></ol>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<p>結論的には外乱抑制をもたせたちょっとした用途には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式</span></strong>が実用的でおすすめです。<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>２自由度ロバスト制御</strong></span>を含め、このままでは<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>定常偏差は残る</strong></span>のですが、完全なサーボ化にすることは一工夫すれば簡単です。近日、紹介したいと思います。</p>



<p> ハイゲインフィードバック制御方式および２自由度ロバスト制御方式(近似タイプ)は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">数行の記述のみでプログラミングできるいたって実用的な方式</span></strong>です。 ちょっとした趣味用途でも簡単に採用できるのではないでしょうか。</p>



<p></p>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/dcmotor-speedservo/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/5c6048a07f448bf4cb94c5044d44cd576ab3dda6e1e95e7c1c86697a77a4f619.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Build a speed servo control system for DC motor using Microcontroller for pra...</div><div class="lkc-url" title="https://en.depfields.com/dcmotor-speedservo/">https://en.depfields.com/dcmotor-speedservo/</div><div class="lkc-excerpt">So far, I have checked the characteristics of each of the LEGO EV3 motor using DC motor with step response (constant value input) of various control methods. In actual operation, the motor is not only used at a constant speed, but is also</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/dcmotor-speedservo/">実践で使えるDCモータの速度サーボ制御をマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>実践で使えるDCモータのロバスト速度制御をマイコンで構築する</title>
		<link>https://depfields.com/dcmotor-robustcontrol/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dcmotor-robustcontrol</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Thu, 04 Feb 2021 03:32:56 +0000</pubDate>
				<category><![CDATA[モーションコントロールアプリ]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<category><![CDATA[ロバスト制御]]></category>
		<category><![CDATA[PI制御]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=8540</guid>

					<description><![CDATA[<p>ギアを介した負荷側にエンコーダが装着しているレゴEV3LモータにPI速度制御と2自由度ロバスト制御を適用してみてそれらの運転特性と効果を調べてみます。簡易モータでも実装が簡単で効果があれば積極的に採用したいものです。 P [&#8230;]</p>
<p>The post <a href="https://depfields.com/dcmotor-robustcontrol/">実践で使えるDCモータのロバスト速度制御をマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="370" src="https://depfields.com/wp-content/uploads/2021/02/excavator-51665_640.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2021/02/excavator-51665_640.jpg 640w, https://depfields.com/wp-content/uploads/2021/02/excavator-51665_640-300x173.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">ギアを介した負荷側にエンコーダが装着しているレゴEV3LモータにPI速度制御と2自由度ロバスト制御を適用してみてそれらの運転特性と効果を調べてみます。簡易モータでも実装が簡単で効果があれば積極的に採用したいものです。 </p>







<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">PI速度フィードバックコントロール</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>一般的なフィードバック制御といえばPID制御がまず挙げられます。難しい理論抜きでも感覚的にゲインを設定して出力を調整することも多いです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>もともと安定しているEV3モータに多少の条件が変わっても一定の目標値を維持するための制御です。偏差eをゼロに近づけるためにPIDゲインのなかでP(比例)とI(積分)要素を使い、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">特に積分を重視</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/PI制御ブロック線図.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/PI制御ブロック線図.png" alt="" class="wp-image-8549" width="427" height="271" srcset="https://depfields.com/wp-content/uploads/2021/02/PI制御ブロック線図.png 427w, https://depfields.com/wp-content/uploads/2021/02/PI制御ブロック線図-300x190.png 300w" sizes="(max-width: 427px) 100vw, 427px" /></a><figcaption>PI制御システム</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまで制御システムを評価するシミュレーションはScilabなどのツールを使用してきました。設計評価のときには、制御対象の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">伝達関数もPI補償器も連続系のs関数</span></strong>でよいのですが、実機で実現する場合、PI補償器はプログラム内で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">離散系として記述</span></strong>する必要があります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そのため、実機に近い最終的な動作確認には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Excelによるシミュレーションで評価するのが効果的</span></strong>です。モータなど<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実モデルは連続系の時間関数</span></strong>、例えばステップ応答時の１次遅れは1-ext(-t/T<sub>m</sub>)で記述できます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">補償器は離散系</span></strong>で実際のプログラムでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サイクル周期を考慮して積分器等を記述</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>Excelにおいて１次遅れのモータ制御対象を連続系として、PI補償器を離散系とした場合の応答です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実際のプログラムではサイクル周期を5msとするために、シミュレーションで5ms刻みの離散系としています</span></strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ステップ入力200時のシミュレーションです。入出力特性は積分ゲインを入れているため、２次遅れ系となっています。比例ゲインKpは0.5、積分ゲインを15とすると振動はおさまっていますが、積分ゲインが大きいため立ち上がりはややゆるやかです。比例ゲインがゼロの場合は積分ゲイン値によりすこしオーバーシュート気味になるかもしれません。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/PI制御パラメータ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/PI制御パラメータ.png" alt="" class="wp-image-8555" width="249" height="187"/></a><figcaption>制御パラメータ</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>定常時には出力のモータ回転速度は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御器の積分要素のおかげで定常偏差はゼロに近づき安定</span></strong>していますが、立ち上がりの応答は任意に改善することができないことがPI制御の限界です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定値制御であればPI制御でも十分</span></strong>ですが、入力が変化する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">追従サーボ制御には適用は厳しい</span></strong>かもしれません。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/PI制御シミュレーション.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/PI制御シミュレーション.png" alt="" class="wp-image-9492" width="580" height="339"/></a><figcaption> Microsoft ExcelによるPI制御シミュレーション </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>Excelで動作に問題がないことが確認できれば、あとは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">同じ記述をプログラム内に移植</span></strong>するだけです。離散系のPI補償器の部分はすでにExcel内で記述しているので移植は簡単です。実機のプログラムでの注意点はシミュレーションでは現れない変数の初期値の処理などです。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">最終的なモータへの出力はPWMのデューティ比</span></strong>で設定します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/PI制御実システム.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/PI制御実システム.png" alt="" class="wp-image-8568" width="472" height="210" srcset="https://depfields.com/wp-content/uploads/2021/02/PI制御実システム.png 472w, https://depfields.com/wp-content/uploads/2021/02/PI制御実システム-300x133.png 300w" sizes="(max-width: 472px) 100vw, 472px" /></a><figcaption>PI制御実システム</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>シミュレーションと同じ条件の実機の動作です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シミュレーションと同じ応答特性</span></strong>が実機でもみられ、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力速度は</span></strong><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンPWM制御に比べて定常偏差がなくなり安定しています</span></strong>。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/PI制御方式.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/PI制御方式.png" alt="" class="wp-image-8544" width="683" height="352" srcset="https://depfields.com/wp-content/uploads/2021/02/PI制御方式.png 683w, https://depfields.com/wp-content/uploads/2021/02/PI制御方式-300x155.png 300w" sizes="(max-width: 683px) 100vw, 683px" /></a><figcaption>PI制御実測値</figcaption></figure>



<h2 class="wp-block-heading">2自由度ロバスト速度コントロール</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまで、DCモータの速度をコントロールするのにPWMオープン制御方式、ハイゲインフィードバック制御方式、PI制御方式を行ってきましたがここで集大成の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト制御に挑戦</span></strong>したいと思います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回実機で実現する２自由度ロバスト制御の詳細は<strong><a aria-label="マイコンで実現するフィードバック制御のための基礎知識【発展編】 (opens in a new tab)" href="https://depfields.com/controltheory-advanced/" target="_blank" rel="noreferrer noopener">マイコンで実現するフィードバック制御のための基礎知識【発展編】</a></strong>で解説しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御ブロック線図.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御ブロック線図.png" alt="" class="wp-image-8550" width="535" height="289" srcset="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御ブロック線図.png 535w, https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御ブロック線図-300x162.png 300w" sizes="(max-width: 535px) 100vw, 535px" /></a><figcaption>２自由度ロバスト制御システム</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>まずEV3Lモータに２自由度ロバスト制御を適用する場合のパラメータをシミュレーションツールScilabで評価しながら決定します。２自由度制御システムを実機で実現するには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御対象P(s)の規定モデルP<sub>n</sub>(s)を逆システムとして離散化</span></strong>しなければならなく結構複雑になってしまいます。そこで、ここでは思い切って補償器で設定する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数T<sub>m2</sub>を規定モデルの時定数T<sub>n</sub>と同じにして近似化</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御パラメータ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御パラメータ.png" alt="" class="wp-image-8551" width="357" height="213" srcset="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御パラメータ.png 357w, https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御パラメータ-300x179.png 300w" sizes="(max-width: 357px) 100vw, 357px" /></a><figcaption> 制御パラメータ </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>近似化すると２自由度ロバスト制御のブロック線図は以下のようにすっきりした形になります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>よくみるとハイゲインフィードバック方式のものに似ていて違いは入力に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">１次遅れフィルタG<sub>ry</sub>(s)</span></strong>があることです。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードバック部で外乱抑制を向上</span></strong>させてこの部分で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">応答特性を調整</span></strong>していると考えられます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここでもPI制御と時と同じようにまずExcelでシミュレーションして評価します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">青色点線で囲まれた制御対象は連続系</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">緑色点線で囲まれたロバスト補償器は離散系</span></strong>で記述します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/2自由度実システム.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/2自由度実システム.png" alt="" class="wp-image-8561" width="626" height="301"/></a><figcaption>２自由度ロバスト制御実システム</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>外乱抑制に関してはフィードバックゲインCを大きくすればより効果があります。シミュレーションでは立ち上がりは設定した１次遅れ系時定数50ｍsで起動しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御シミュレーション.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御シミュレーション.png" alt="" class="wp-image-8556" width="659" height="449" srcset="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御シミュレーション.png 659w, https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御シミュレーション-300x204.png 300w" sizes="(max-width: 659px) 100vw, 659px" /></a><figcaption>Microsoft Excelによる2自由度ロバスト制御シミュレーション</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実機での２自由度ロバスト制御の応答です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数T<sub>m2</sub>は50msが今回の近似システムの条件</span></strong>ですが、試しに、時定数T<sub>m2</sub>を違う値に設定してみたところ、近似モデルにおいても時定数により立ち上がりに違いは多少現れていました。ここでは現れていませんが、外乱負荷を与えても出力の回転数はとても安定しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御方式.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御方式.png" alt="" class="wp-image-8545" width="661" height="447" srcset="https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御方式.png 661w, https://depfields.com/wp-content/uploads/2021/02/2自由度ロバスト制御方式-300x203.png 300w" sizes="(max-width: 661px) 100vw, 661px" /></a><figcaption>２自由度制御ロバスト制御実測値</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>いわゆるロバスト制御の特長がよく現れていて比較的に簡単に実現できますので、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ちょっとしたアプリケーションに積極的に採用できる</span></strong>のではないかと思います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまでは速度フィードバック制御について、定値制御のステップ応答で検証してきました。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実践的な速度入力</span></strong>としては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">台形波パターン</span></strong>などを与えることが多いので次回は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力に追従する速度サーボ制御</span></strong>について、各制御方式で比較検証していきたいと思います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>2自由度ロバスト制御を簡易に実現するために目標値応答特性を決める１次遅れフィルタG<sub>ry</sub>(s)の時定数を規範モデルと同じものとし近似化しています。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">定値制御でのステップ応答であれば</span></strong>この近似化した条件でも応答は<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ある程度改善</span></strong>できますが、ランプ応答などの<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">サーボ追従制御では近似した簡易タイプ</span></strong>では性能に限度があるため簡易でない<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">本来の制御補償器</span></strong>をプログラム内で構成するほうが確実です。ただし、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">実現には浮動小数点演算が必要</span></strong>となってきますので、比較的動作の緩やかな用途では簡易な近似タイプで十分ではないでしょうか。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/dcmotor-robustcontrol/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/004a2073fc200f500a3227f7ef3d89f5a5e18b5773f5c99543cfdd0560539ec6.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Build a robust speed control system for DC motor using Microcontroller for pr...</div><div class="lkc-url" title="https://en.depfields.com/dcmotor-robustcontrol/">https://en.depfields.com/dcmotor-robustcontrol/</div><div class="lkc-excerpt">I will try to apply PI speed control and 2-degree of freedom robust control to a LEGO EV3L motor with an encoder attached to the load side through gears to verify their operating characteristics and effects. I would like to actively adopt</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/dcmotor-robustcontrol/">実践で使えるDCモータのロバスト速度制御をマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DCモータの実用的な速度フィードバック制御システムをマイコンで構築する</title>
		<link>https://depfields.com/dcmotor-highgainfeedback/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dcmotor-highgainfeedback</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Mon, 01 Feb 2021 01:27:09 +0000</pubDate>
				<category><![CDATA[モーションコントロールアプリ]]></category>
		<category><![CDATA[ハイゲインフィードバック]]></category>
		<category><![CDATA[速度制御]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=8464</guid>

					<description><![CDATA[<p>DCモータは市販のドライバを用いると電圧制御タイプではマイコンからのPWMパルス出力を与えるとデューティ比に応じてオープンループで簡単に速度をコントロールすることができます。 速度はデューティ比にほぼ比例しているのですが [&#8230;]</p>
<p>The post <a href="https://depfields.com/dcmotor-highgainfeedback/">DCモータの実用的な速度フィードバック制御システムをマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="480" src="https://depfields.com/wp-content/uploads/2021/01/DCmotor.png" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2021/01/DCmotor.png 640w, https://depfields.com/wp-content/uploads/2021/01/DCmotor-300x225.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">DCモータは市販のドライバを用いると電圧制御タイプではマイコンからのPWMパルス出力を与えるとデューティ比に応じて<strong><a href="https://depfields.com/dcmotor-pwmcontrol/" target="_blank" rel="noreferrer noopener" title="DCモータのマイコンPWM出力による回転速度制御（オープンループ制御）">オープンループで簡単に速度をコントロール</a></strong>することができます。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度はデューティ比にほぼ比例</span></strong>しているのですが、これは運転条件が無負荷での場合です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">突発的な負荷や定常負荷がかかると速度は安定しない</span></strong>のがオープンループでの限界です。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">そこでエンコーダなどのセンサによる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度のフィードバックを施すことにより特性を改善</span></strong>して、多少の負荷があっても安定させ、また、定常状態でも速度を安定させることを図ります。</p>







<h2 class="wp-block-heading">DCモータ開ループ特性のモデル化</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DCモータにギアを介したレゴ®マインドストームEV3Lモータの数式モデルは電気回路、機械の運動方程式から求められ、厳密には入力電圧から出力速度間の伝達関数は2次遅れ系となります。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>本来の数式モデルは機械的伝達機構のモデル化も含むので結構複雑ですが、このモータのフィードバック制御を実践で取り扱うためにはできるだけ現実に即したモデルである必要があります。つまり、いくら高精度で高度に数式モデルを作成しても実際のパラメータ変動などで意味のないものになってしまうからです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そこで、現物の特性を押さえたできるだけ簡素化したモデル化をするのが現実的です。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/アクチュエータ近似伝達関数.png" alt="" class="wp-image-8475" width="468" height="191" srcset="https://depfields.com/wp-content/uploads/2021/01/アクチュエータ近似伝達関数.png 470w, https://depfields.com/wp-content/uploads/2021/01/アクチュエータ近似伝達関数-300x123.png 300w" sizes="(max-width: 468px) 100vw, 468px" /><figcaption> 簡易化した DCモータの伝達関数モデル</figcaption></figure>



<h2 class="wp-block-heading"> EV3Lモータの近似伝達関数</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータ端子電圧を入力</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">EV3Lモータの回転速度を出力</span></strong>としたときの伝達関数は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1次遅れ系で近似</span></strong>できますので、入力の端子電圧をステップ状に与えたときの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">回転速度の変化から時定数T<sub>m</sub>を調べます</span></strong>。最大電圧時（7.2V）のときの速度は410p/sであるため、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">伝達関数ゲインK<sub>m</sub></span></strong>もわかります。 </p>
</div></div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="757" height="417" src="https://depfields.com/wp-content/uploads/2021/01/EV3速度特性.png" alt="" class="wp-image-8477" srcset="https://depfields.com/wp-content/uploads/2021/01/EV3速度特性.png 757w, https://depfields.com/wp-content/uploads/2021/01/EV3速度特性-300x165.png 300w" sizes="(max-width: 757px) 100vw, 757px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これで伝達関数の近似モデルが求まりました。実際の波形をみても、1次遅れですので近似モデルで設計するのが実践的であることがわかります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>EV3Lモータの入力に端子電圧7.2[V]を与えるとギアを介した負荷側の回転速度は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数T<sub>m</sub>で起動</span></strong>して、定常で410[p/s]になるということです。実際のプログラムにおいては7.2Vの指令をあたえるのにPWMのデューティ比（この場合は100）を指定することになります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/EV3近似伝達関数.png" alt="" class="wp-image-8476" width="388" height="132" srcset="https://depfields.com/wp-content/uploads/2021/01/EV3近似伝達関数.png 388w, https://depfields.com/wp-content/uploads/2021/01/EV3近似伝達関数-300x102.png 300w" sizes="(max-width: 388px) 100vw, 388px" /><figcaption>EV3Lモータ伝達関数モデル</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>エンコーダからのパルスを単なるモニターでなく速度フィードバック用のセンサとして使用する場合はセンサによる速度の細かな変化データが必要なため、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">本来は分解能の高い高性能のエンコーダを使用する必要</span></strong>があります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回のEV3Lモータのようにエンコーダが負荷側に装着していて分解能が比較的粗い（180p/r）場合は、測定精度を上げるために一工夫必要です。測定には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">簡易的なエンコーダでも高精度エンコーダに劣らない工夫</span></strong>を施しています。</p>
</div></div></div>



<h2 class="wp-block-heading">ハイゲインフィードバック方式</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>速度フィードバックの中でも<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>最も簡単で効果の見られる<a href="https://depfields.com/controltheory-advanced/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【発展編】">ハイゲインフィードバック方式</a>で特性改善</strong></span>を試みます。ハイゲインフィードバック方式は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードバックゲインC<sub>1</sub></span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力調整用ゲインC<sub>2</sub></span></strong>で構成します。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハイゲインフィードバック方式のブロック線図です。 フィードバックゲインC<sub>1</sub>を上げるほど特性が改善されるので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック</span></strong>と呼ばれます。ただし、現実的にはノイズなども増幅してしまうことになるため、実現できる範囲は限られます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><a href="https://depfields.com/controltheory-analysis/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【解析編】">マイコンで実現するフィードバック制御のための基礎知識【解析編】</a></strong>の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">内部安定性</span></strong>で解説していますが、フィードバックゲインC<sub>1</sub>が<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">比較的小さい場合</span></strong>はノイズから出力までの時定数が大きく<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ローパスフィルタ特性が効果的</span></strong>なのですが、大きくなるに連れて時定数は小さくなり（カットオフ周波数は高くなる）、ノイズの影響は受けやすい傾向になります。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/02/ハイゲインフィードバック.jpg"><img decoding="async" width="472" height="231" src="https://depfields.com/wp-content/uploads/2021/02/ハイゲインフィードバック.jpg" alt="" class="wp-image-12988" srcset="https://depfields.com/wp-content/uploads/2021/02/ハイゲインフィードバック.jpg 472w, https://depfields.com/wp-content/uploads/2021/02/ハイゲインフィードバック-300x147.jpg 300w" sizes="(max-width: 472px) 100vw, 472px" /></a><figcaption>ハイゲインフィードバック</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回のEV3Lモータをハイゲインフィードバック方式に適用するとこのようになります。オープンループ制御との大きな違いは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度目標値がシステムの入力</span></strong>となっていてモータ回転速度をフィードバックさせている点です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">青点線で囲まれた部分</span></strong>はEV3Lモータそのものの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御対象</span></strong>で、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">緑点線部がハイゲインフィードバックを施したコントローラ部</span></strong>です。ここの部分は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">プログラミングで実現</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実機に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">制御理論を適用する場合に大切なポイント</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">扱う信号の次元（単位）を常に意識すること</span></strong>です。ここではあえて次元を揃えるために変換係数K<sub>n</sub>を設けていますが、これはあってもなくても結果は同じものになります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック.png" alt="" class="wp-image-8479" width="496" height="244" srcset="https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック.png 496w, https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック-300x148.png 300w" sizes="(max-width: 496px) 100vw, 496px" /></a><figcaption>EV3Lモータハイゲイン速度フィードバック</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>プログラムの記述をできるだけ簡素化するためにさらにモデルを近似化します。実際のプログラムにおいては電圧指令にアナログ電圧値そのものを指定するのではなくPWMのデューティ比（0-100）を指定します。つまり最大入力時のデューティ比100%に対する最大速度パルスを400p/sに近似すると以下のようにとてもシンプルなブロック図となります。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック近似.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック近似.png" alt="" class="wp-image-8480" width="509" height="217" srcset="https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック近似.png 509w, https://depfields.com/wp-content/uploads/2021/01/ev3ハイゲイン速度フィードバック近似-300x128.png 300w" sizes="(max-width: 509px) 100vw, 509px" /></a><figcaption>ハイゲインフィードバック方式近似</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここで改善後の最終的な入出力間の特性を決めるためのゲインC<sub>1</sub>とC<sub>2</sub>を決定します。もともとの制御対象の1次遅れ特性T<sub>m</sub>=50ms をフィードバックを施すことでT<sub>m2</sub>=10msへ改善するものとします。</p>
</div></div></div>



<figure class="wp-block-image size-large"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック特性改善伝達関数.png" alt="" class="wp-image-8481"/></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この場合、ゲインC<sub>1</sub>は一意的に決定されてC<sub>1</sub>=4となります。その結果、ゲインC<sub>2</sub>=5となりますが、これは必要に応じて最終的に出力をみながら微調整します。 </p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック特性改善2.png"><img decoding="async" width="523" height="422" src="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック特性改善2.png" alt="" class="wp-image-8491" srcset="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック特性改善2.png 523w, https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック特性改善2-300x242.png 300w" sizes="(max-width: 523px) 100vw, 523px" /></a></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これで入力を速度目標値にしたときの出力速度までの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">伝達関数G<sub>ry</sub>(s)の特性は時定数T<sub>m2</sub>の1次遅れ</span></strong>となります。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数も外乱の影響も1/5倍</span></strong>となっています。C<sub>1</sub>のゲインにより特性改善はできますが、実現できる範囲で設定します。応答と外乱抑制は独立して設定できないところがこの方式の限界です。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>詳細は<strong><a href="https://depfields.com/controltheory-advanced/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">マイコンで実現するフィードバック制御のための基礎知識【発展編】</a></strong>の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式との比較</span></strong>を参照してください。 </p>
</div></div></div>



<h2 class="wp-block-heading">実際のうごき</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>EV3 Lモータが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数50msの1次遅れ近似モデル</span></strong>であることが算定できましたのでいよいよこのモデルをベースとしたさまざまな制御システムで動作を確認していくことにします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実機での制御システムを実現するとシミュレーションでは現れなかった現象がでるものです。これはドライバからモータへの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力制限</span></strong>であったり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">センサや処理内容の分解能</span></strong>などにより想定外の結果になる場合もあるので、可能な限り条件は織り込んでおく必要はあります。<br></p>
</div></div></div>



<h3 class="wp-block-heading">オープン制御PWM方式</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>EV3 LモータはDCモータベースモデルのため、オープン制御でもPWMパルス出力のデューティ比を変えるだけで速度を調整できます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>下図ではPWM比を48[%]に設定したときのエンコーダからのパルス[p/s]を示しています。ドライバに与えた電圧V<sub>m</sub>(7.2V)の約半分であることで速度も半分となっています。</p>
</div></div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="627" height="449" src="https://depfields.com/wp-content/uploads/2021/01/PWM-duty比と速度.png" alt="" class="wp-image-8501" srcset="https://depfields.com/wp-content/uploads/2021/01/PWM-duty比と速度.png 627w, https://depfields.com/wp-content/uploads/2021/01/PWM-duty比と速度-300x215.png 300w" sizes="(max-width: 627px) 100vw, 627px" /></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>95%PWMduty比のステップ入力を与えた場合の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンループのPWM制御の応答</span></strong>です。縦軸はエンコーダから得られる速度信号で単位は[p/s]です。横軸は経過時間で単位は[ms]です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>起動後、時定数T<sub>m</sub> (50ms)で目標値に到達しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/PWMオープン制御.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/PWMオープン制御.png" alt="" class="wp-image-8498" width="658" height="389" srcset="https://depfields.com/wp-content/uploads/2021/01/PWMオープン制御.png 658w, https://depfields.com/wp-content/uploads/2021/01/PWMオープン制御-300x177.png 300w" sizes="(max-width: 658px) 100vw, 658px" /></a><figcaption>EV3Lモータオープン制御</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h3 class="wp-block-heading">ハイゲインフィードバック方式</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>次に、速度目標入力を200[p/s]に設定した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式のステップ応答</span></strong>を示します。 <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードバックゲインC<sub>1</sub>を１から4に設定</span></strong>した場合です。応答波形をみるとオープンループPWMの場合に比べて、ハイゲインフィードバック方式はゲインC<sub>1</sub>を大きくするにつれ時定数が小さくなり応答が改善されています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハイゲインC<sub>1</sub>を3より大きくしても応答が変わらないのは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータ電圧出力制限による</span></strong>からです。そういう意味で、最大入力400[p/s]のステップ信号を与えた場合は100%で起動しますのでゲイン C<sub>1</sub> を変えても応答の改善はありません。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式-1.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式-1.png" alt="" class="wp-image-8515" width="672" height="343" srcset="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式-1.png 799w, https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式-1-300x153.png 300w, https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式-1-768x392.png 768w" sizes="(max-width: 672px) 100vw, 672px" /></a><figcaption>EV3Lモータハイゲインフィードバック方式</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまで、速度フィードバック制御として最も簡易的で効果の高い<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式</span></strong>で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">オープンループPWM制御方式</span></strong>に対して改善できるかを検討してきました。 EV3Lモータはエンコーダを持っているのですが、分解能はあまり高くなく入力は電圧制御型ドライバPWMデューティ比を変えているだけなので高度なフィードバック制御を施すには制限はあります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>次回はこのような条件下で<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%, rgba(255, 253, 107, 0.7) 0px);" class="vk_highlighter"><b>速度PI制御や</b></span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">２自由度ロバスト制御</span></strong>を適用するとどんな結果になるか検証してみたいと思います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/dcmotor-highgainfeedback/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/313c16c362b7a2f97350d62415e462feaf7e25c74d3573f8ee3edc4bea9afd19.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Build a practical speed feedback control system for DC motor using Microcontr...</div><div class="lkc-url" title="https://en.depfields.com/dcmotor-highgainfeedback/">https://en.depfields.com/dcmotor-highgainfeedback/</div><div class="lkc-excerpt">With a commercially available driver, the speed of a voltage-controlled DC motor can be easily controlled in an open loop according to the duty ratio when a PWM pulse output from MCU is given.The speed is almost proportional to the dut</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/dcmotor-highgainfeedback/">DCモータの実用的な速度フィードバック制御システムをマイコンで構築する</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DCモータのマイコンPWM出力による回転速度制御（オープンループ制御）</title>
		<link>https://depfields.com/dcmotor-pwmcontrol/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dcmotor-pwmcontrol</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Sun, 24 Jan 2021 15:08:43 +0000</pubDate>
				<category><![CDATA[モーションコントロールアプリ]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<category><![CDATA[速度制御]]></category>
		<category><![CDATA[PWM制御]]></category>
		<category><![CDATA[DCモータ]]></category>
		<category><![CDATA[オープンループ制御]]></category>
		<category><![CDATA[マイコンモータ制御]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=8274</guid>

					<description><![CDATA[<p>レゴ®マインドストーム®EV3のLモータを使って、STM32Nucleoボードにより実際にモータを動作させてみます。EV3のモータにはエンコーダが内蔵していますので速度のモニターをするのみならず、フィードバックさせること [&#8230;]</p>
<p>The post <a href="https://depfields.com/dcmotor-pwmcontrol/">DCモータのマイコンPWM出力による回転速度制御（オープンループ制御）</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="449" height="364" src="https://depfields.com/wp-content/uploads/2021/01/ev3-Lmotor.png" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2021/01/ev3-Lmotor.png 449w, https://depfields.com/wp-content/uploads/2021/01/ev3-Lmotor-300x243.png 300w" sizes="(max-width: 449px) 100vw, 449px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom"><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">レゴ®マインドストーム<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">®</span></strong>EV3のLモータ</span></strong>を使って、STM32Nucleoボードにより実際にモータを動作させてみます。EV3のモータにはエンコーダが内蔵していますので速度のモニターをするのみならず、フィードバックさせることでより高度な運転ができるようになります。</p>



<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">まず、マイコンを使ったモーションコントロールの手始めとしてエンコーダからのフィードバックを使わない<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PWM信号によるオープン制御</span></strong>をしてみたいと思います。</p>







<h2 class="wp-block-heading">実機で使うモータモジュール</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><a aria-label="マイコンで実現するフィードバック制御のための基礎知識【応用編】 (opens in a new tab)" href="https://depfields.com/controltheory-application/" target="_blank" rel="noreferrer noopener">マイコンで実現するフィードバック制御のための基礎知識【応用編】</a></strong>でDCモータの開ループ特性について解説しました。ここではマイコンのPWM出力を利用した電圧制御による速度制御について実機を使って確認します。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DCモータは無負荷という条件付きではありますが端子電圧を調整することで回転速度もそれに比例して調整できます。そこで、端子電圧にPWMで設定したパルス状電圧を与えて回転させてみることにします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実機にはレゴ<strong>®</strong>マインドストームEV3のLモータを使用します。このモータには多段のギアが組み込まれていて<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ギア比は48:1</span></strong>、エンコーダは負荷側に装着されていて互いに1/4周期ずれたA相、B相のパルスを出力します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">各相パルスの実測値分解能は180P/R</span></strong>です。つまり1回転あたり180パルスが出力されます。負荷側の定格回転数は160-170r/minとなっています。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>このモータモジュールを使うにあたって、モータ単体のものでなくギアも含めた一体のものとして特性を調べることにします。つまり、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力はモータの端子電圧</span></strong>で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力は負荷側の回転速度</span></strong>となります。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ev3-Lmotor.png" alt="" class="wp-image-8334" style="width:421px;height:341px"/><figcaption class="wp-element-caption"> レゴ®マインドストーム®EV3 Lモータ</figcaption></figure>



<h2 class="wp-block-heading">マイコンによるモータドライブ</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"> モータは誘導性負荷の典型的なもの</span></strong>で、電力も大きく、マイコン出力を直接つないで運転させることはできません。そこで、マイコン用の電源とは別途のモータドライブ用電源V<sub>M</sub>を用意し、トランジスタなどの増幅素子を介してマイコンからの運転信号でドライブします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>一から始めてトランジスタ等を組み合わせてドライブ回路を構成することもありますが、ちょっとした用途ではモータを運転するための<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">専用のICを使用することをおすすめ</span></strong>します。必要な機能が内蔵されていてサイズは小さい割にドライブの容量が大きく価格も低いためです。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これは<strong><a href="https://depfields.com/controltheory-application/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【応用編】">モータドライバ</a></strong>と呼ばれる一種のパワーアンプです。 詳細は割愛しますが、ドライバにはトランジスタ、FET等のパワーエレクトロニクス回路が内蔵されていてマイコンからの信号によりモータへの任意の電圧や電流を調整できるものです。ドライバの種類により<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電圧制御タイプ</span></strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電流制御タイプ</span></strong>があります。 今回使用するTB6612FNGは電圧制御タイプです。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="451" height="375" src="https://depfields.com/wp-content/uploads/2020/12/tb6612fngdriver-module.jpg" alt="" class="wp-image-7491" style="width:317px;height:263px" srcset="https://depfields.com/wp-content/uploads/2020/12/tb6612fngdriver-module.jpg 451w, https://depfields.com/wp-content/uploads/2020/12/tb6612fngdriver-module-300x249.jpg 300w" sizes="(max-width: 451px) 100vw, 451px" /><figcaption class="wp-element-caption">電圧制御型ドライバTB6612FNG</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>モータドライバTB6612FNGはドライバに接続したモータ用電源V<sub>M</sub>をマイコンから与えたPWMパルスのデューティ比率に応じてモータ端子電圧とするICです。モータの回転方向はIN1とIN2を組み合わせて切り替えます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DCモータはブラシを内蔵しているために整流子との間でノイズが発生し、マイコンに影響を及ぼします。 そこで、通常はモータ端子にセラミックコンデンサ（100nF）をノイズ対策用としてつないでおきます。小型モータであればこれでよいと思います。今回使用するTB6612FNGのドライバモジュールはコンデンサを内蔵しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="447" height="211" src="https://depfields.com/wp-content/uploads/2021/01/接続ブロック図.png" alt="" class="wp-image-8345" style="width:432px;height:214px" srcset="https://depfields.com/wp-content/uploads/2021/01/接続ブロック図.png 447w, https://depfields.com/wp-content/uploads/2021/01/接続ブロック図-300x142.png 300w" sizes="(max-width: 447px) 100vw, 447px" /><figcaption class="wp-element-caption">マイコンによるモータドライブ全体図</figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">モータドライバのPWMスイッチング周波数</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><a href="https://depfields.com/timer/" target="_blank" rel="noreferrer noopener" title="タイマ・カウンタ【STM32の高機能・汎用タイマ詳細】">マイコンからのPWM出力</a></strong>によりモータ端子電圧はパルス状になり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ON期間に駆動トルクによるドライブ運転</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">OFF期間に逆起電力によるブレーキがかかる運転</span></strong>となります。端子電圧がパルス状でもモータにはインダクタンス成分がありますので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電流は電圧の1次遅れ</span></strong>となり連続になります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電流の変化率</span></strong>はモータのインダクタンスおよび抵抗値成分で決まる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電気的時定数L/R</span></strong>によりますが、PWMのスイッチング周波数が低いと電圧オフ期間（ブレーキ運転時）に電流は低下しすぎてしまい、モータ軸慣性があるとはいえ発生トルクに脈動が生じることになり、逆に周波数が高いと電流はなめらかになりますがノイズやスイッチング損失が大きくなるのでやみくもに高くもできません。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> 一般に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータ電気的時定数に対して10倍程度のスイッチング周波数にすればよい</span></strong>といわれています。 とはいえ、電気的時定数が不明であるため、まずは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">10kHzあたりのPWMスイッチング周波数で試して</span></strong>みようとおもいます。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/モータ波形.png"><img decoding="async" width="477" height="320" src="https://depfields.com/wp-content/uploads/2021/01/モータ波形.png" alt="" class="wp-image-8336" style="width:477px;height:320px" srcset="https://depfields.com/wp-content/uploads/2021/01/モータ波形.png 477w, https://depfields.com/wp-content/uploads/2021/01/モータ波形-300x201.png 300w" sizes="(max-width: 477px) 100vw, 477px" /></a><figcaption class="wp-element-caption">PWMによるモータ端子電圧とモータ電流</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>下表はドライバ仕様書に記載の運転モードについてです。入力IN1とIN2の組み合わせで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータ回転方向を指定</span></strong>したり、俗に言う<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">RUN信号の機能</span></strong>として使用します。PWMは信号のパターンがモータ端子電圧になるものです。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ON時に駆動</span></strong>して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">OFF時にモータからの逆起電力が発生してブレーキ</span></strong>がかかることになります。PWM入力はマイコンのPWMタイマ出力に接続します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ドライバ運転モード.png"><img decoding="async" width="395" height="249" src="https://depfields.com/wp-content/uploads/2021/01/ドライバ運転モード.png" alt="" class="wp-image-8605" style="width:383px;height:243px" srcset="https://depfields.com/wp-content/uploads/2021/01/ドライバ運転モード.png 395w, https://depfields.com/wp-content/uploads/2021/01/ドライバ運転モード-300x189.png 300w" sizes="(max-width: 395px) 100vw, 395px" /></a><figcaption class="wp-element-caption"> ドライバ TB6612FNG 運転モード </figcaption></figure>





<h3 class="wp-block-heading">４象限チョッパ</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>電動モータのドライブ機器で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">インバータ</span></strong>はよく耳にすることがあると思います。これもパワーエレクトロニクス搭載のモータドライブ機器ですが、インバータは<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>3相誘導モータ用</strong></span>で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">交流出力の周波数を変更することでモータ速度を任意に変更</span></strong>する機器です。</p>
</div></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p><strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">インバータ回路</span></strong>は電源回路のダイオードブリッジや平滑コンデンサなどで直流化した電源を再び交流に変換する回路（逆変換回路）のことで、この逆の交流から直流への変換回路は<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">コンバータ回路</span></strong>と呼ばれています。もっと広い変換器としての意味で直流間電圧変換のDC-DCコンバータや交流間変換のAC-ACコンバータなどと呼ばれる製品もあります。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">DCモータのドライブ回路</span></strong>はこのインバータ出力3相のうち<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">単相部分を使ったものに相当</span></strong>し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">4象限チョッパ回路</span></strong>とも呼ばれるものです。 モータ回転の正転逆転、発生トルクの正と負を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">4通り組み合わせた運転</span></strong>ができるのことから4象限回路といいます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ドライブ運転</span></strong>とは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">回転方向にトルクを発生</span></strong>して駆動させる通常運転のことで、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ブレーキ運転</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">回転方向とは逆のトルク</span></strong>、つまり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">逆起電力を発生させながらブレーキをかける運転</span></strong>のことです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> モータドライバTB6612FNG ではドライバへの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力IN1とIN2の組み合わせで第1象限から第4象限の運転を切り替え</span></strong>ます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/4象限.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/4象限.png" alt=" 4象限運転 " class="wp-image-8599" style="width:358px;height:359px"/></a><figcaption class="wp-element-caption">  4象限運転  </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">チョッパ回路</span></strong>は下図の4つのトランジスタなどの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パワースイッチング素子(Tr1,Tr2,Tr3,Tr4)で構成</span></strong>されています。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PWMのパターンに応じてこれらのスイッチング素子のON・OFFで組み合わせます</span></strong>が、スイッチ切り替えの過渡期に組み合わせが重なって同時にONとなり<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">短絡になってしまうのを防止</span></strong>するために<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">デッドタイム</span></strong>というものを設けています。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/4象限チョッパ回路.png"><img decoding="async" width="315" height="314" src="https://depfields.com/wp-content/uploads/2021/01/4象限チョッパ回路.png" alt="" class="wp-image-8424" style="width:315px;height:314px" srcset="https://depfields.com/wp-content/uploads/2021/01/4象限チョッパ回路.png 315w, https://depfields.com/wp-content/uploads/2021/01/4象限チョッパ回路-300x300.png 300w, https://depfields.com/wp-content/uploads/2021/01/4象限チョッパ回路-150x150.png 150w" sizes="(max-width: 315px) 100vw, 315px" /></a><figcaption class="wp-element-caption">4象限チョッパ回路</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ドライバTB6612FNGはブレーキ運転時に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">コイルで発生した電力を回路内で吸収する回生</span></strong>方式ですが、電流制御タイプTB67H450FNGでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">電源に返す回生</span></strong>をおこなっています。ドライバによりスイッチング素子の組み合わせは違うようです。</p>
</div></div></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img decoding="async" width="309" height="320" src="https://depfields.com/wp-content/uploads/2021/03/正転ドライブ.png" alt="" class="wp-image-8924" srcset="https://depfields.com/wp-content/uploads/2021/03/正転ドライブ.png 309w, https://depfields.com/wp-content/uploads/2021/03/正転ドライブ-290x300.png 290w" sizes="(max-width: 309px) 100vw, 309px" /><figcaption class="wp-element-caption">正転ドライブ</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img decoding="async" width="313" height="319" src="https://depfields.com/wp-content/uploads/2021/03/正転ブレーキ.png" alt="" class="wp-image-8925" srcset="https://depfields.com/wp-content/uploads/2021/03/正転ブレーキ.png 313w, https://depfields.com/wp-content/uploads/2021/03/正転ブレーキ-294x300.png 294w" sizes="(max-width: 313px) 100vw, 313px" /><figcaption class="wp-element-caption">正転ブレーキ</figcaption></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img decoding="async" width="316" height="323" src="https://depfields.com/wp-content/uploads/2021/03/逆転ドライブ.png" alt="" class="wp-image-8926" srcset="https://depfields.com/wp-content/uploads/2021/03/逆転ドライブ.png 316w, https://depfields.com/wp-content/uploads/2021/03/逆転ドライブ-293x300.png 293w" sizes="(max-width: 316px) 100vw, 316px" /><figcaption class="wp-element-caption">逆転ドライブ</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-large"><img decoding="async" width="316" height="326" src="https://depfields.com/wp-content/uploads/2021/03/逆転ブレーキ.png" alt="" class="wp-image-8927" srcset="https://depfields.com/wp-content/uploads/2021/03/逆転ブレーキ.png 316w, https://depfields.com/wp-content/uploads/2021/03/逆転ブレーキ-291x300.png 291w" sizes="(max-width: 316px) 100vw, 316px" /><figcaption class="wp-element-caption">逆転ブレーキ</figcaption></figure>
</div>
</div>



<p class="has-text-align-center"> ドライバTB6612FNGの４象限スイッチングパターン</p>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>ドライバを自作する場合はデッドタイムも考慮してハードウェアで回路を組む場合もありますが、<strong><a title="タイマ・カウンタ【STM32の高機能・汎用タイマ詳細】" href="https://depfields.com/timer/" target="_blank" rel="noreferrer noopener">STM32マイコンの高機能タイマ</a></strong><a title="タイマ・カウンタ【STM32の高機能・汎用タイマ詳細】" href="https://depfields.com/timer/" target="_blank" rel="noopener"><strong>(Advanced-control timer TIM1やTIM8）</strong></a>にはこの<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">デッドタイム付きPWMを発生する機能が含まれています</span></strong>。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">マイコンを使用したモータドライブ回路</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">VR(可変抵抗)からのアナログ入力信号を速度指令信号</span></strong>として与えます。モータドライバへの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PWMパルスデューティ比率はアナログ入力値と連動</span></strong>させて速度を変化させるプログラムです。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回はDCモータのオープンループ制御ですので速度指令値に相当するPWMデューティ比率を変化させてモータ回転速度が変化する様子を確認してみます。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>エンコーダ、シリアル通信はモニタ用です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="477" height="498" src="https://depfields.com/wp-content/uploads/2021/01/input.png" alt="" class="wp-image-8338" style="width:477px;height:498px" srcset="https://depfields.com/wp-content/uploads/2021/01/input.png 477w, https://depfields.com/wp-content/uploads/2021/01/input-287x300.png 287w" sizes="(max-width: 477px) 100vw, 477px" /><figcaption class="wp-element-caption">入力側配線図</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>出力側にはドライバへモータ電圧指令としてのPWMタイマ出力を与えます。ドライバのIN1/IN2には運転モードにあったロジックの組み合わせをプログラムで指定します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>USER SWを押すたびに正転(CW)、ブレーキ停止、逆転(CCW)、 ブレーキ停止のサイクルを繰り返すプログラムとしています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ドライバ入力は内部でプルダウンとなっていて6Vまでのロジック電圧入力仕様なのでマイコンは<strong><a href="https://depfields.com/mc-circuit/" target="_blank" rel="noreferrer noopener" title="マイコン周辺のハードウェア基本回路【初心者・未経験者必見】">プッシュプル出力</a></strong>とします。</p>
</div></div></div>



<figure class="wp-block-image size-large"><img decoding="async" width="574" height="346" src="https://depfields.com/wp-content/uploads/2021/05/配線図_出力.png" alt="" class="wp-image-9324" srcset="https://depfields.com/wp-content/uploads/2021/05/配線図_出力.png 574w, https://depfields.com/wp-content/uploads/2021/05/配線図_出力-300x181.png 300w" sizes="(max-width: 574px) 100vw, 574px" /><figcaption class="wp-element-caption"> 出力側配線図   </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>EV3Lモータのコネクタ仕様です。エンコーダからは電圧パルスが出力されます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="412" height="258" src="https://depfields.com/wp-content/uploads/2021/01/コネクタ仕様.png" alt="" class="wp-image-8340" style="width:342px;height:214px" srcset="https://depfields.com/wp-content/uploads/2021/01/コネクタ仕様.png 412w, https://depfields.com/wp-content/uploads/2021/01/コネクタ仕様-300x188.png 300w" sizes="(max-width: 412px) 100vw, 412px" /><figcaption class="wp-element-caption">コネクタ仕様</figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>いわゆる<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">PWM制御によるモータ駆動</span></strong>は<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">電圧制御型ドライバ</span></strong>を使用するのですが、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">PWMスイッチング周波数の決め方もポイント</span></strong>の一つです。これは<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">モータの電気的時定数</span></strong>にも関わっていて今回は10kHzとしましたが、タイマのCLKを1MHzに設定しているのでPWMの分解能は10kHz/1MHz=1/100です。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">電流制御型ドライバ</span></strong>の場合はモータの電気時定数は考慮せずとも直接トルクに比例した電流を<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">高い分解能で指令値</span></strong>にできるので<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">制御理論の適用には有利</span></strong>です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">実際のうごき</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>マイコンボードNucleo-F103RBでEV3Lモータを動かす全容です。 レゴ<strong><em>®</em></strong>モータのソケット部は特殊なので汎用の電話用モジュラーコードに変換しました。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="640" height="463" src="https://depfields.com/wp-content/uploads/2021/01/試験用実機.jpg" alt="" class="wp-image-8385" style="width:640px;height:463px" srcset="https://depfields.com/wp-content/uploads/2021/01/試験用実機.jpg 640w, https://depfields.com/wp-content/uploads/2021/01/試験用実機-300x217.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">試験用実機</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>PWM出力のduty比とエンコーダによるモータ速度をシリアル通信モニターにてPCに表示します。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータ電源V<sub>M</sub>が7.2Vの場合</span></strong>、ボリュームを調整して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PWMデューティ比を0から100まで変化させると 速度は比率にほぼ比例して0から約40まで変化</span></strong>します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>速度40とは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">100msサイクル内で計測したエンコーダパルス数</span></strong>なので1秒当たり400パルス、つまり400/180回転に相当します。1分当たりだと約133回転です。規定の回転数(最大）が160-170rpmだそうですので <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モータ電源V<sub>M</sub> を最大の9V</span></strong>にするとほぼ一致します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" width="657" height="483" src="https://depfields.com/wp-content/uploads/2021/01/PWMduty-速度シリアルモニター.png" alt="" class="wp-image-8387" style="width:657px;height:483px" srcset="https://depfields.com/wp-content/uploads/2021/01/PWMduty-速度シリアルモニター.png 657w, https://depfields.com/wp-content/uploads/2021/01/PWMduty-速度シリアルモニター-300x221.png 300w" sizes="(max-width: 657px) 100vw, 657px" /><figcaption class="wp-element-caption">シリアルモニター　デューティ比50%時の速度</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>無負荷運転時の入力指令値に対する速度です。端子電圧が極めて小さい領域(duty比0-5％)ではモータ軸、ギアの摩擦などの影響で起動しませんが、一度回転始めると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力速度はデューティ比つまり端子電圧にほぼ比例</span></strong>しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/PWMduty比と速度.png"><img decoding="async" width="519" height="314" src="https://depfields.com/wp-content/uploads/2021/01/PWMduty比と速度.png" alt="" class="wp-image-8391" style="width:519px;height:314px" srcset="https://depfields.com/wp-content/uploads/2021/01/PWMduty比と速度.png 519w, https://depfields.com/wp-content/uploads/2021/01/PWMduty比と速度-300x182.png 300w" sizes="(max-width: 519px) 100vw, 519px" /></a><figcaption class="wp-element-caption">PWMduty-速度特性</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>PWMスイッチング周波数を5kHz, 20kHzおよび40kHzに変更してドライブさせてみたのですが、気になるトルクの脈動はなく状態の違いはみられませんでしたので、10kHzのままでいいかと思います。機会があれば電流波形で確認してみたいと思います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DCモータのオープンループ制御なので、無負荷であれば<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">回転速度は端子電圧に比例</span></strong>しているのですが少しでも<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">負荷をかけると速度は簡単に変動</span></strong>します。負荷によらず安定した速度を保つためには<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">センサーによる速度フィードバック制御が必要</span></strong>です。次回はフィードバックループで構成した速度制御システムを実機にて検証したいと思います。</p>
</div></div></div>



<div class='w3eden'><!-- WPDM Link Template: Default Template -->

<div class="link-template-default card mb-2">
    <div class="card-body">
        <div class="media">
            <div class="mr-3 img-48"><img decoding="async" class="wpdm_icon" alt="アイコン"   src="https://depfields.com/wp-content/plugins/download-manager/assets/file-type-icons/box_download.png" /></div>
            <div class="media-body">
                <h3 class="package-title"><a href='https://depfields.com/download/dc-motor-pwm-speed-control/'>DCモータPWM速度制御</a></h3>
                <div class="text-muted text-small"><i class="fas fa-copy"></i> 1 ファイル <i class="fas fa-hdd ml-3"></i> 9.00 KB</div>
            </div>
            <div class="ml-3">
                <a href='#unlock' class='wpdm-download-link wpdm-download-locked btn btn-primary ' data-package='8389'>ダウンロード</a>
            </div>
        </div>
    </div>
</div>

</div>



<p></p>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/dcmotor-pwmcontrol/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/7edafe39a4525a5ead69a81ba8eb66636dd576d928d76cc8a84b06b90269482f.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Speed control of DC motors using Microcontroller PWM output [Open-loop contro...</div><div class="lkc-url" title="https://en.depfields.com/dcmotor-pwmcontrol/">https://en.depfields.com/dcmotor-pwmcontrol/</div><div class="lkc-excerpt">Using the L-motor of the LEGO® MINDSTORMS EV3, the STM32Nucleo board will actually operate the motor. The EV3 motor has a built-in encoder, so you can not only monitor the speed, but also get feedback for more advanced operation.First,</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/dcmotor-pwmcontrol/">DCモータのマイコンPWM出力による回転速度制御（オープンループ制御）</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マイコンで実現するフィードバック制御のための基礎知識【番外編】</title>
		<link>https://depfields.com/controltheory-modern/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=controltheory-modern</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Fri, 15 Jan 2021 10:58:18 +0000</pubDate>
				<category><![CDATA[実践で使う制御理論]]></category>
		<category><![CDATA[ロバスト制御]]></category>
		<category><![CDATA[現代制御理論]]></category>
		<category><![CDATA[倒立振子]]></category>
		<category><![CDATA[倒立２輪]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=7977</guid>

					<description><![CDATA[<p>倒立振子は現代制御理論の典型的な教材です。一般的に出回っている情報では学術的すぎるか、試行錯誤的すぎるかのものが多く初心者でも理解できるように体系的に検証したものはあまりみられないため、実践で使えそうなものに絞りまとめて [&#8230;]</p>
<p>The post <a href="https://depfields.com/controltheory-modern/">マイコンで実現するフィードバック制御のための基礎知識【番外編】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="434" src="https://depfields.com/wp-content/uploads/2021/01/2387976_s.jpg" class="attachment-large size-large wp-post-image" alt="" srcset="https://depfields.com/wp-content/uploads/2021/01/2387976_s.jpg 640w, https://depfields.com/wp-content/uploads/2021/01/2387976_s-300x203.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top vk_block-margin-sm--margin-bottom">倒立振子は現代制御理論の典型的な教材です。一般的に出回っている情報では学術的すぎるか、試行錯誤的すぎるかのものが多く初心者でも理解できるように体系的に検証したものはあまりみられないため、実践で使えそうなものに絞りまとめてみました。さらにロバスト制御を適用し、より実用的な検証をしてみました。</p>







<h2 class="wp-block-heading">現代制御理論の適用</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これまで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">伝達関数</span></strong>をベースとして<strong><a href="https://depfields.com/controltheory/" target="_blank" rel="noreferrer noopener" title="制御入門【ARMマイコンによる応用と実践】">フィードバック制御について検証</a></strong>してきました。いわゆる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">古典制御</span></strong>でのアプローチです。制御できるのは原則として<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1入力1出力の制御対象システム</span></strong>で温度コントロールや単体モータのモーションコントロールなど身近なフィードバック制御の大部分はこれに適しています。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/12/古典制御理論.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/12/古典制御理論.jpg" alt="" class="wp-image-7631" width="407" height="154" srcset="https://depfields.com/wp-content/uploads/2020/12/古典制御理論.jpg 407w, https://depfields.com/wp-content/uploads/2020/12/古典制御理論-300x114.jpg 300w" sizes="(max-width: 407px) 100vw, 407px" /></a><figcaption>1入力1出力システム</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これに対して、少し複雑なシステムで典型的なものが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">倒立振子の制御</span></strong>があげられます。台車型の倒立振子を例にとると、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">倒立振子はもともと不安定なもの</span></strong>なのですが安定した倒立状態を保つためには台車の位置を微調整して常に振子の重心位置とのバランスをとることをします。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>制御の目的は振子の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">倒立角度を台車に対して垂直にすること</span></strong>ですが、間接的な台車の位置も<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">同時に制御</span></strong>するために押す力などを入力とするいわゆる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1入力多出力のシステム</span></strong>となっています。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>古典制御のPID制御などでゲインを適切に設定し、台車位置と振子角度を同時に制御することは不可能ではありませんが、場当たり的な調整では大変なうえ、かえって制御システムを複雑にしてしまいますので無理があるようです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>このような台車位置や振子角度のような<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">複数の変数を同時に安定化</span></strong>させるのに適したものが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">現代制御理論</span></strong>です。現代制御理論ではシステム内部で扱う複数の変数を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">状態変数</span></strong>とよび、これらを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">同時に安定化させるための理論</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2020/12/現代制御理論.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2020/12/現代制御理論.jpg" alt="" class="wp-image-7755" width="449" height="196" srcset="https://depfields.com/wp-content/uploads/2020/12/現代制御理論.jpg 449w, https://depfields.com/wp-content/uploads/2020/12/現代制御理論-300x131.jpg 300w" sizes="(max-width: 449px) 100vw, 449px" /></a><figcaption>多入力多出力システム</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>現代制御理論の解説書をよむと数学的なものなので独学するとほぼ間違いなく心が折れてしまいますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">勘所さえわかっていれば本質は決して難しいものではありません</span></strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>数式を理解せずとも<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">今ではフリーで便利なツールが利用できる</span></strong>ので実際にいろいろ試すことができ難解と思われがちな現代制御理論を理解することも容易になりました。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そこで、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">現代制御理論の典型的な適用例である倒立振子</span></strong>を通してこの理論のすごいところを確認していきたいと思います。</p>
</div></div></div>



<h2 class="wp-block-heading">倒立振子とは</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>倒立振子には大別すると２種類あり、台車上に支点のある振子を搭載した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">台車型</span></strong>と２輪軸に振子の支点がある<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪型</span></strong>があります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立振子の種類.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/倒立振子の種類.png" alt="" class="wp-image-8161" width="449" height="325" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立振子の種類.png 448w, https://depfields.com/wp-content/uploads/2021/01/倒立振子の種類-300x217.png 300w" sizes="(max-width: 449px) 100vw, 449px" /></a><figcaption>  倒立振子の種類 </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">台車型倒立振子</span></strong>は台車の位置Xを、加えた推力Fにより調整して振子角度θをゼロに近づけるもので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">運動方程式も比較的簡単</span></strong>で台車と振子の干渉もそれほど多くなく制御もしやすいといわれています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>対して、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪型倒立振子</span></strong>は車輪の回転角Φを、トルクT<sub>R</sub>により調整して振子の角度θをゼロに近づけるものですが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">トルクT<sub>R</sub>が車輪の並進とともに振子の回転にも影響を及ぼし互いに干渉し合う</span></strong>ために<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">運動方程式は少し複雑</span></strong>になっています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading"> 車輪型倒立振子運動方程式</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>本編では倒立振子に現代制御理論を適用して、その有用性をシミュレーションにより検証していくのですが、後にLEGOの実機を使って検証したいのでそれに合わせて <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪型倒立振子</span></strong>を取り扱います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> 車輪型倒立振子の運動方程式は結構複雑で算出するのは大変なのですが、ここでは 以下のモデルで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">算出過程は省いてできあがったものを使用</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立2輪.png"><img decoding="async" width="603" height="370" src="https://depfields.com/wp-content/uploads/2021/01/倒立2輪.png" alt="" class="wp-image-13507" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立2輪.png 603w, https://depfields.com/wp-content/uploads/2021/01/倒立2輪-300x184.png 300w" sizes="(max-width: 603px) 100vw, 603px" /></a><figcaption>  車輪型倒立振子  </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>①は車輪、②は振子の運動方程式です。これらを導くのに以下の近似と線形化をしています。</p>
</div></div></div>



<figure class="wp-block-image size-full is-style-default"><a href="https://depfields.com/wp-content/uploads/2021/01/線形近似.png"><img decoding="async" width="289" height="66" src="https://depfields.com/wp-content/uploads/2021/01/線形近似.png" alt="" class="wp-image-13478"/></a></figure>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立2輪運動方程式.png"><img decoding="async" width="728" height="132" src="https://depfields.com/wp-content/uploads/2021/01/倒立2輪運動方程式.png" alt="" class="wp-image-13492" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立2輪運動方程式.png 728w, https://depfields.com/wp-content/uploads/2021/01/倒立2輪運動方程式-300x54.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></a><figcaption>  車輪型倒立振子運動方程式   </figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力はモータへの電圧あるいは電流</span></strong>で、駆動する車輪はモータ軸からギア等伝達機構により連結していて、それらをすべて含むと①式は以下の①'になります。車輪および振子の質量やモーメントが影響しあって複雑な式になっています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/モータ換算車輪運動方程式.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/モータ換算車輪運動方程式.png" alt="" class="wp-image-8170" width="719" height="113" srcset="https://depfields.com/wp-content/uploads/2021/01/モータ換算車輪運動方程式.png 719w, https://depfields.com/wp-content/uploads/2021/01/モータ換算車輪運動方程式-300x47.png 300w" sizes="(max-width: 719px) 100vw, 719px" /></a><figcaption>  車輪型倒立振子運動方程式   </figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/車輪駆動部.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/車輪駆動部.png" alt="" class="wp-image-8165" width="313" height="203"/></a><figcaption> 車輪駆動部 </figcaption></figure>





<h3 class="wp-block-heading">近似モデル方式</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>制御をするにはまず<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ベースとなる数式モデルが大事</span></strong>なのでこれまで頑張って運動方程式を導いてきました。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>通常、学術論文などでは導いた運動方程式①’に基づいてトルクを計算して相当する電圧や電流に変換した入力としているみたいですが、実際のところモータ軸慣性や粘性摩擦等を取得するのが困難なうえ、仮にすべてのパラメータが取得できても<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パラメータの変動はつきもの</span></strong>で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">トルク計算方式によるものは実用的な観点からは??</span></strong>な気がします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>つまり、制御したいのは振子角度や車輪あるいは台車の位置なのですが、いくら複雑な数式からトルクや推力を求めてもそれらは間接的であってあまり信頼できないのです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そこで、<strong><a href="https://depfields.com/controltheory-advanced/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener">マイコンで実現するフィードバック制御のための基礎知識【発展編】</a></strong>で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">近似モデルの解説</span></strong>をしましたが、ここでも電圧か電流入力uから出力の車輪速度までを<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1次遅れで近似した伝達関数を使用</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/車輪1次遅れ近似.png"><img decoding="async" width="776" height="237" src="https://depfields.com/wp-content/uploads/2021/01/車輪1次遅れ近似.png" alt="" class="wp-image-13513" srcset="https://depfields.com/wp-content/uploads/2021/01/車輪1次遅れ近似.png 776w, https://depfields.com/wp-content/uploads/2021/01/車輪1次遅れ近似-300x92.png 300w, https://depfields.com/wp-content/uploads/2021/01/車輪1次遅れ近似-768x235.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></a><figcaption>車輪1次遅れ近似モデル</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これで車輪の運動方程式①"はすごく単純で実用的なモデルになりました 。 ただし、振り子による干渉項（①,①'式の2項目）は無視しています。振子の運動方程式②はまだ複雑なままですが、今回はまだシミュレーションの段階ですのでパラメータは既知であるとします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実装する場合には振子の部分も近似モデル化するのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">振子のパラメータ</span></strong>として大事なものは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">周期</span></strong>と<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">減衰の特性</span></strong>ですのでこれらのパラメータだけでも同定を行い取得することになります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>運動方程式①''②を変形して状態方程式③④の形にします。これが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪モデルを近似した車輪型倒立振子の状態方程式</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式.png"><img decoding="async" width="447" height="214" src="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式.png" alt="" class="wp-image-13496" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式.png 447w, https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式-300x144.png 300w" sizes="(max-width: 447px) 100vw, 447px" /></a><figcaption> 近似化車輪型倒立振子モデルの状態方程式</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式2.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式2.png" alt="" class="wp-image-7997" width="625" height="204" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式2.png 625w, https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式2-300x98.png 300w" sizes="(max-width: 625px) 100vw, 625px" /></a><figcaption>行列形式の状態方程式</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>現代制御理論で検討するために下記の形式になおします。現代制御では見慣れた形式でこうしてようやく解析を開始できます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3.png" alt="" class="wp-image-7998" width="477" height="259" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3.png 477w, https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3-300x163.png 300w" sizes="(max-width: 477px) 100vw, 477px" /></a><figcaption>現代制御理論形式の状態方程式</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>この方式の問題点は近似化するにあたり、振り子の影響を無視していることです。つまり、入力uが電圧や電流では車輪速度は実際には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">振り子の動作が外乱負荷として多少なりとも干渉する</span></strong>ということです。これを解決するのが次に解説する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪速度入力方式</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>





<h3 class="wp-block-heading">車輪速度入力方式</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>前回の車輪近似モデルを用いた倒立振子でも十分実用的になったのですが更に一歩すすめて、今度は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">が</span>これまでの電圧や電流でなく、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪速度</span></strong>である場合で検討します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>モータの電圧や電流を入力とした場合は、簡素化はしたのですが、振子の影響（干渉）が車輪に及ぼす問題は解決はされていませんでした。そこで今度は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪速度を入力</span></strong>とした<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度制御系</span></strong>にすることで車輪は振子の影響をうけない<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト性</span></strong>を高めたものになります。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/速度指令方式.png"><img decoding="async" width="591" height="140" src="https://depfields.com/wp-content/uploads/2021/01/速度指令方式.png" alt="" class="wp-image-13391" srcset="https://depfields.com/wp-content/uploads/2021/01/速度指令方式.png 591w, https://depfields.com/wp-content/uploads/2021/01/速度指令方式-300x71.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></a><figcaption>モータ電圧、電流入力から車輪速度入力へ</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>以前DCモータのロバスト制御で解説したとおり、<strong><a href="https://depfields.com/controltheory-advanced/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【発展編】">2自由度制御</a></strong>とすれば完全なロバスト制御となりますが、今回は簡易な<strong><a href="https://depfields.com/controltheory-advanced/" target="_blank" rel="noreferrer noopener" title="マイコンで実現するフィードバック制御のための基礎知識【発展編】">ハイゲインフィードバック方式</a></strong>による<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪速度制御</span></strong>で検討を行います。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/速度指令ブロック線図.png"><img decoding="async" width="402" height="182" src="https://depfields.com/wp-content/uploads/2021/01/速度指令ブロック線図.png" alt="" class="wp-image-13392" srcset="https://depfields.com/wp-content/uploads/2021/01/速度指令ブロック線図.png 402w, https://depfields.com/wp-content/uploads/2021/01/速度指令ブロック線図-300x136.png 300w" sizes="(max-width: 402px) 100vw, 402px" /></a><figcaption>ハイゲインフィードバック方式車輪速度制御のブロック線図</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/速度指令伝達関数.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/速度指令伝達関数.png" alt="" class="wp-image-8150" width="364" height="271" srcset="https://depfields.com/wp-content/uploads/2021/01/速度指令伝達関数.png 364w, https://depfields.com/wp-content/uploads/2021/01/速度指令伝達関数-300x223.png 300w" sizes="(max-width: 364px) 100vw, 364px" /></a><figcaption>  ハイゲインフィードバック方式車輪速度制御の伝達関数  </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>車輪速度制御にて車輪速度入力に対して出力が１次遅れとなる場合の状態方程式は⑤⑥になります。車輪の方程式は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">任意に設定できる時定数T<sub>m2</sub>だけがパラメータ</span></strong>となっているのが特徴です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ハイゲインフィードバック方式なので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト性はフィードバックゲインC<sub>2</sub>が大きいほど向上</span></strong>しますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">同時に時定数T<sub>m2</sub>にも影響</span></strong>するので小さくなりすぎないように実現できるレベルで設定します。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式-速度入力.png"><img decoding="async" width="487" height="244" src="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式-速度入力.png" alt="" class="wp-image-13484" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式-速度入力.png 487w, https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式-速度入力-300x150.png 300w" sizes="(max-width: 487px) 100vw, 487px" /></a><figcaption>速度指令入力車輪型倒立振子モデルの状態方程式</figcaption></figure>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2022/05/倒立2輪状態方程式2-速度入力.png"><img decoding="async" width="642" height="178" src="https://depfields.com/wp-content/uploads/2022/05/倒立2輪状態方程式2-速度入力.png" alt="" class="wp-image-13394" srcset="https://depfields.com/wp-content/uploads/2022/05/倒立2輪状態方程式2-速度入力.png 642w, https://depfields.com/wp-content/uploads/2022/05/倒立2輪状態方程式2-速度入力-300x83.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></a><figcaption> 行列形式の状態方程式 </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>現代制御理論形式の状態方程式です。形式的には電圧や電流を入力とした近似モデル方式と似ていますが、内容は全く違います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>外乱抑制を向上した車輪速度制御系になっていますので車輪速度は振り子の影響を受けずに指令入力に追従します。これまでのように<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪のトルクではなく車輪の速度により振り子を安定化させる</span></strong>ところが異なるポイントです。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3-速度入力.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3-速度入力.png" alt="" class="wp-image-8005" width="460" height="222" srcset="https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3-速度入力.png 460w, https://depfields.com/wp-content/uploads/2021/01/倒立2輪状態方程式3-速度入力-300x145.png 300w" sizes="(max-width: 460px) 100vw, 460px" /></a><figcaption> 現代制御理論形式の状態方程式 </figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">状態フィードバックによる安定化</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>現代制御理論では扱う各状態変数にゲインを乗じたものを入力へ戻す<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">状態フィードバックを施すことで不安定なシステムも安定化することが可能</span></strong>となります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これにて、システム全体の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">もともとの行列Aが不安定</span></strong>（行列Aの固有値が不安定）なものであっても<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">状態フィードバックを施した行列A-BF</span></strong>はゲインを適切に設定すると安定させることができます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システム行列の固有値は古典制御における特定方程式の解と同等</span></strong>のもので<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">すべての固有値が安定であることは状態変数が時間経過とともにゼロに収束</span></strong>することを意味しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>現代制御理論では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">可制御性</span></strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">可観測性</span></strong>などの評価が必要なこともありますが、ここでは両方とも可能なものとしています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/状態フィードバック.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/状態フィードバック.png" alt="" class="wp-image-8000" width="616" height="157" srcset="https://depfields.com/wp-content/uploads/2021/01/状態フィードバック.png 616w, https://depfields.com/wp-content/uploads/2021/01/状態フィードバック-300x76.png 300w" sizes="(max-width: 616px) 100vw, 616px" /></a><figcaption>状態フィードバックによるシステム行列の安定化</figcaption></figure>





<h3 class="wp-block-heading">極配置法</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>古典制御において伝達方程式の特性多項式の解がすべて安定になるように極配置をおこなったことと同じく、現代制御理論においても極を任意に設定して状態フィードバックゲインを算出し<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システム行列の固有値</span></strong>すべてを安定させる方法を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">極配置法</span></strong>といいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>安定した極は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実数部が負</span></strong>であることはわかるのですが実機にて実用的な動作を実現するための値設定をどのように決定すればよいかが定量的にはよくわからないものです。ある程度試行錯誤的なところはあります。そこで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定性的かつ定量的な評価</span></strong>として用いられる方法が次に説明する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">最適レギュレータ</span></strong>です。</p>
</div></div></div>



<h3 class="wp-block-heading">最適レギュレータ (LQ最適制御) </h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>極端なはなし、極配置法にて当てずっぽうで配置しても何が正解かはわからないため、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">評価の指標</span></strong>が欲しくなります。こんなときに一つのツールとして威力を発揮するのが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">最適レギュレータ</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>最適レギュレータの数学的なことはさておき、式の意味するところは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">各状態変数の収束性と入力エネルギーuの消費抑制の評価指標をJ</span></strong>であらわし、目的は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Jが最小になるように極配置</span></strong>されるフィードバックゲインを取得することです。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>各<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">状態変数に対する重みQ</span></strong>でどの変数の収束性を重視するかで値を大きく設定したり、小さく設定したりします。 収束性を重視すると多くの操作量を必要とするので実現できるかを考慮するとやみくもに大きくもできません。 <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">エネルギー消費の重みrは通常1</span></strong>にしておくことが多いそうです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>最終的な重みの決定はシミュレーションソフトや実機などで調整していくところです。極配置法に比べ、評価の指標があるので調整の目安となるところが現実的です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/最適レギュレータ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/最適レギュレータ.png" alt="" class="wp-image-8118" width="551" height="241"/></a><figcaption>最適レギュレータ</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">シミュレーションソフト</span><a href="https://www.scilab.org/" target="_blank" rel="noreferrer noopener" title="Scilab">Scilab</a><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">を使用</span></strong>すれば<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">極配置法においては任意の極を指定</span></strong>し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">最適レギュレータおいては任意の重みを指定</span></strong>すればそれに応じた<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">各状態変数のフィードバックゲインを算出</span></strong>してくれますので設計が簡単です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>難しい数学的な評価はさておき、ある程度簡単に現代制御理論を使うことはできるようになりました。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>現代制御理論も古典制御理論と同様に<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">勘所さえ押さえてしまえば決して難しいものではありません</span></strong>。数式的な意味合いはさておき、現在では便利なシミュレーションアプリケーションがフリーで使用できるので<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">どんどん活用してみるのも制御理論を理解する上での近道</span></strong>です。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<h2 class="wp-block-heading">シミュレーション</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>最適レギュレータで重みをQ=diag[5 5 1 1] 、r=1に指定して評価取得したゲインはF=[-2.2 -103 -3.2 -12.6]となったのでこれで設計したブロック線図は下図のようになります。</p>
</div></div></div>



<figure class="wp-block-image size-large"><a href="https://depfields.com/wp-content/uploads/2021/01/状態フィードバックシミュレーションブロック線図.png"><img decoding="async" width="1024" height="531" src="https://depfields.com/wp-content/uploads/2021/01/状態フィードバックシミュレーションブロック線図-1024x531.png" alt="" class="wp-image-13397" srcset="https://depfields.com/wp-content/uploads/2021/01/状態フィードバックシミュレーションブロック線図-1024x531.png 1024w, https://depfields.com/wp-content/uploads/2021/01/状態フィードバックシミュレーションブロック線図-300x156.png 300w, https://depfields.com/wp-content/uploads/2021/01/状態フィードバックシミュレーションブロック線図-768x398.png 768w, https://depfields.com/wp-content/uploads/2021/01/状態フィードバックシミュレーションブロック線図.png 1059w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-sm--margin-top"></div></div>



<p style="text-align: left;">シミュレーション条件パラメータ：<br>M<sub>C</sub>:0.06kg / M<sub>P</sub>=0.6kg / L<sub>P</sub>=0.065m&nbsp;/ r:0.04m / T<sub>m</sub>:0.1s / T<sub>m2</sub>:0.03s / K<sub>m</sub>:10 / v<sub>p</sub>:0.03kgm<sup>2</sup>/s&nbsp; J<sub>C:</sub>M<sub>C</sub>r<sup>2</sup>/2 J<sub>P</sub>:1/3M<sub>P</sub>L<sub>P</sub><sup>2</sup></p>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>通常、状態変数Xは時間経過とともにゼロに収束するのですが、ここでは車輪位置(角度)を目標値 Φ<sup>ref</sup> として5に設定（Φ’=Φ－Φ<sup>ref</sup>）したときの応答を示します。目標値がゼロ以外の状態変数車輪位置ΦはΦ’に相当します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>状態フィードバックした入力u(t)が以下のような<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪の速度指令</span></strong>になっているところが特徴です。</p>
</div></div></div>



<figure class="wp-block-image size-full"><img decoding="async" width="411" height="177" src="https://depfields.com/wp-content/uploads/2021/01/velocity-command.png" alt="" class="wp-image-13405" srcset="https://depfields.com/wp-content/uploads/2021/01/velocity-command.png 411w, https://depfields.com/wp-content/uploads/2021/01/velocity-command-300x129.png 300w" sizes="(max-width: 411px) 100vw, 411px" /><figcaption>状態フィードバックを施した車輪への速度指令としての入力</figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p><strong><span class="tadv-color" style="color: #cf2e2e;">状態フィードバックを施したシステムにおける目標値</span></strong>について：<br>システム内の<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">状態変数は互いに干渉する</span></strong>ものなので複数の互いに独立した任意の目標値に設定することはできません。例えば、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">台車の車輪位置を目標値とする場合は速度はその微分したものに収束</span></strong>しますので、目標値がステップ状であれば、目標速度は0でなければなりません。<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">車輪速度を目標値としてステップ状のものに指定した場合、車輪位置は同時にその積分したランプ状の目標値に指定</span></strong>しておかなければつじつまが合わなくなります。つまり、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">車輪位置と速度の目標値は常にセットで指定</span></strong>します。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実機においても、このような状態で運転できれば安定して倒立させながら同時に車輪の位置を変更させることができることを意味しています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ちなみに、状態フィードバックを施す前の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システム行列A</span></strong>の固有値は[-8.2 6.2 0 -20.0]で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">正の値が含まれるので不安定</span></strong>なのですが、施した後の <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システム行列A-BF</span></strong>の固有値は[-29.2 -7.5 -6.5 -1.6]で<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">すべて安定な値</span></strong>となっています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>これは、状態フィードバックを施す前の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システム行列Aつまり車輪型振子は何も入力しなければ不安定な状態</span></strong>のままで、これに状態フィードバックを施した入力を与えた<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">システム行列A-BFでは振子の倒立も車輪位置も同時に安定している</span></strong>ことを意味しています。</p>
</div></div></div>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;車輪位置および速度応答</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>振子角がゼロ（垂直）で起動した直後は一旦振子を前かがみにさせるために<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">車輪位置</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">瞬時に後退</span></strong>していますが、目標値５に収束するようすが現れています。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>5秒目で入力にパルス状の外乱を加えたのですこし乱れますがすべての状態変数は安定して収束しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/車輪角と角速度応答.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/車輪角と角速度応答.png" alt="" class="wp-image-8027" width="511" height="270" srcset="https://depfields.com/wp-content/uploads/2021/01/車輪角と角速度応答.png 511w, https://depfields.com/wp-content/uploads/2021/01/車輪角と角速度応答-300x159.png 300w" sizes="(max-width: 511px) 100vw, 511px" /></a><figcaption>倒立振子の車輪</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;振子角および角速度応答</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>振子角は起動時に前かがみになってからすぐにゼロに収束しようとし、わずかなアンダーシュートはみられますが安定しています。外乱を与えても収束しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/振子角度と角速度応答.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/振子角度と角速度応答.png" alt="" class="wp-image-8026" width="513" height="271" srcset="https://depfields.com/wp-content/uploads/2021/01/振子角度と角速度応答.png 513w, https://depfields.com/wp-content/uploads/2021/01/振子角度と角速度応答-300x158.png 300w" sizes="(max-width: 513px) 100vw, 513px" /></a><figcaption>振子の状態</figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム1</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>一般に出回っている倒立振子の制御では新規性もなく面白みにもかけるのでより<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">実践的なモータのロバスト制御を取り入れたいわば古典制御とのハイブリット的な観点</span></strong>で整理してみました。次は実機を用いていろいろ検証してみて最もシンプルで安定しているものを探求してみたいと思います。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム2</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>倒立振子は古典制御によるアプローチで伝達関数だけで評価設計するにはどうしても難しかったので現代制御理論を取り入れてみました。現代制御理論は航空機・人工衛星やドローンの姿勢制御など高度で複雑なシステムの制御に向いているもので、一般に実用的なものかどうかはわかりませんが、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">理解しておくと役立てるときがあるかもしれません</span></strong>。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-height"><div class="vk_block-margin-md--height"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/controltheory-modern/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/f124c575cd3655a6c7a69e0ab629986cd12ff550841a64bd9e00590b376cf7b5.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Fundamentals of Feedback Control using Microcontroller [Extra Edition] | Most...</div><div class="lkc-url" title="https://en.depfields.com/controltheory-modern/">https://en.depfields.com/controltheory-modern/</div><div class="lkc-excerpt">The inverted pendulum is a typical teaching tool of modern control theory. The information that is generally available is either too academic or too much trial-and-error, and there is not much that has been systematically verified so that</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/controltheory-modern/">マイコンで実現するフィードバック制御のための基礎知識【番外編】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マイコンで実現するフィードバック制御のための基礎知識【発展編】</title>
		<link>https://depfields.com/controltheory-advanced/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=controltheory-advanced</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Mon, 11 Jan 2021 02:29:57 +0000</pubDate>
				<category><![CDATA[実践で使う制御理論]]></category>
		<category><![CDATA[制御理論]]></category>
		<category><![CDATA[モーションコントロール]]></category>
		<category><![CDATA[フィードバック制御]]></category>
		<category><![CDATA[ロバスト制御]]></category>
		<category><![CDATA[２自由度制御]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=7772</guid>

					<description><![CDATA[<p>マイコンで実現するフィードバック制御のための基礎知識【応用編 】では古典制御理論をベースに実践で使われるPID制御を解説しました。PID制御は感覚的にゲインを設定できるので、制御をするモデルが比較的単純なものである場合は [&#8230;]</p>
<p>The post <a href="https://depfields.com/controltheory-advanced/">マイコンで実現するフィードバック制御のための基礎知識【発展編】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img decoding="async" width="640" height="426" src="https://depfields.com/wp-content/uploads/2021/01/harddisk-4002369_640.jpg" class="attachment-large size-large wp-post-image" alt="Actuator" srcset="https://depfields.com/wp-content/uploads/2021/01/harddisk-4002369_640.jpg 640w, https://depfields.com/wp-content/uploads/2021/01/harddisk-4002369_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></div>
<p class="vk_block-margin-sm--margin-top"><a aria-label=" (opens in a new tab)" href="https://depfields.com/controltheory-application/" target="_blank" rel="noreferrer noopener"><strong>マイコンで実現するフィードバック制御のための基礎知識【応用編 】</strong></a>では古典制御理論をベースに実践で使われる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">PID制御を解説</span></strong>しました。PID制御は感覚的にゲインを設定できるので、制御をするモデルが比較的単純なものである場合は現場でも使いやすいのですが、外乱や制御対象のパラメータ変動などによりモデル化できなかった部分の影響が大きい場合は望んだとおりの性能は期待できないことになります。</p>



<p class="vk_block-margin-sm--margin-top">そこで、本編では従来の古典制御理論を発展させたDCモータを制御モデルとした<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">アドバンスト制御</span></strong>とよばれるものを紹介します。目的は実践で使うには避けられないモデル化の誤差や負荷の変動といった外乱がある場合にも本来想定したとおりの性能をだすことです。</p>



<p class="vk_block-margin-sm--margin-top">アドバンスト制御といえば、代表的なものに<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト制御</span></strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">適応制御</span></strong>などがありますが本来理論中心の難解な解説が多くて敷居が高く学術的で、一般用途には無縁のものに思われますが、ここでは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実践ですぐにも使えそうなもの</span></strong>を紹介し、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">誰でも利用できそうな実用的なものを解説</span></strong>していきます。</p>







<h2 class="wp-block-heading">モデル誤差や外乱に強いロバスト制御</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>アドバンスト制御のなかでも、本編では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト制御</span></strong>を解説していきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト制御</span></strong>というものはDCモータなどの物理的な制御モデルを数式化した際の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モデル化誤差</span></strong>や<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">負荷変動などの制御対象P(s)の入力側に加わる外乱</span></strong>、および<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">センサノイズなど制御対象の出力側に加わる外乱</span></strong>に対して制御出力が影響を受けにくい制御システムのことをいいます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ロバスト制御イメージ.png" alt="" class="wp-image-7858" width="411" height="268"/><figcaption class="wp-element-caption">ロバスト制御のイメージ</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ロバスト制御では、端的にいうと外乱d、観測ノイズn、および多少のモデル誤差化⊿があっても入力rから出力ｙまでの伝達関数 G<sub>ry</sub>(s) が設定した特性（例えば時定数T<sub>r</sub>の１次遅れ）になるように補償器C(s)を設計します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ロバスト制御.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ロバスト制御.png" alt="" class="wp-image-7945" width="541" height="435"/></a><figcaption class="wp-element-caption"> ロバスト制御 </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ロバスト制御のうちでも、PID制御なみに簡易に実現できるものであれば、ちょっとしたアプリケーションにも積極的に適用したいものです。本編ではそんな比較的気楽に扱えるような実用的なものの検証をしていきたいと思います。</p>
</div></div></div>



<h2 class="wp-block-heading">２自由度制御システム</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>従来のPID制御はフィードバックループ内にあるPID補償器の比例・積分・微分ゲインをそれぞれ設定して出力を調整するものです。各ゲインの決め方は経験に基づいた値を試行錯誤的に決めることも多いようです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>PID制御の利点は理論的なものを理解していなくても手軽に感覚的に設定できることですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ゲインにより調整できるのは応答性</span></strong>であって、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱などに対しては特性の根本的な改善はできません</span></strong>。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>また、PID制御を始めとする<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">従来のフィードバック制御では</span></strong>ループ内のゲインを上げる（増幅）ことによって、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">安定性や応答性を改善する</span></strong>ことはできますが、同時に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">モデル化誤差やノイズなど望まないものも増幅してしまう</span></strong>ことにより想定したとおりの性能がだせない場合も起こりえます。単なるフィードバック制御では精度や応答性の向上を望むには限界があるといえます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>そこで、ロバスト制御を実現するのにあたって<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">応答特性と外乱抑制を独立して設定できる２自由度制御システム</span></strong>と呼ばれる<strong>制御方法</strong>があります。ロバスト制御には他に外乱やモデル化誤差を推定して変化分をキャンセルする<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱オブザーバー</span></strong>的な方法もありますが、本編では２自由度制御を取り扱います。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>2自由度制御にもいろいろありますが、今回取り扱うものは、最もシンプルで誰でも検証しやすく、プログラミングなどでも実現しやすいものです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>入力rから出力ｙまでのブロック線図は下図の形になります。通常のフィードバック制御用ループに加えて<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力から分岐した情報を加えた形</span></strong>になっています<strong>。</strong></p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/2自由度制御.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/2自由度制御.png" alt="" class="wp-image-7864" width="500" height="369"/></a><figcaption class="wp-element-caption">2自由度制御システム</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>上のブロック線図の配置を並べ替えると下図のような等価ブロック線図となります。これが意味しているところは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードバック部</span>と<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードフォワード部で構成</span></strong>されていて、外乱抑制はフィードバック補償器C(s)、応答特性はフィードフォワード部のG<sub>ry</sub>(s)およびP<sub>n</sub>(s)で改善します。これらが干渉することなく<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>独立して設定</strong></span>できることから２自由度と呼ばれています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/2自由度制御等価ブロック線図.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/2自由度制御等価ブロック線図.png" alt="" class="wp-image-7809" width="562" height="246"/></a><figcaption class="wp-element-caption"> ２自由度制御等価ブロック線図 </figcaption></figure>



<h2 class="wp-block-heading">ロバスト制御で扱う近似モデル</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><a href="https://depfields.com/controltheory-application/" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener"><strong>マイコンで実現するフィードバック制御のための基礎知識【応用編 】</strong></a>ではDCモータの特性についてモータ回転速度は入力電圧を変化させれば調整できることを説明しました。無負荷であれば回転速度は入力電圧にほぼ比例していますので入力をu、出力をｙとすると下図のような<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">１次遅れで近似モデル化</span></strong>できます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性.png" alt="" class="wp-image-7811" width="380" height="186" srcset="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性.png 380w, https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性-300x147.png 300w" sizes="(max-width: 380px) 100vw, 380px" /></a><figcaption class="wp-element-caption">DCモータ近似モデル</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>近似モデルゲインK<sub>m</sub>、時定数T<sub>m</sub>は実際の入力を与えたときの回転速度yを実測して得られるものに相当します。これは一種の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">パラメータ同定</span></strong>と呼ばれますが、DCモータの実際の慣性モーメントJや粘性摩擦Dといった物理的なパラメータでなく近似モデルのパラメータです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>入力uから出力ｙまでの<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">物理的パラメータが K<sub>m</sub>とT<sub>m</sub>に集約</span></strong>されていてより実用的なモデルです。 <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力は電圧でも電流でもよく</span></strong>、パラメータ  K<sub>m</sub>とT<sub>m</sub> はそれに応じた値になります。 K<sub>m</sub> は伝達関数のゲインなのですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力から出力までの変換係数</span></strong>といった捉え方がわかりやすいのではないでしょうか。</p>
</div></div></div>



<div style="display: inline-block; background: #191970; padding: 5px 10px; color: #ffffff; border-radius: 5px 5px 0px 0px;"><strong>ポイント</strong></div>
<div style="background: #ffffea; border-radius: 0px 10px 10px 10px; padding: 10px; border: 3px solid #191970;">
<p>制御の用途にもよりますが、物理的モデルを数式化するときに正確を求めて<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">詳細にすぎてもあまり意味がなく実用的でありません</span></strong>。パラメータは変動するものですし、外乱は常に存在するものです。数式モデルがあっての制御ですので<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">最低限の特性を抑えたモデルは必要</span></strong>ですが、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ロバスト制御の場合</span></strong>は特に<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">制御対象のモデルは簡素化したものでよい</span></strong>のではないでしょうか。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">モデル化誤差や外乱があっても安定した速度制御</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DCモータを制御対象にした2自由度制御システムによる速度制御を解説します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>制御対象P(s)には<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力uを電圧または電流</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">出力yをモータ回転速度</span></strong>とした1次遅れモデルとします。この実モデルは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">変動の可能性があるパラメータ</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>K<sub>m</sub>, T<sub>m</sub></strong></span> を持ちますが、この<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">規範モデルをP<sub>n</sub>(s)</span></strong>とします。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">規範モデルP<sub>n</sub>(s)</span></strong> <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">のパラメータ</span></strong>は実モデルP(s)のパラメータ同定により得られたパラメータK<sub>m</sub>,T<sub>m</sub>をそれぞれ規範モデルパラメータ K<sub>n</sub>,T<sub>n</sub> とし、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードフォワード補償器内で使用するもの</span></strong>です。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>フィードフォワード補償部は特性改善後の入出力間<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">目標応答特性G<sub>ry</sub>(s)</span></strong>および<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">規範モデルの逆システムPn</span></strong> <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">(s)</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"> <strong><sup>-1</sup></strong></span>  で構成され、フィードバック補償部には、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト特性を決定するゲインC</span></strong>（制御対象により今回は定数）が入ります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>特性改善後の入出力間<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">目標応答特性G<sub>ry</sub>(s)</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数T<sub>m2</sub>の1次遅れ</span></strong>としますが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数T<sub>m2</sub></span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実現できるレベルで設定</span></strong>する必要はあります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータ速度制御向け2自由度制御.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータ速度制御向け2自由度制御.png" alt="" class="wp-image-7955" width="505" height="464"/></a><figcaption class="wp-element-caption"> DCモータの2自由度速度制御システム </figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;制御対象P(s)にモデル化誤差がない場合の応答特性</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>制御対象の実モデルP(s)と規範モデルP<sub>n</sub>(s)に誤差変動がなく P(s) ＝ P<sub>n</sub>(s) である場合、入力ｒから出力ｙまでの伝達関数は設定した<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">目標応答特性G<sub>ry</sub>(s)</span></strong> となります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータ2自由度without-モデル化誤差.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータ2自由度without-モデル化誤差.png" alt="" class="wp-image-7790" width="453" height="163" srcset="https://depfields.com/wp-content/uploads/2021/01/DCモータ2自由度without-モデル化誤差.png 453w, https://depfields.com/wp-content/uploads/2021/01/DCモータ2自由度without-モデル化誤差-300x108.png 300w" sizes="(max-width: 453px) 100vw, 453px" /></a><figcaption class="wp-element-caption">制御対象P(s)にモデル化誤差がない場合</figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;制御対象P(s)にモデル化誤差がある場合の応答特性</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> 制御対象の実モデルP(s)と規範モデルP<sub>n</sub>(s)に誤差変動がある場合、下図の⊿(s)が変動分です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">フィードバックゲインCが大きいほど変動誤差の影響は小さくなる</span></strong>ので 設定した<strong>目標応答特性G<sub>ry</sub>(s)</strong> に近づきます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回設定したフィードフォワード補償のタイプでは変動があっても、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実モデルパラメータと規範モデルパラメータが互いに相殺しあう</span></strong>かたちになっているのも特徴です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータ2自由度with-モデル化誤差.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータ2自由度with-モデル化誤差.png" alt="" class="wp-image-7956" width="519" height="285"/></a><figcaption class="wp-element-caption"> 制御対象P(s)にモデル化誤差がある場合  </figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;外乱に対する出力への影響</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ここが、2自由度ロバスト制御の本質的な部分です。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱特性はフィードバックゲインCにのみ関連</span></strong>していて応答特性を決定する<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"> 目標応答特性G<sub>ry</sub>(s) とは無関係</span></strong>です。<br><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ゲインCが大きくなるほど出力への影響は小さくなる</span></strong>ことがわかります。この値も<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実現可能な範囲で設定</span></strong>します。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/外乱特性.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/外乱特性.png" alt="" class="wp-image-9265" width="399" height="214"/></a><figcaption class="wp-element-caption"> 外乱特性  </figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;定常偏差をなくす場合</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今回の2自由度制御では <span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>目標応答特性G<sub>ry</sub>(s)</strong> </span>を<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">1次遅れ</span></strong>としているため、負荷トルクが定常負荷のように一定で大きい場合は、定常誤差が発生してしまいます。この誤差を小さくするためにはフィードバックゲインCを大きくすると零に近づきますが収束するわけではありません。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>どうしても、出力を目標値に一致させるためには外側に定常偏差をなくすためのPIフィードバック補償ループを追加して適当な比例、積分ゲインを調整します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>実装のポイントは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト制御部をできるだけ高速で処理</span></strong>し、PIフィードバックによる<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">サーボ補償のループをそれよりも遅い処理</span></strong>にして相互干渉による影響をなくすことです。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/目標値追従補償器ー速度サーボ.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/目標値追従補償器ー速度サーボ.png" alt="" class="wp-image-7877" width="441" height="236" srcset="https://depfields.com/wp-content/uploads/2021/01/目標値追従補償器ー速度サーボ.png 441w, https://depfields.com/wp-content/uploads/2021/01/目標値追従補償器ー速度サーボ-300x161.png 300w" sizes="(max-width: 441px) 100vw, 441px" /></a><figcaption class="wp-element-caption">  目標値追従補償器　速度サーボ </figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>速度制御であればロバスト補償ゲインCで外乱の影響はほぼ受けなくなるので、負荷にかかわらず一定速度を精度よく保つ用途でもなければあえて定常偏差をなくすためにPI制御ループを付加する意味はあまりないかもしれません。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>





<h3 class="wp-block-heading">シミュレーションによる検証（2自由度ロバスト制御）</h3>



<p><span style="background-color: #003300; color: #ffffff;">&nbsp;DCモータ開ループ状態で出力応答</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>検証した結果の時間応答をシミュレーション（ <strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><a href="https://www.scilab.org/" target="_blank" rel="noreferrer noopener" title="Scilab">Scilab</a>を使用</span></strong> ）して確認します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>DCモータに開ループ状態でステップ入力時にパルス状の負荷外乱を与えたときの応答です。ちょっとしたパルス状の負荷でも出力に大きな影響を与えることがわかります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性パルス負荷.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性パルス負荷.png" alt="" class="wp-image-7845" width="552" height="456" srcset="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性パルス負荷.png 552w, https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性パルス負荷-300x248.png 300w" sizes="(max-width: 552px) 100vw, 552px" /></a><figcaption class="wp-element-caption"> DCモータ開ループ速度特性（パルス外乱負荷） </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>今度はステップ状の負荷外乱を与えたときの応答です。 指令値から大きく下がったところで負荷に応じて発生トルクと釣り合ってしまっています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性ステップ負荷.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性ステップ負荷.png" alt="" class="wp-image-7844" width="542" height="471" srcset="https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性ステップ負荷.png 542w, https://depfields.com/wp-content/uploads/2021/01/DCモータ開ループ特性ステップ負荷-300x261.png 300w" sizes="(max-width: 542px) 100vw, 542px" /></a><figcaption class="wp-element-caption"> DCモータ開ループ速度特性（ステップ外乱負荷） </figcaption></figure>



<p><span style="background-color: #003300; color: #ffffff;">2自由度ロバスト制御　出力応答　</span><span style="background-color: #003300; color: #ffffff;">：</span></p>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> 目標応答特性G<sub>ry</sub>(s) の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数T<sub>m2</sub>を50ms</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ロバスト補償器ゲインCを0.5</span></strong>とした条件でパルス状外乱を与えたときの出力応答です。制御対象には、規範モデルに対して<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Kmは+30%</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">Tmは-20％</span></strong>の モデル誤差に加えて、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数10msの1次遅れ寄生要素を追加</span></strong>しているので2次遅れ系となっていますが、多少のモデル化誤差では出力は 目標応答特性G<sub>ry</sub>(s)の特性を維持したまま、外乱を短期間で抑制しているのがわかります。<br></p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> ロバスト補償器ゲインCを更に大きくすると外乱やモデル化誤差の変動の抑制効果は向上します。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C0.5-with-プラント変動.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C0.5-with-プラント変動.png" alt="" class="wp-image-7842" width="556" height="451" srcset="https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C0.5-with-プラント変動.png 556w, https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C0.5-with-プラント変動-300x243.png 300w" sizes="(max-width: 556px) 100vw, 556px" /></a><figcaption class="wp-element-caption">2自由度ロバスト制御ステップ応答（パルス外乱あり）</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> ロバスト補償器ゲインC だけを3に増加してから外乱をステップ負荷としたときの応答です。ここでも 出力は 目標応答特性G<sub>ry</sub>(s)の特性を維持したまま、外乱の影響が出力にほぼ現れず、ロバスト制御の効果が見られます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">応答特性と外乱抑制特性を独立して設定できる2自由度制御の効果</span></strong>をよく表しています。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C3_stepload-with-プラント変動.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C3_stepload-with-プラント変動.png" alt="" class="wp-image-7841" width="552" height="454" srcset="https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C3_stepload-with-プラント変動.png 552w, https://depfields.com/wp-content/uploads/2021/01/DCモータロバスト_t50_C3_stepload-with-プラント変動-300x247.png 300w" sizes="(max-width: 552px) 100vw, 552px" /></a><figcaption class="wp-element-caption"> 2自由度ロバスト制御ステップ応答（ステップ外乱あり） </figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">ハイゲインフィードバック方式との比較</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>簡易的な速度制御特性を改善する方式に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式</span></strong>があります。出力側をゲインC<sub>1</sub>を介してフィードバックし、 ゲインC<sub>1</sub>とC<sub>2</sub>の値を組み合わせて<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">外乱を抑制しながら入出力間のゲインを1に近づけことができる</span></strong>とても簡単な方式です。 </p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式.png" alt="" class="wp-image-7909" width="493" height="238" srcset="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式.png 493w, https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック方式-300x145.png 300w" sizes="(max-width: 493px) 100vw, 493px" /></a><figcaption class="wp-element-caption">ハイゲインフィードバック方式</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>外乱特性を向上するためには 外乱抑制用フィードバックゲインC<sub>1</sub>を上げれば改善できます。C<sub>1</sub>の大きさに頼るところからハイゲインフィードバックと呼ばれます。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック外乱特性.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック外乱特性.png" alt="" class="wp-image-8469" width="477" height="151"/></a><figcaption class="wp-element-caption"> ハイゲインフィードバック外乱特性 </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>応答特性は全体のゲインが1になるようにC<sub>2</sub>により調整することで求められますが、外乱抑制用ゲインC<sub>1</sub>の大きさに依存するうえに、任意の応答特性を得ることはできません。また、外乱を抑えるためのハイゲインに頼ることになるため、出力側センサーからのノイズの影響を受けないように注意する必要があります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック応答特性-1.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバック応答特性-1.png" alt="" class="wp-image-8470" width="409" height="230"/></a><figcaption class="wp-element-caption"> ハイゲインフィードバック応答特性 </figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p> ロバスト制御まで必要としない比較的外乱の影響が小さい用途では<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">気軽に実現できるハイゲインフィードバックは有</span>用</strong>です。アプリケーションに応じて使い分けるとよいでしょう。 </p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>





<h3 class="wp-block-heading">シミュレーションによる検証（ハイゲインフィードバック）</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>パルス状の 外乱負荷として加えたときの応答をシミュレーション結果です。外乱パルスはフィードバックゲインC<sub>１</sub>により抑制されていますが同時に応答も影響をうけてゲインやモデル化パラメータによっては過応答になってしまいます。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p> 外乱抑制と応答特性はフィードバックゲインC<sub>１</sub>により決定づけられてしまいますが、実現できる範囲で設定できるようであれば<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ハイゲインフィードバック方式</span></strong>は<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">最も簡単で実用的</span></strong>です。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバックシミュレーション.jpg"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバックシミュレーション.jpg" alt="" class="wp-image-7916" width="543" height="451" srcset="https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバックシミュレーション.jpg 543w, https://depfields.com/wp-content/uploads/2021/01/ハイゲインフィードバックシミュレーション-300x249.jpg 300w" sizes="(max-width: 543px) 100vw, 543px" /></a><figcaption class="wp-element-caption"> ハイゲインフィードバック方式 </figcaption></figure>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h2 class="wp-block-heading">位置決め追従制御（加速度指令方式）</h2>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度制御モデル</span></strong>が外乱やモデル化誤差の影響を受けない<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">目標応答特性G<sub>ry</sub>(s)でモデル化</span></strong>されていると<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">簡単に位置決め追従制御に発展</span></strong>できます。ここでは、産業用途ではよく目にする速度制御用フィードバックループの外側に位置制御用フィードバックループで構成されているタイプとは異なる、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度指令方式位置決め追従制御</span></strong>を解説します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>速度応答が外乱やモデル化誤差の影響をうけない<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">目標応答特性G<sub>ry</sub>(s)</span></strong> である場合、速度の微分である<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度を指令とした場合</span></strong>、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">入力から出力までの伝達関数は目標応答特性G<sub>ry</sub>(s)を積分したもの</span></strong>になります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/加速度応答.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/01/加速度-速度応答.png" alt="" class="wp-image-9146" width="450" height="293" srcset="https://depfields.com/wp-content/uploads/2021/01/加速度-速度応答.png 450w, https://depfields.com/wp-content/uploads/2021/01/加速度-速度応答-300x195.png 300w" sizes="(max-width: 450px) 100vw, 450px" /></a><figcaption class="wp-element-caption">加速度ー速度応答</figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>応答 <strong>G<sub>ry</sub>(s)</strong>の<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">時定数T<sub>m2</sub>は実現できる範囲で十分小さく設定</span></strong>することが好ましいです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>加速度指令値を生成するために予め位置θ<sub>0</sub>、速度θ<sup>'</sup><sub>0</sub>、加速度 θ<sup>"</sup><sub>0</sub> の追従軌道の目標値を作成しておきます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度参照値θ<sup>"</sup><sub>0</sub>をフィードフォワード項</span></strong>として、速度θ<sup>'</sup><sub>0</sub>、位置θ<sub>0</sub>参照値と実際値 θ, θ<sup>'</sup> との誤差にそれぞれ<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">ゲインK<sub>v</sub>, K<sub>p</sub>をかけたものをフィードバック項</span></strong>として<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度指令値 θ<sup>"</sup><sup>ref</sup></span></strong>とします。 </p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>ゲインK<sub>v</sub>とK<sub>p</sub>は 2次遅れ系の応答を参考にして目標の速応性および減衰性を考慮して簡単に決定できます。<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">設定した2次遅れ系の応答</span></strong>で起動時の誤差が収束すると⊿θ(=θ<sub>0</sub>-θ)は0、つまり実際位置θは遅れなく参照値θ<sub>0</sub>に追従することになります。</p>
</div></div></div>



<figure class="wp-block-image size-large is-resized"><a href="https://depfields.com/wp-content/uploads/2021/01/加速度指令値.png"><img decoding="async" src="https://depfields.com/wp-content/uploads/2021/04/加速度指令値.png" alt="" class="wp-image-10043" width="507" height="249" srcset="https://depfields.com/wp-content/uploads/2021/04/加速度指令値.png 613w, https://depfields.com/wp-content/uploads/2021/04/加速度指令値-300x148.png 300w" sizes="(max-width: 507px) 100vw, 507px" /></a><figcaption class="wp-element-caption">加速度指令値</figcaption></figure>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/位置決めロバスト制御2.png"><img decoding="async" width="610" height="404" src="https://depfields.com/wp-content/uploads/2021/01/位置決めロバスト制御2.png" alt="" class="wp-image-13562" srcset="https://depfields.com/wp-content/uploads/2021/01/位置決めロバスト制御2.png 610w, https://depfields.com/wp-content/uploads/2021/01/位置決めロバスト制御2-300x199.png 300w" sizes="(max-width: 610px) 100vw, 610px" /></a><figcaption class="wp-element-caption"> 目標値追従補償器（位置サーボ）  </figcaption></figure>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>上式が成立するのは<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度系にロバスト制御</span></strong>が施されていて速度指令値θ<sup>'ref</sup> ≒ 速度θ<sup>'</sup> となることにより<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度指令値θ<sup>"ref</sup> ≒ 加速度θ<sup>"</sup></span></strong> とみなせるからです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>上式だけ見ているとゲインK<sub>V</sub>、K<sub>P</sub>は任意に決めても問題なさそうですが ゲイン選定を適当にすると応答は乱れる可能性があります。 これらのゲインで<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">2次遅れ系規範モデルを構成</span></strong>することになるからです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span style="color:#cf2e2e" class="tadv-color"><mark>位置決めサーボ系として見た場合</mark></span></strong>、指令値に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>目標位置θo</strong>のみ与えた場合</span></strong>は<strong>目標値θoから出力θまでの伝達関数は<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>2次遅れ系</strong>の規範モデルK<sub>P</sub>/(s<sup>2</sup>+K<sub>V</sub>s+K<sub>P</sub>)</span></strong>となり、出力θは遅れて追従します。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">規範モデル</span></strong>に対して指令値に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">加速度θ<sup>"</sup><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>o</strong></span></strong></span></strong>および<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">速度θ<sup>'</sup></span>o</strong>を含めることにより、それらが<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置決めサーボ系では</span></strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>フィードフォワード的な役割</strong>を</span>果たし、<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter"><strong>出力θ</strong>は</span><strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">定常偏差がなくなり<strong>目標値θo</strong></span></strong>に<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">遅れなしに追従</span></strong>するようになるのです。見方を変えると<strong>規範モデルの<span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">逆システム</span></strong>を構成するのと等価になります。</p>
</div></div></div>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>つまり、システムとしては<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">規範モデルが安定であることが必要</span></strong>で、仮に不安定な極をもつ規範モデルに対して、不安定な零点をもつ規範モデルの逆システムを構成すると、数式上では相殺されるので問題がなさそうですが、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">実際は必ず遅れ要素やモデル化誤差および外乱等が存在する</span></strong>ため、<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">相殺されることはなく不安定なまま</span></strong>であるということです。</p>
</div></div></div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>





<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<h3 class="wp-block-heading">シミュレーションによる検証（位置決め追従制御）</h3>



<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img decoding="async" class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://depfields.com/wp-content/uploads/2020/05/instructor.jpg" alt=""/><figcaption class="vk_balloon_icon_name">めかのとろ</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content  "><span class="vk_balloon_content_before "></span><span class="vk_balloon_content_after "></span>
<p>速度系<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">目標応答特性G<sub>ry</sub>(s)</span></strong> の時定数T<sub>m2</sub>を10ms、ゲインK<sub>v</sub>とK<sub>p</sub>は 速応性ω<sub>n</sub>=10,減衰 0.8としてK<sub>v</sub>＝16, K<sub>p</sub>=100 としたときの追従性をシミュレーションしてみました。比較的緩やかな目標値の場合ですので時定数が大きめでも<strong><span data-color="#fffd6b" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" class="vk_highlighter">位置は遅れなく追従</span></strong>できていることが確認できます。</p>
</div></div></div>



<figure class="wp-block-image size-full"><a href="https://depfields.com/wp-content/uploads/2021/01/シミュレーション位置追従制御.png"><img decoding="async" width="542" height="565" src="https://depfields.com/wp-content/uploads/2021/01/シミュレーション位置追従制御.png" alt="" class="wp-image-13541" srcset="https://depfields.com/wp-content/uploads/2021/01/シミュレーション位置追従制御.png 542w, https://depfields.com/wp-content/uploads/2021/01/シミュレーション位置追従制御-288x300.png 288w" sizes="(max-width: 542px) 100vw, 542px" /></a><figcaption class="wp-element-caption"> 位置決め追従制御のシミュレーション </figcaption></figure>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>制御のなかでも、ロバスト制御は高度な分類のもので一般・趣味用途では無縁であったものかもしれませんが、今回紹介したものではちょっとしたマイコンを使ったプログラムによるモータコントロールなどには簡単に応用できるのではないでしょうか。<br>通常、電圧入力のDCモータコントロールはエンコーダなどからフィードバック制御を行っても、PID制御であれば特性改善はそんなに望めませんが、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">本編の2自由度ロバスト制御やハイゲインフィードバックを施せば外乱の影響を抑制できる</span></strong>ために、<strong><span class="vk_highlighter" style="background: linear-gradient(transparent 60%,rgba(255, 253, 107, 0.7) 0);" data-color="#fffd6b">ステッピングモータのような感覚でモータを扱える</span></strong>ようになるので用途が広がります。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>



<div style="background: #00ccff; padding: 5px 10px; color: #ffffff; border-radius: 10px 10px 0 0;"><strong>コラム</strong></div>
<div style="background: #ffffea; padding: 10px; border: 2px solid #00ccff; border-radius: 0 0 10px 10px;">
<p>シミュレーションによる検証は入力に制限のない条件で行っています。実装の際にはモータ端子電圧や最大電流などで制約されますので実現できるかどうかは物理モデルの条件を入れて確認する必要があります。次回は実機で検証を行っていきたいと思います。</p>
</div>



<div class="wp-block-vk-blocks-spacer vk_spacer vk_spacer-type-margin-top"><div class="vk_block-margin-md--margin-top"></div></div>


<div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" href="https://en.depfields.com/controltheory-advanced/" target="_blank" rel="external noopener"><div class="lkc-card"><div class="lkc-info"><img decoding="async" class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=en.depfields.com" alt="" width="16" height="16" /><div class="lkc-domain">Most Powerful Bible to Become an Embedded Engineer</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="//depfields.com/wp-content/uploads/pz-linkcard/cache/0fdf5cd5585c35ac790d0f4a6b62731cf32851d3e1c0e445e30b12172fca8057.jpeg" width="100px" height="108px" alt="" /></figure><div class="lkc-title">Fundamentals of Feedback Control using Microcontroller [Advanced] | Most Powe...</div><div class="lkc-url" title="https://en.depfields.com/controltheory-advanced/">https://en.depfields.com/controltheory-advanced/</div><div class="lkc-excerpt">In &quot;Fundamentals of Feedback Control using Microcontroller &quot; I explained PID control, which is used in practice based on classical control theory. PID control is easy to use in the field when the model to be controlled is rela</div></div><div class="clear">
							</div>
						</div></a></div></div><p>The post <a href="https://depfields.com/controltheory-advanced/">マイコンで実現するフィードバック制御のための基礎知識【発展編】</a> first appeared on <a href="https://depfields.com">即戦力モノづくり!エンジニアへの道標</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
