<?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/tag/%E3%83%AD%E3%83%90%E3%82%B9%E3%83%88%E5%88%B6%E5%BE%A1/feed/" rel="self" type="application/rss+xml" />
	<link>https://depfields.com</link>
	<description>組み込み（マイコン）スキルを楽しんで学びながら身につけて短期間で効率よく自由自在に扱えるようになりたいと思いませんか？</description>
	<lastBuildDate>Tue, 20 Jun 2023 00:26:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3</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>実践で使える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 fetchpriority="high" 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="" decoding="async" 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 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 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 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="" decoding="async" 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 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 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 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="" decoding="async" 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 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 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>マイコンで実現するフィードバック制御のための基礎知識【番外編】</title>
		<link>https://depfields.com/controltheory-modern/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=controltheory-modern</link>
		
		<dc:creator><![CDATA[めかのとろ]]></dc:creator>
		<pubDate>Fri, 15 Jan 2021 10:58:18 +0000</pubDate>
				<category><![CDATA[実践で使う制御理論]]></category>
		<category><![CDATA[ロバスト制御]]></category>
		<category><![CDATA[現代制御理論]]></category>
		<category><![CDATA[倒立振子]]></category>
		<category><![CDATA[倒立２輪]]></category>
		<guid isPermaLink="false">https://depfields.com/?p=7977</guid>

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







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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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





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



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



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



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



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



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



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



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



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



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



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



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



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



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



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





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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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





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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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


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

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



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



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







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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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





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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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





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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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





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



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



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



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



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



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



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



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


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