<?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>Электронный научно-практический журнал «Современные научные исследования и инновации» &#187; реализация алгоритма дифференцирования</title>
	<atom:link href="http://web.snauka.ru/issues/tag/realizatsiya-algoritma-differentsirovaniya/feed" rel="self" type="application/rss+xml" />
	<link>https://web.snauka.ru</link>
	<description></description>
	<lastBuildDate>Fri, 17 Apr 2026 07:29:22 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Алгоритм звена реального дифференцирования</title>
		<link>https://web.snauka.ru/issues/2014/07/35940</link>
		<comments>https://web.snauka.ru/issues/2014/07/35940#comments</comments>
		<pubDate>Thu, 10 Jul 2014 23:43:03 +0000</pubDate>
		<dc:creator>IngvarrNorsk</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[a unit of differentiation]]></category>
		<category><![CDATA[differentiation algorithm]]></category>
		<category><![CDATA[implementation of the algorithm differentiation]]></category>
		<category><![CDATA[numerical differentiation]]></category>
		<category><![CDATA[unit ideal derivation]]></category>
		<category><![CDATA[unit of real derivation]]></category>
		<category><![CDATA[user library]]></category>
		<category><![CDATA[алгоритм дифференцирования]]></category>
		<category><![CDATA[звено дифференцирования]]></category>
		<category><![CDATA[звено идеального дифференцирования]]></category>
		<category><![CDATA[звено реального дифференцирования]]></category>
		<category><![CDATA[пользовательская библиотека]]></category>
		<category><![CDATA[реализация алгоритма дифференцирования]]></category>
		<category><![CDATA[численное дифференцирование]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=35940</guid>
		<description><![CDATA[При разработки пользовательской библиотеке, которая упоминалась в статьях [1–5] был реализован алгоритм дифференцирования. Разработка алгоритма дифференцирования для пользовательской библиотеки обусловлена тем, что в стандартных библиотеках алгоритмы имеют свои недостатки, в частности в алгоритме средств Codesys, PC Worx и TwinCat [6, 7, 8] у алгоритмов дифференцирования отсутствует вход для введения переменной дифференцировав, а время дифференцирования задаётся [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">При разработки пользовательской библиотеке, которая упоминалась в статьях [1–5] был реализован алгоритм дифференцирования. Разработка алгоритма дифференцирования для пользовательской библиотеки обусловлена тем, что в стандартных библиотеках алгоритмы имеют свои недостатки, в частности в алгоритме средств Codesys, PC Worx и TwinCat [6, 7, 8] у алгоритмов дифференцирования отсутствует вход для введения переменной дифференцировав, а время дифференцирования задаётся пользователем, поэтому результат дифференцирования будет завесить от заданного значения цикла в контроллере. А в средстве Step 7[9, 10] вообще отсутствует подобный алгоритм.</p>
<p style="text-align: justify;"><span>Разработанный алгоритм реализует численный метод дифференцирования и является идеальным дифференцирующим звеном     и имеет следующее уравнение и передаточную функцию [11–13]:<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_1.png" alt="" /><span> , <img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_2.png" alt="" />.<br />
</span></p>
<p><span>Внешний вид функционального блока алгоритма дифференцирования представлен на рисунке 1.<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_3.jpg" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Рисунок 1 – Функциональный блок алгоритма дифференцирования пользовательской библиотеки.<br />
</span></p>
<p style="text-align: justify;"><span>В таблице 1 представлены входы и выхода алгоритма с описанием типов переменных и значений.<br />
</span></p>
<p style="text-align: justify;"><span>Таблица 1 – Входы и выходы алгоритма «DIFFER».</span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="68"></td>
<td width="326">Назначение</td>
<td width="135">Входы/выходы</td>
<td width="110">Тип переменной</td>
</tr>
<tr>
<td rowspan="6" width="68">Входы</td>
<td width="326">Основной вход</td>
<td width="135">IN</td>
<td width="110">REAL</td>
</tr>
<tr>
<td width="326">Переменная дифференцирования</td>
<td width="135">TV</td>
<td width="110">INT</td>
</tr>
<tr>
<td width="326">Время дифференцирования</td>
<td width="135">TM</td>
<td width="110">DWORD</td>
</tr>
<tr>
<td width="326">Запуск</td>
<td width="135">SR</td>
<td width="110">BOOL</td>
</tr>
<tr>
<td width="326">Автоматическое или ручное задание времени</td>
<td width="135">CYCLE</td>
<td width="110">STRING</td>
</tr>
<tr>
<td width="326">Сброс</td>
<td width="135">RS</td>
<td width="110">BOOL</td>
</tr>
<tr>
<td rowspan="2" width="68">Выход</td>
<td width="326">Основной выход</td>
<td width="135">OUT</td>
<td width="110">REAL</td>
</tr>
<tr>
<td width="326">Сигнал о работе алгоритма</td>
<td width="135">Q</td>
<td width="110">BOOL</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">На рисунке 2 и 3 представлена реализация алгоритма «DIFFER» на языке ST.</p>
<p style="text-align: justify;"><img class="aligncenter" style="text-align: center;" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_4.png" alt="" width="243" height="265" /></p>
<p style="text-align: center;">Рисунок 2 – Заголовок функционального блока и присвоение переменных.</p>
<p style="text-align: center;"><img class="aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_5.png" alt="" width="280" height="326" /></p>
<p style="text-align: center;">Рисунок 3 – Реализация алгоритма числового дифференцирования.</p>
<p style="text-align: justify;">Строки 0001-0011 отвечают за выбор времени дифференцирования. Если вход CYCLE имеет значение «AUTO», то переменная gettime получает значения из системы через функцию «TIME_PLC_DW», разработанную для алгоритма интегрирования, если же значение «USER», то переменная получает значение со входа TM. В строках 0013-0023 происходит дифференцирование при условии запуска и не сброса. Выход OUT получает значения дифференцированной функции, а вход Q сигнализирует о действии алгоритма. В противном случае, если вход SR имеет значение FALSE либо, вход RS имеет значение TRUE, дифференцирование не выполняется, и входной сигнал проходит через блок без изменений. Выход Q получает значение FALSE.</p>
<p style="text-align: justify;">Для проверки работы алгоритма «DIFFER» была использована программа на рисунке 4. Генератор «GEN» настроен на выдачу сигнала треугольной формы. Тестирование было проведено в сравнении с алгоритмом дифференцирования из стандартной библиотеки. Проверка состояла из двухэтапного тестирования. На первом этапе была использована встроенная возможность среды Codesys – «режим эмуляции», на втором этапе использовались контроллеры фирмы ОВЕН, в частности ПЛК110-220.32.Р-М, ПЛК150-220.У-М и ПЛК154-220.У-М.</p>
<p style="text-align: center;"><img class="aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_6.png" alt="" width="554" height="200" /></p>
<p style="text-align: center;">Рисунок 4 – Программа для проверки алгоритма «DIFFER».</p>
<p style="text-align: justify;">В результате были получены диаграммы для двух случае работы. Для случая, когда входная переменной CYCLE имеет значение «USER».</p>
<p style="text-align: center;"><img class="aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_7.jpg" alt="" width="689" height="426" /></p>
<p style="text-align: center;">Рисунок 5 – Диаграмма работы алгоритма «DIFFER». Первый случай.</p>
<p style="text-align: justify;">Диаграмма состоит из трёх графиков: первый – выходной сигнал OUT генератора «GEN», данный сигнал поступает на входы алгоритмов дифференцирования. Второй график – выходной сигнал алгоритма «DERIVATIVE» из стандартной библиотеки, третий график – выходной сигнал алгоритма «DIFFER» пользовательской библиотеки. Из диаграммы видно, что у пользовательского алгоритма дифференцирования амплитуда быстрее возрастает по сравнению со стандартным алгоритмом. Из этого можно сделать вывод, что он быстрее отрабатывает вычисления по сравнению со стандартным.</p>
<p style="text-align: justify;">Второй случай. Переменная CYCLE имеет значение «AUTO». Диаграмма данного случая представлена на рисунке 6.</p>
<p style="text-align: center;"><img class="aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_8.jpg" alt="" width="675" height="413" /></p>
<p style="text-align: center;">Рисунок 6 – Диаграмма работы алгоритма «DIFFER». Второй случай.</p>
<p style="text-align: justify;">Из диаграммы видно, что в алгоритме «DIFFER» возникают неконтролируемые возмущения. Это говорит о том, что данный алгоритм не может быть использован в таком виде. Это звено не может быть технически реализовано из-за того, что порядок правой части его уравнения больше порядке левой части [11], другими словами невозможно получить дельта-функцию и ее производную поскольку они имеют бесконечные значения [12].</p>
<p>Амплитудно-фазовая частотная характеристика звена имеет вид [13]:</p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_9.png" alt="" />, <img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_10.png" alt="" />, <img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_11.png" alt="" />.</p>
<p>    В реальных системах такой вид характеристики звена возможен лишь в ограниченной полосе частот, так как неограниченное увеличение амплитуды с ростом частоты требует бесконечной энергии [13].</p>
<p>Исходя из этого целесообразно использования реального звена дифференцирования, передаточная и переходная функции которого имеет вид [11]:</p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_12.png" alt="" />, <img src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_13.png" alt="" />.</p>
<p>Фактически это последовательное соединение идеального дифференцирующего и апериодического звеньев [12].</p>
<p>Реализация реального дифференцирующего звена представлена на рисунке 7.</p>
<p style="text-align: center;"><img class="aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_14.png" alt="" width="313" height="341" /></p>
<p style="text-align: center;">Рисунок 7 – Реализация звена реального дифференцирования на языке ST.</p>
<p style="text-align: justify;">    Реализация данного алгоритма отличается от вышеописанного лишь тем, что используется формула для реализации реального дифференцирующего звена, данная формула работает, когда вход CYCLE имеет значение «AUTO», при этом, если этот вход имеет значение «USER», используется формула идеального дифференцирующего звена, это обусловлено проблемами при использовании режима «Эмуляции» среды Codesys (рисунок 8).</p>
<p style="text-align: center;"><img class="aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_15.jpg" alt="" width="662" height="407" /></p>
<p style="text-align: center;"><span>Рисунок 8 – Диаграмма работы алгоритма «REALDIFFER» в режиме «эмуляции».<br />
</span></p>
<p>В конечном виде результат работы алгоритма звена реального дифференцирования представлен на рисунке 9.</p>
<p style="text-align: center;"><img class="aligncenter" src="https://web.snauka.ru/wp-content/uploads/2014/06/061614_2342_16.jpg" alt="" width="638" height="374" /></p>
<p style="text-align: center;"><span>Рисунок 9 – Диаграмма работы алгоритма «REALDIFFER».</span></p>
<p style="text-align: justify;">Как уже отмечалось из диаграммы видно, что у пользовательского алгоритма дифференцирования амплитуда быстрее возрастает по сравнению со стандартным алгоритмом. Из этого можно сделать вывод, что он быстрее отрабатывает вычисления по сравнению со стандартным.</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2014/07/35940/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
