西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

楼主: limengde2001

[原创] 发个永磁电机计算程序,功能是计算工作特性,并绘制电压向量图

  [复制链接]

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

发表于 2015-6-10 22:08 | 显示全部楼层
不能下载,强烈建议公开源码
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-6-14 09:15 | 显示全部楼层
好资料啊!谢谢提供!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-6-29 09:40 | 显示全部楼层

如何计算永磁同步电机最大去磁工作点及仿真部分退磁后电机的性能

jgjgjgjg 发表于 2015-6-10 22:08
不能下载,强烈建议公开源码

源码如下:

''''''''''dim input'''''''''''''''''
Dim U, e0, xad, xaq, r1, x1, theta As Double
Dim xd, xq, id, iq, i1, fai, fainei As Double

''''''''''dim viction'''''''''''''''
Dim ve0x, ve0y, vxadx, vxady, vxaqx, vxaqy, vr1x, vr1y, vx1x, vx1y, vi1x, vi1y, vux, vuy As Double
''''''''''dim location'''''''''''''''
Dim cuxi, movey, ox, oy, e0x, e0y, xadx, xady, xaqx, xaqy, r1x, r1y, x1x, x1y, i1x, i1y, ux, uy As Double





''''''''''loadform'''''''''''''''
Private Sub Form_Load()
  '读取数据,初始化窗口用
   Textu.Text = 219
Texte0.Text = 223
Textxad.Text = 2.37
Textxaq.Text = 6.57
Textr1.Text = 0.0743
Textx1.Text = 0.228
Texttheta.Text = 56.5
myinput

'初始化窗口
cuxi = 2
Form1.Height = 8000
Form1.Width = 16000
Form1.ScaleHeight = U * 1.8
Form1.ScaleWidth = U * 3.6
Form1.DrawWidth = cuxi

'定义控件初始值
movey = 20
  Labeltxt.Caption = "说明:" & (Chr(13) + Chr(10)) & "1.点击【计算】绘制图形,操作进度条观看动画;" _
  & (Chr(13) + Chr(10)) & "2.点击【导出计算结果】计算工作特性保存在当前目录的txt文件中;" _
  & (Chr(13) + Chr(10)) & "3.程序为个人学习电机设计所用,未经严密验证。" _
& (Chr(13) + Chr(10)) & "                                  ——李孟德@明腾永磁技术部"
End Sub
'''''''''help'''''''''''''''''
Private Sub Command2_Click()
  Labeltxt.Caption = "说明:" & (Chr(13) + Chr(10)) & "1.点击【计算】绘制图形,操作进度条观看动画;" _
  & (Chr(13) + Chr(10)) & "2.点击【导出计算结果】计算工作特性保存在当前目录的txt文件中;" _
  & (Chr(13) + Chr(10)) & "3.程序为个人学习电机设计所用,未经严密验证。" _
& (Chr(13) + Chr(10)) & "                                  ——李孟德@明腾永磁技术部"

