跳转到内容

File:Voltage regulator foldback.svg

页面内容不支持其他语言。
这个文件来自维基共享资源
维基百科,自由的百科全书
原始文件 (SVG文件,尺寸为278 × 276像素,文件大小:45 KB)


摘要

描述
English: Voltage regulator V-I curves for foldback, current limited, and unlimited.
日期
来源 自己的作品
作者 Nanite
SVG开发
InfoField
 
SVG的源代码为无效代码,因为发现了1个问题。
 
本W3C无效的图表使用Matplotlib创作。
源代码
InfoField

Python code

#Requires [[:wikipedia:matplotlib|matplotlib]]. Due to a bug in wikipedia's SVG renderer, 
#the raw files appear with curves peeking outside of the axes. 
#Before uploading the files were touched up by releasing and re-setting the clip paths.

from pylab import *

figtype = '.svg'
saveopts = {'bbox_inches':'tight'} #, 'transparent':True, 'frameon':True}
seterr(divide='ignore')

V_fb = concatenate([linspace(9.95,9.95,100, endpoint=False), linspace(9.95,0,101)])
I_fb = concatenate([linspace(0,0.995,100, endpoint=False), linspace(0.995,0.17,101)])
V_cl = concatenate([linspace(10.05,10.05,100, endpoint=False), linspace(10.05,0,101)])
I_cl = concatenate([linspace(0,1.005,100, endpoint=False), linspace(1.005,1.005,101)])
V_nl = linspace(10,10,151)
I_nl = linspace(0,1.5,151)
 
# Compute powers; Assume regulator is dropping voltage from a source 20% higher than V_oc.
P_cl = I_cl*(V_cl[0]*1.2 - V_cl)
P_fb =  I_fb*(V_fb[0]*1.2 - V_fb)
P_nl =  I_nl*(V_nl[0]*1.2 - V_nl)
Gcrit = 0.1
Rcrit = 10
Pcrit = 2
 
### Make V-I curve plot
 
fig = figure()
ax = axes()
xlim(0,1.7)
ylim(0,12)

ax.set_xlabel('Output current, $I_{\\rm out}$')
ax.set_xticks([I_fb[0], I_fb[-1], max(I_cl), max(I_nl)])
ax.set_xticklabels(['0', '$I_{\\rm SC}$', '$I_{\\rm max}$', '$I_{\\rm damage}$'])
 
ax.set_ylabel('Output voltage, $V_{\\rm out}$')
ax.set_yticks([0,10])
ax.set_yticklabels(['0', '$V_{\\rm OC}$'])
 
ax.plot(I_nl, V_nl, 'r', linewidth=2)
ax.plot([I_nl[-1]], [V_nl[-1]], 'r*', linewidth=2)
ax.plot(I_cl, V_cl, 'b', linewidth=2)
ax.plot(I_fb, V_fb, 'g', linewidth=2)
 
fig.set_size_inches(3,3)
fig.patch.set_alpha(0)
savefig('foldback-vi'+figtype, **saveopts)
 
 
 
### Make power and resistance load plot
 
fig = figure()
ax = axes()
xlim(0,0.5)
ylim(0,13)
 
ax.set_xlabel('Load conductance ($\Omega^{-1}$)')
#ax.set_xticks([0,0.1])
#ax.set_xticklabels(['0', '$G_{\\rm crit}$'])
 
ax.set_ylabel('Regulator heating power (W)')
ax.set_yticks([0,
        round(P_fb[100],1),
        round(max(P_fb),1),
        round(P_fb[-1],1),
        round(P_cl[-1],1)])
#ax.set_yticklabels(['0', '$P_{\\rm max,FB}$', '$P_{\\rm SC,FB}$','$P_{\\rm SC,CL}$'])
 
# Plot heat in regulator vs. conductance
ax.axvline(Gcrit, color='#777777', linestyle='dashed', linewidth=0.5)
ax.axhline(P_fb[-1], color='#777777', linestyle='dashed', linewidth=0.5)
ax.axhline(P_cl[-1], color='#777777', linestyle='dashed', linewidth=0.5)
ax.plot(I_nl/V_nl, P_nl, 'r', linewidth=2)
ax.plot([(I_nl/V_nl)[-1]], [P_nl[-1]], 'r*', linewidth=2)
ax.plot(I_cl/V_cl, P_cl, 'b', linewidth=2)
ax.plot(I_fb/V_fb, P_fb, 'g', linewidth=2)
 
ax.text(Gcrit/2, 9, 'OK', horizontalalignment='center')
ax.text(0.3, 9, 'Overload', horizontalalignment='center')
 
fig.set_size_inches(3,3)
fig.patch.set_alpha(0)
savefig('foldback-loadcon'+figtype, **saveopts)
 
 
 
### Make power and conductance load plot
 
fig = figure()
ax = axes()
xlim(0,16)
ylim(0,13)

ax.set_xlabel('Load resistance ($\Omega$)')
ax.set_xticks([0,5,10,15])
#ax.set_xticklabels(['0', '$G_{\\rm crit}$'])
 
ax.set_ylabel('Dissipation in regulator (W)')
#ax.set_yticks([0,
#        round(P_fb[100],1),
#        round(max(P_fb),1),
#        round(P_fb[-1],1),
#        round(P_cl[-1],1)])
#ax.set_yticklabels(['0', '$P_{\\rm max,FB}$', '$P_{\\rm SC,FB}$','$P_{\\rm SC,CL}$'])
 
# Plot heat in regulator vs. resistance

amfb = argmax(P_fb)

# grey lines
ax.axvline(Rcrit, color='#777777', linestyle='dashed', linewidth=0.5)
ax.plot([0,V_fb[amfb]/I_fb[amfb]], [P_fb[amfb]]*2, color='#777777', linestyle='dashed', linewidth=0.5)
ax.plot([0,Rcrit],[Pcrit,Pcrit], color='#777777', linestyle='dashed', linewidth=0.5)

#curves
ax.plot(V_nl/I_nl, P_nl, 'r', linewidth=2)
ax.plot([(V_nl/I_nl)[-1]], [P_nl[-1]], 'r*', linewidth=2)
ax.plot(V_cl/I_cl, P_cl, 'b', linewidth=2)
ax.plot(V_fb/I_fb, P_fb, 'g', linewidth=2)
 
ax.text(Rcrit/2, 12, 'Overloaded', horizontalalignment='center')
ax.text(13, 12, 'Normal', horizontalalignment='center')

fig.set_size_inches(3,3)
fig.patch.set_alpha(0)
savefig('foldback-loadres'+figtype, **saveopts)

许可协议

我,本作品著作权人,特此采用以下许可协议发表本作品:
Creative Commons CC-Zero 本作品采用知识共享CC0 1.0 通用公有领域贡献许可协议授权。
采用本宣告发表本作品的人,已在法律允许的范围内,通过在全世界放弃其对本作品拥有的著作权法规定的所有权利(包括所有相关权利),将本作品贡献至公有领域。您可以复制、修改、传播和表演本作品,将其用于商业目的,无需要求授权。

说明

添加一行文字以描述该文件所表现的内容

此文件中描述的项目

描绘内容

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2013年8月2日 (五) 06:412013年8月2日 (五) 06:41版本的缩略图278 × 276​(45 KB)Nanitelabels, transparency
2013年8月1日 (四) 14:172013年8月1日 (四) 14:17版本的缩略图278 × 274​(25 KB)NaniteUser created page with UploadWizard

以下页面使用本文件:

全域文件用途

以下其他wiki使用此文件:

元数据