<?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/motion-apl/feed/" rel="self" type="application/rss+xml" />
	<link>https://depfields.com</link>
	<description>組み込み（マイコン）スキルを楽しんで学びながら身につけて短期間で効率よく自由自在に扱えるようになりたいと思いませんか？</description>
	<lastBuildDate>Thu, 18 Apr 2024 00:49:22 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.4</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/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 fetchpriority="high" 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" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Build a pulse-following positioning servo control system using Microcontrolle...</div></div><div class="lkc-url">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>
<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" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Build a positioning control servo system of DC motor using Microcontroller fo...</div></div><div class="lkc-url">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"><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" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Build a speed servo control system for DC motor using Microcontroller for pra...</div></div><div class="lkc-url">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" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Build a robust speed control system for DC motor using Microcontroller for pr...</div></div><div class="lkc-url">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" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Build a practical speed feedback control system for DC motor using Microcontr...</div></div><div class="lkc-url">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-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-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" alt="" /></figure><div class="lkc-title"><div class="lkc-title-text">Speed control of DC motors using Microcontroller PWM output [Open-loop contro...</div></div><div class="lkc-url">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>
	</channel>
</rss>