End Sub
''''input''''''''''''''''''
Sub myinput()
U = CDbl(Textu.Text)
e0 = CDbl(Texte0.Text)
xad = CDbl(Textxad.Text)
xaq = CDbl(Textxaq.Text)
r1 = CDbl(Textr1.Text)
x1 = CDbl(Textx1.Text)
theta = CDbl(Texttheta.Text) * 3.14159 / 180
End Sub

''''''''calc''''''''
Sub calc()
myinput
'calc variable
xd = x1 + xad
xq = x1 + xaq
id = (r1 * U * Cos(theta + 3.14159 / 2) + xq * (U * Sin(theta + 3.14159 / 2) - e0)) / (r1 ^ 2 + xq * xd)
iq = -(xd * U * Cos(theta + 3.14159 / 2) - r1 * (U * Sin(theta + 3.14159 / 2) - e0)) / (r1 ^ 2 + xq * xd)
i1 = (id ^ 2 + iq ^ 2) ^ 0.5
fainei = -Atn(id / iq) * 180 / 3.14159
fai = fainei - theta * 180 / 3.14159
'calc viction
ve0x = 0
ve0y = e0

vxadx = 0
vxady = xad * id

vxaqx = -iq * xaq
vxaqy = 0

vr1x = r1 * id
vr1y = r1 * iq

vx1x = -iq * x1
vx1y = id * x1

vi1x = id
vi1y = iq

vux = U * Cos(theta + 3.14159 / 2)
vuy = U * Sin(theta + 3.14159 / 2)

'calc lacation
ox = Form1.ScaleWidth / 3
oy = Form1.ScaleHeight * 9 / 10 * (movey / 20)

e0x = ox + ve0x
e0y = oy - ve0y

xadx = ox + ve0x + vxadx
xady = oy - ve0y - vxady

xaqx = ox + ve0x + vxadx + vxaqx
xaqy = oy - ve0y - vxady - vxaqy

r1x = ox + ve0x + vxadx + vxaqx + vr1x
r1y = oy - ve0y - vxady - vxaqy - vr1y

x1x = ox + ve0x + vxadx + vxaqx + vr1x + vx1x
x1y = oy - ve0y - vxady - vxaqy - vr1y - vx1y

i1x = ox + vi1x
i1y = oy - vi1y

ux = ox + vux
uy = oy - vuy

End Sub

'''''''''''SHOUW'''''''''''''
Sub output()
Labeltxt.Caption = "id=" & Format(id, "0.00E+00") & "  " _
& "iq=" & Format(iq, "0.00E+00") & "  " _
& "i1=" & Format(i1, "0.00E+00") & "  " _
& "id*xad=" & Format(id * xad, "0.00E+00") & (Chr(13) + Chr(10)) _
& "iq*xaq=" & Format(iq * xaq, "0.00E+00") & "  " _
& "i1*r1=" & Format(i1 * r1, "0.00E+00") & "  " _
& "i1*x1=" & Format(i1 * x1, "0.00E+00") & "  " _
& "u=" & Format(U, "0.00E+00") & (Chr(13) + Chr(10)) _
& "fainei=" & Format(fainei, "0.00E+00") & "  " _
& "fai=" & Format(fai, "0.00E+00")



End Sub

''''''''DRAW''''''''''''
Sub draw()
Cls

'画坐标轴
Dim x As Integer
Dim y As Integer
Form1.DrawWidth = 1.2
'画x轴坐标系
Form1.Line (ox, oy)-(ox + Form1.ScaleWidth / 4, oy), vbBlue
Form1.ForeColor = vbBlue
Form1.Print "X"
'画x坐标点
Form1.DrawWidth = 4
For y = 0 To 10 Step 1
Form1.PSet (ox + Form1.ScaleWidth / 4 * y / 10, oy)
Next y

'画y轴坐标系
Form1.DrawWidth = 1.2
Form1.Line (ox, oy)-(ox, 1 / 10 * oy), vbBlue
Form1.ForeColor = vbBlue
Form1.Print "Y"
'画y坐标点(以1小时为1个单位)
Form1.DrawWidth = 4
For x = 0 To 15 Step 1
Form1.PSet (ox, oy - 9 / 150 * oy * x)
Next x

'指定位置显示原点o
Form1.CurrentX = ox
Form1.CurrentY = oy
Form1.Print "0"


'画向量
Form1.DrawWidth = cuxi
'i1
Form1.Line (ox, oy)-(i1x, i1y), RGB(128, 0, 255)

'e0
Form1.Line (ox, oy)-(e0x, e0y), RGB(255, 0, 0)
'xad
'Form1.Line (e0x, e0y)-(xadx, xady), RGB(0, 255, 0)
Form1.Line (e0x - Form1.DrawWidth - 1, e0y)-(xadx - Form1.DrawWidth - 1, xady), RGB(255, 128, 0) '偏移防止重合

'xaq
Form1.Line -(xaqx, xaqy), RGB(255, 255, 0)
'r1
Form1.Line -(r1x, r1y), RGB(0, 255, 0)
'x1
Form1.Line -(x1x, x1y), RGB(0, 255, 255)
'u
'Form1.Line -(ox, oy), RGB(255, 0, 0)

'u
Form1.Line (ox, oy)-(ux, uy), RGB(0, 0, 255)

