<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=430925&amp;view=findpost&amp;p=3880813</guid>
        <pubDate>Sat, 05 Nov 2022 17:07:50 +0000</pubDate>
        <title>Написать формулу по исходному коду.</title>
        <link>https://forum.sources.ru/index.php?showtopic=430925&amp;view=findpost&amp;p=3880813</link>
        <description><![CDATA[Сергей85: У меня математический кретинизм в плане переделки исходного кода в формулы.<br>
<br>
В этом коде должна реализоваться формула 75%&lt;Uшунта&lt;125%. Но кажется, что написал что-то другое. И интересно, что: может, это лучший вариант, чем планировался. Но нужно математическое представление кода в виде формулы.<br>
<br>
В данном коде анализируется последовательное соединение резистора-шунта и резистора-сенсора: расчет пределов нормы, когда считать резистор-сенсор закороченным или разорванным.<br>
<br>
Вызов:<br>
g_fA1_R_Shunt_Min = fCalculate_Shunt_R_Percent(g_fA1_A7_R_Shunt, g_fA1_R_Sensors, true);<br>
g_fA1_R_Shunt_Max = fCalculate_Shunt_R_Percent(g_fA1_A7_R_Shunt, g_fA1_R_Sensors, false);<br>
<br>
Функция:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">float fCalculate_Shunt_R_Percent(const float fShunt_R, const float fSensor_R, const bool bMin)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;//В зависимости от номиналов шунта и датчиков (а также их количества), имеется разное перераспредение напряжений между ними.</div><div class="code_line">&nbsp;&nbsp;//Нужно рассчитать диапазон напряжений на шунте, при котором ситуация считается нормой. Выход за норму - разрыв/замыкание датчика (в т.ч. из-за воды).</div><div class="code_line">&nbsp;&nbsp;//Несмотря на погрешность резисторов 5% - берется 25% (см. g_fVoltage_Deviation): китайские резисторы могут оказаться с намеренно неверной погрешностью + погрешности измерений на каналах Arduino.</div><div class="code_line">&nbsp;&nbsp;float fResult = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;float fSituation1 = fShunt_R*(1.000-g_fVoltage_Deviation) / (fShunt_R*(1.000-g_fVoltage_Deviation) + fSensor_R*(1.000-g_fVoltage_Deviation));</div><div class="code_line">&nbsp;&nbsp;float fSituation2 = fShunt_R*(1.000-g_fVoltage_Deviation) / (fShunt_R*(1.000-g_fVoltage_Deviation) + fSensor_R*(1.000+g_fVoltage_Deviation));</div><div class="code_line">&nbsp;&nbsp;float fSituation3 = fShunt_R*(1.000+g_fVoltage_Deviation) / (fShunt_R*(1.000+g_fVoltage_Deviation) + fSensor_R*(1.000-g_fVoltage_Deviation));</div><div class="code_line">&nbsp;&nbsp;float fSituation4 = fShunt_R*(1.000+g_fVoltage_Deviation) / (fShunt_R*(1.000+g_fVoltage_Deviation) + fSensor_R*(1.000+g_fVoltage_Deviation));</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;if (bMin)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;fResult = min(fSituation1, fSituation2);</div><div class="code_line">&nbsp;&nbsp; &nbsp;fResult = min(fResult, fSituation3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;fResult = min(fResult, fSituation4);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;else</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;fResult = max(fSituation1, fSituation2);</div><div class="code_line">&nbsp;&nbsp; &nbsp;fResult = max(fResult, fSituation3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;fResult = max(fResult, fSituation4);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;return fResult;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Сергей85</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	