Я должен найти Is N из таблицы данных диодов 1N4004 и 1N4148. Я сделал это, оценив оба из них, разместив прямую линию на логарифмическом графике зависимости Id от Vd в таблице данных каждого диода. Есть ли другой способ узнать эти два параметра из таблицы данных? Спасибо.
При просмотре таблицы данных есть как минимум три, а не два важных параметра. Кроме того, вам необходимо применять как можно большую точность в пределах, доступных вам на диаграмме. Это последовательное сопротивление, ток насыщения и фактор (не)идеальности. Таким образом, для их извлечения требуется как минимум три точки измерения.
Поначалу может показаться, что чем больше точек, тем лучше, поскольку процесс подгонки в основном представляет собой процесс интегрирования (имеют место суммирования, указанные частными производными) и, следовательно, имеет тенденцию лучше сглаживать случайные ошибки. Но люди, читающие диаграммы, могут с большей вероятностью совершать систематические ошибки. Так что я склонен считать, что можно просто сделать все возможное, чтобы получить три балла из диаграмм, разделив два конечных пункта на третий примерно посередине между ними.
Вот пример из диаграммы Vishay для таблицы данных 1N4148 :
Я добавил синюю среднюю кривую через их две кривые предела рассеяния, а затем «обвел красным» три выбранные точки.
Эти точки были измерены в пикселях, и результаты следующие:
Подключив их к коду Python, работающему на Sage, я получаю: , , и .
Код, который я использовал:
def diode():
print( "This program uses 3 diode measurements to extract parameters." )
print( "You will need to have taken these measurements beforehand." )
print( "Enter each point as [ <diode current>, <diode voltage> ]." )
print( "" )
TA= int( input( "Enter the ambient temperature in Celsius (default is 27 C): " ) or "27" )
print( "" )
VT= 8.61733034e-5 * ( 273.15 + TA )
POINTS= []
vd, id, N, ISAT, RS= symbols( "vd id N ISAT RS" )
for i in range(3):
pid, pvd= input( "Enter point " + str(i) + ": " ).split()
POINTS.append( { vd: float( pvd ), id: float( pid ) } )
EQS= []
for i in range(3):
EQS.append( Eq( POINTS[i][vd], RS*POINTS[i][id] + N*VT*ln(POINTS[i][id]) - N*VT*ISAT ) )
print( POINTS )
print( EQS )
ANS= solve( EQS, [ RS, N, ISAT ] )[0]
print( "RS = " + str(ANS[0]) )
print( "N = " + str(ANS[1]) )
print( "ISAT = " + str(exp(ANS[2])) )
Тем не менее, вы можете разработать свой собственный метод. Но я настоятельно рекомендую вам помнить, что в процесс, который вы используете, должны быть включены объем, контакт и сопротивление свинцу. Причина довольно проста. Это повлияет на форму кривых, которые вы видите, и если вы не учтете это, то ваши другие два числа будут еще дальше от реальности, чем в противном случае. Достаточно сложно получить приличные точки данных с графика, как он есть, чтобы не ухудшить его, пренебрегая важным параметром.
Приведенный выше код на самом деле несколько более надежен на чем по другим параметрам. Так что это, вероятно, полезно для того, что вы хотите, я думаю.
придурок
придурок