End Sub





''''''''绘制图形''''''''''''''''''''''
Private Sub Command1_Click()
calc
draw
output
End Sub



'''''''''自动绘图参考''''''''''''''''''''''''
Private Sub VScroll1_Change()
theta = VScroll1.Value * 3.14159 / 180
Texttheta.Text = theta * 180 / 3.14159
Command1_Click
End Sub





'''''''''自动绘图1''''''''''''''''''''''''
Private Sub HScrollu_Change()
U = HScrollu.Value / 100 * CDbl(Text1.Text)
Textu.Text = U
Command1_Click
End Sub
'''''''''自动绘图2''''''''''''''''''''''''
Private Sub HScrolle0_Change()
e0 = HScrolle0.Value / 100 * CDbl(Text2.Text)
Texte0.Text = e0
Command1_Click
End Sub
'''''''''自动绘图3''''''''''''''''''''''''
Private Sub HScrollxad_Change()
xad = HScrollxad.Value / 100 * CDbl(Text3.Text)
Textxad.Text = xad
Command1_Click
End Sub
'''''''''自动绘图4''''''''''''''''''''''''
Private Sub HScrollxaq_Change()
xaq = HScrollxaq.Value / 100 * CDbl(Text4.Text)
Textxaq.Text = xaq
Command1_Click
End Sub
'''''''''自动绘图5''''''''''''''''''''''''
Private Sub HScrollr1_Change()
r1 = HScrollr1.Value / 100 * CDbl(Text5.Text)
Textr1.Text = r1
Command1_Click
End Sub
'''''''''自动绘图6''''''''''''''''''''''''
Private Sub HScrollx1_Change()
x1 = HScrollx1.Value / 100 * CDbl(Text6.Text)
Textx1.Text = x1
Command1_Click
End Sub
'''''''''自动绘图7''''''''''''''''''''''''
Private Sub HScrolltheta_Change()
theta = HScrolltheta.Value / 100 * CDbl(Text7.Text) * 3.14159 / 180
Texttheta.Text = theta * 180 / 3.14159
Command1_Click
End Sub


'''''''''清除窗口'''''''''''''''''
Private Sub Command4_Click()
Cls
End Sub

'''''''''放大图形'''''''''''''''''
Private Sub Command5_Click()
Form1.ScaleHeight = 0.9 * Form1.ScaleHeight
Form1.ScaleWidth = 0.9 * Form1.ScaleWidth
Command1_Click
End Sub
'''''''''缩小图形'''''''''''''''''
Private Sub Command6_Click()
Form1.ScaleHeight = 1.1 * Form1.ScaleHeight
Form1.ScaleWidth = 1.1 * Form1.ScaleWidth
Command1_Click
End Sub
'''''''''上移图形'''''''''''''''''
Private Sub Command9_Click()
movey = movey - 1
Command1_Click
End Sub
'''''''''下移图形'''''''''''''''''
Private Sub Command10_Click()
movey = movey + 1
Command1_Click
End Sub
'''''''''加粗图形'''''''''''''''''
Private Sub Command8_Click()
cuxi = cuxi + 1
Command1_Click
End Sub
'''''''''初始化图形'''''''''''''''''
Private Sub Command7_Click()
myinput
Form1.Height = 8000
Form1.Width = 16000
Form1.ScaleHeight = U * 1.8
Form1.ScaleWidth = U * 3.6
cuxi = 2
movey = 20
Command1_Click
End Sub

''''''''''''''导出计算结果‘’‘’‘’‘’‘’‘’
Private Sub Commandexport_Click()

Open App.Path & "\" & "永磁电机不同功角电学参数.txt" For Output As #1

Print #1, " theta     i1        id        iq        fainei      fai     " & (Chr(13) + Chr(10))

For i = 0 To 90

'CALC
theta = i * 3.14159 / 180
Texttheta.Text = theta * 180 / 3.14159
Command1_Click
'RECORD
Labeltxt.Caption = Format(theta * 180 / 3.14159, "0.00E+00") & "  " _
& Format(i1, "0.00E+00") & "  " _
& Format(id, "0.00E+00") & "  " _
& Format(iq, "0.00E+00") & "  " _
& Format(fainei, "0.00E+00") & "  " _
& Format(fai, "0.00E+00") & "  " _
& (Chr(13) + Chr(10))
'SAVEFILE
Print #1, Labeltxt.Caption

Next i

Close #1

End Sub


评分

参与人数 1西莫币 +12 收起 理由
wshf + 12 原创内容

查看全部评分

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

发表于 2015-7-24 19:29 | 显示全部楼层
太酷了!{:soso_e100:}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-7-24 23:06 | 显示全部楼层
谢谢楼主的分享{:soso_e179:}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-9-6 16:30 | 显示全部楼层
麻烦您能不能将《永磁电机计算程序(电压向量图v1.0).zip》发我一份 364076295@qq.com ,谢谢了
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-9-23 16:11 | 显示全部楼层
本帖最后由 戒僧和尚佛缘 于 2015-9-23 16:24 编辑

原先下过的同学能帮忙再传上来吗
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-9-23 16:23 | 显示全部楼层
把源码粘到vb6.0中编译出不出来程序
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-10-8 16:04 | 显示全部楼层
戒僧和尚佛缘 发表于 2015-9-23 16:23
把源码粘到vb6.0中编译出不出来程序

因为缺少窗体及上面的按钮等可视化对象,vb不像vc,只贴代码编译不了程序。,你照着程序,动手画下窗体、按钮,就能编译了。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-10-8 16:25 | 显示全部楼层
部分论坛网友反映无法下载,重新上传下附件, 永磁电机计算程序(电压向量图v1.0).zip (13.37 KB, 下载次数: 284)
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-10-8 16:32 | 显示全部楼层
戒僧和尚佛缘 发表于 2015-9-6 16:30
麻烦您能不能将《永磁电机计算程序(电压向量图v1.0).zip》发我一份  ,谢谢了

已发,请查收~~~~~~~~~~~
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-10-13 16:12 | 显示全部楼层
谢谢楼主的分享{:soso_e100:}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-10-13 20:54 | 显示全部楼层
楼主真是雷锋啊,太好了,看到楼主用vb编写的界面非常不错啊,我想用vc实现异步起动永磁同步电机电机的编程,也是按照唐老师那本书上的,但是到工作特性计算模块出不来了,不知道楼主有没有尝试用vc编写啊?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-10-14 19:19 | 显示全部楼层
dzl2014 发表于 2015-10-13 20:54
楼主真是雷锋啊,太好了,看到楼主用vb编写的界面非常不错啊,我想用vc实现异步起动永磁同步电机电机的编程 ...

不客气。书上工作特性计算那篇,稍微复杂点的就是几个循环和查表,用vc肯定能编工作特性计算。我喜欢用vb6,就是因为简单且够用。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-10-14 19:22 | 显示全部楼层
dzl2014 发表于 2015-10-13 20:54
楼主真是雷锋啊,太好了,看到楼主用vb编写的界面非常不错啊,我想用vc实现异步起动永磁同步电机电机的编程 ...

我在另一篇帖子上发过一个永磁计算程序(后来学Maxwell,没有细致调试),使用vb编的,有工作特性计算的源码,你用vc可以参考
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-10-15 19:06 | 显示全部楼层
limengde2001 发表于 2015-10-14 19:22
我在另一篇帖子上发过一个永磁计算程序(后来学Maxwell,没有细致调试),使用vb编的,有工作特性计算的 ...

好的,我试试吧,感谢楼主!我最近也在学Ansoft,做电机的不容易啊!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-10-19 19:28 | 显示全部楼层
已经下载到了,谢谢楼主
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-10-19 19:50 | 显示全部楼层
谢谢楼主。楼主好人
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-12-23 16:13 | 显示全部楼层
多谢楼主!!!!!!!!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-2-16 13:59 | 显示全部楼层
shanzi360 发表于 2015-6-4 09:36
怎么提示无法读取????

材料不错,谢谢提供.
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西莫电机圈 ( 浙ICP备10025899号-3 浙公网安备:33028202000436号

GMT+8, 2024-11-22 14:44 , Processed in 0.128009 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表