图源于电力电子课本65页——电容滤波的单相不可控整流电路。

f<-function(w,d)
{
l<-w/sqrt(w^2+1)*exp(-atan(w)/w)*exp(-d/w)
r<-sin(d)
return(l-r)
}
w<-seq(0.01,60,0.01)
d<-rep(0,length(w))
s<-rep(0,length(w))
for(i in 1:length(w))
{
root<-uniroot(f,c(0,pi/2),w=w[i],tol=0.01)
d[i]<-root$root
s[i]<-pi-d[i]-atan(w[i])
} library(ggplot2)
DataSet1<-data.frame(w,value=d,lab=rep("d",length(w)))
DataSet2<-data.frame(w,value=s,lab=rep("s",length(w)))
DataSet <- rbind(DataSet1,DataSet2) p<-ggplot(data=DataSet,aes(w,value,color=lab))
p+geom_line()+
scale_colour_hue("value",breaks=c("d","s"),labels=c(expression(delta),expression(theta)))+
labs(x=(expression(omega*RC/rad)),y=expression(list(delta,theta)/rad))+
xlim(0,60)+ylim(0,pi)+
scale_x_continuous(expand = c(0,0))+
scale_y_continuous(breaks=round(c(0,pi/6,pi/3,pi/2,2*pi/3,5*pi/6,pi),digits=2),
labels=expression(0,pi/6,pi/3,pi/2,2*pi/3,5*pi/6,pi),expand = c(0, 0))

练习了:

  1. 自定义离散色彩标度;
  2. 修改坐标轴标签;
  3. 修改坐标范围;
  4. 修改显示刻度;
  5. expression数学表达式。

更新补充:图源于电力电子课本143页——单相交流调压电路。

AngleToRadian<-function(alpha)
{
return(alpha*pi/180)
}
RadianToAngle<-function(alpha)
{
return(alpha/pi*180)
}
f<-function(alpha,theta,varphi)
{
var1<-sin(alpha+theta-varphi)
if(varphi==0)
var2<-0
else
var2<-sin(alpha-varphi)*exp(-theta/tan(varphi))
return(var1-var2)
}
alpha<-seq(0,180-2,0.5)
varphi<-seq(0,90,15)
data<-data.frame() for(a in alpha)
{
for(v in varphi)
{
if(v<=a){
t=uniroot(f,c(1e-3,pi+1e-3),alpha=AngleToRadian(a),
varphi=AngleToRadian(v),tol=0.001)
result<-c(a,RadianToAngle(t$root),v)
data<-rbind(data,result)}
}
}
names(data)<-c("alpha","theta","varphi") data$I_VTN<-rep(0,dim(data)[1])
for(i in 1:dim(data)[1])
{
a<-AngleToRadian(data$alpha[i])
t<-AngleToRadian(data$theta[i])
if(data$varphi[i]==90)
v<-AngleToRadian(data$varphi[i]-1)
else
v<-AngleToRadian(data$varphi[i]) data$I_VTN[i]<-1/(2*sqrt(pi))*sqrt(t-sin(t)*cos(2*a+v+t)/cos(v))
}
library(ggplot2)
theme_set(theme_light())
ggplot(data=data,aes(alpha,theta,color=factor(varphi)))+
geom_line()+scale_colour_hue(expression(varphi/(degree)))+
labs(x=(expression(alpha/(degree))),y=expression(theta/(degree)))
ggplot(data=data,aes(alpha,I_VTN,color=factor(varphi)))+geom_line()+
geom_line()+scale_colour_hue(expression(varphi/(degree)))+
labs(x=(expression(alpha/(degree))),y=expression(I[VTN]))

最新文章

  1. [NHibernate]Nullables
  2. AMD系统中,virtualbox 不能为虚拟电脑打开一个新任务
  3. eclipse+SVN文件只显示版本号,不显示时间和作者解决办法
  4. 2015弱校联盟(1) -A. Easy Math
  5. EffectiveJava——接口优于抽象类
  6. 快速同步GitHub代码库
  7. Android实现网络访问
  8. java--实例成员 &amp; 静态成员
  9. (step6.1.5)hdu 1233(还是畅通工程——最小生成树)
  10. Alice&amp;#39;s Chance
  11. U盘安装Win7
  12. 转:Natas Wargame Level28 Writeup(EBC加密破解)
  13. calling c++ from golang with swig--windows dll (四)
  14. 推荐一款MongoDB的客户端管理工具--nosqlbooster
  15. mysql备份最近8天的数据库,老的自动删除方案
  16. Day13 Python基础之time/datetime/random模块一(十一)
  17. Java SE之正则表达式四:获取
  18. [leetcode]27. Remove Element删除元素
  19. js区别手机和电脑打开网页
  20. vue总是报缩进、空格的错

热门文章

  1. Android内存调优的一些方法
  2. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-测试类中调用封装的mock(10)
  3. java 数组的复制
  4. iOS(Swift)学习笔记之SwiftyJSON的使用
  5. 吴裕雄--天生自然python学习笔记:Python3 File(文件) 方法
  6. 奇异值分解SVD
  7. Spring Cloud Alibaba-MyShop-项目介绍
  8. 解决android 无法打开 DDMS 中的data目录
  9. Luogu_1280_尼克的任务
  10. python Post 登录 cookies 和session