电器现代设计技术论文终稿张内容摘要:

程 电器设计计算任务 本次电器设计计算任务是基于 对 JZC36F 继电器静态和动态特性的研究 ,在已知线圈电压等于 24 伏,线圈电阻等于 1080 欧姆,线圈匝数等于 7700 匝的情况下,编写程序计算气隙磁通、气隙磁压降、气隙吸力、气隙磁导。 然后再利用 matlab 引擎画出气隙磁通、气隙磁压降、气隙吸力 、气隙磁导与气隙长度关系的继电器静态 特性曲线 以及电流、速度、位移、吸力、反力和时间的之间关系的动态 特性曲线。 必须要了解的 两 个概念 :是电磁系统在稳定 状 态条件下,即衔铁是在各稳定位置上、且不计电磁参量在衔铁运动过程中的变化时,电磁吸力与气隙 中各个值 (比如: 气隙磁通,气隙磁压降,气隙磁导 ) 之间的关系。 2.拍合式继电器的动态特性: 反映电磁系统的时间特性,也反映电磁参量和机械量在衔铁运动过程中的变化情况。 工作流程 1. 熟悉并了解 JZC36F 超小型密封继电器 的静 态特性与动态特性。 2. 利用现有的线圈参数对线圈进行磁势计算。 3. 画出 JZC36F 超小型密封继电器 的等效磁路图。 4. 按照 JZC36F 超小型密封继电器 的等效磁路图,利用对分法,计算气隙磁通,通过继电器 进行磁路计算,满足精度后,从而得出气隙磁通。 5. 利用上一步得出的气息磁通,计算气隙磁压降。 河北工业大学 2020 届本科毕业论文 10 6. 计算气隙磁导对气隙的导数。 7. 编写程序计算气隙处的电磁吸力。 8. 在 C++ 里设置并调用 Matlab 引擎,画出静态 特性曲线。 用同样的原理在 C++环境里调用 Matlab 引擎,画出 动态 特性曲线。 工作内容与步骤 本部分 主要介 绍这次工作的主要内容与工作步骤,分为两个部分,第一个部分里介绍如何应用 Matlab 引擎,也就是如何把 Visual C++和 Matlab 连接起来,使 Visual C++可以执行 Matlab 的语句。 第二个部分里介绍 如何在计算拍合式继电器的静态特性和动态特性的程序里添加 Matlab 语句,使编译出来的程序可以调用 Matlab 绘图程序画出静态 特性曲线 和动态 特性曲线。 如何应用 matlab 引擎 Matlab 引擎技术主要是在工作环境中安装了 matlab 应用程序的前提下实现其他语言调用 matlab 函数,这种技 术一方面可以保持 C、 C++和 Fortran 语言中嵌入复杂的数学分析函数,比如信号处理函数、工程优化函数、 FFT 变换函数等,减少了 C、 C++和 Fortran编程的困难。 Matlab 引擎技术主要应用于以下几个方面: 1. 在特定的应用场合下,需要采用 C、 C++或者 Fortran 语言进行快解实时的运算,但是应用环境需要大量的数学分析和运算,此时,可以在 C、 C++和 Fortran 语言中嵌入matlab 函数,调用 matlab 引擎。 2. 对于一些信号分析系统、数据采集处理系统、前台需要丰富的人机接口界面、后台需要做大量的数据分析 处理,那么此时可以很好地利用 matlab 引擎。 前台可以使用 C、C++和 Fortran 语言编写操作界面,而后台则使用 matlab 引擎直接调用 matlab 数学函数库,一方面减少 C、 C++和 Fortran 语言编写相关数学算法的复杂度,保证了数学分析函数的可靠性,同时也极大缩短了应用程序开发周期。 所以要实现在 C++中调用 MATLAB 引擎,首先我们需要对 Visual C++ 环境进行配置。 按照以下步骤进行 MATLAB 引擎环境配置: 1. 运行 Visual C++,在菜单栏“ File”下选择新建一个工程文件,选件“ New” ,点击“ Project”属性页,选择“ Win32 ConsoleApplication”,给出工程文件名称,如图 21所示。 河北工业大学 2020 届本科毕业论文 11 图 21 新建 Win32 ConsoleApplication 工程项目界面 2. 选择菜单栏“ Tools”下的“ Options”,在“ Directories”属性页下,设置相关的 Include文件路径、 Library 文件路径和 Executable 文件路径。 Inlcude 文件路径设置为 %matlabroot%\extern\include,其中 %matlabroot%为计 算机中 MATLAB 应用程序的安装根目录, Library 文件路径设置为 %matlabroot%\extern\lib\win32\microsoft, Executable 文件路径设置为 %matlabroot%\bin\win3,如图 22所示。 图 22 Visual C++中包含文件、库文件路径设置界面 3. 选择菜单栏“ Project”下的“ Setting”选项,在“ Link”属性页中添加 、河北工业大学 2020 届本科毕业论文 12 、 、 库文件,注意库文 件之间使用空格不适用逗号,否则编译会出错,如图 23 所示。 图 23 Visual C++中 Link 选项设置界面 按照上述在 Visual C++中调用 matlab 引擎的配置方法,对 Visual C++环境进行配置,配置成功后,建立工程项目文件,就可以编译、运行 matlab 引擎。 如何在 Visual C++里写 Matlab 语句 首先,我们要编写一个程序去计算气隙吸力,这个问题已经解决,在这个程序中的子函数有: ziq 函数用来定义继电器的各种尺寸参数 calforce 函数利用对分法求磁通 dgdt 函数用来求磁导对气隙的导数 suc 函数利用 B、 H来求磁压降 laqg 函数利用 B 按图查 H uc 函数利用求得的磁通φ来计算磁压降 ruka 函数利用龙格库塔法求解磁路微分方程组 gdt 函数用来求气隙磁导 在主函数里首先调用 ziq 函数来定义基本的尺寸参数,接着要利用循环反复计算气隙河北工业大学 2020 届本科毕业论文 13 吸力,在这个循环里,先调用 gdt 函数来求气隙磁导,接着计算气隙主磁阻和气隙副磁阻rdt 和 rdt2.,接着在 calforce 函数里利用对分法求磁通,这期间要调用函数 uc 计算通过气隙的磁通φ,在这 期间要调用函数 suc 和函数 laqg 计算每段磁路的磁压降,另外也要调用函数 ruka 用龙哥库塔法求纵向的铁心磁轭的磁压降,其实这个函数就是计算每段磁路的磁压降以达到求出气隙磁通的目的,利用求出的气隙磁通计算出主气隙磁阻和副气隙磁阻的磁压降,然后在利用函数 dgdt 来求磁导对气隙的导数。 求出气隙压降和气隙磁导对气隙的微分后,最后利用公式: dAFUd   求出气隙吸力。 接着,在求出气隙吸力后,要做的工作就是在 C++的环境里调用 matlab 引擎,利用matlab 引擎画出气隙 磁通,气隙磁压降,气隙吸力,气隙磁导与气隙长度的关系图。 不过同时还需要在头文件中加入: include “ ” , 主函数中加入如下语句: int main() { //////////以下跟 matlab 画图有关,定义五个数组存放磁通、磁压降、吸力、磁导和气隙的值 ///////////// engine *ep。 mxArray *XValue。 mxArray *YValue。 mxArray *ZValue。 mxArray *SValue。 mxArray *TValue。 double xzhou[20]。 double yzhou[20]。 double zzhou[20]。 double szhou[20]。 double tzhou[20]。 ////////////////////////////////////////////////////////// char tmp=39。 c39。 河北工业大学 2020 届本科毕业论文 14 double sdt2。 int i。 ziq()。 printf(\nok old data list\n)。 sdt2=dt。 xdt=dt。 for(i=1。 i=NNN1。 i++) { gdt(sdt2)。 rdt=。 rdt2=。 calforc()。 udt=fi/y111。 udt1=fi/y222。 dgdt(sdt2)。 FF1=*udt*udt*z2。 FF2=*udt1*udt1*z21*m/2./r0。 FX=FF1+FF2。 //////////////////////////////////////////////////////// xzhou[i1]=xdt。 yzhou[i1]=FX。 zzhou[i1]=fip。 szhou[i1]=z5。 tzhou[i1]=y111。 ///////////////////////////////////////////////////////// printf(xdt=%ffi=%e\tu=%=%fG=%e\n,xdt,fip,z5,FX,y111)。 xdt=dt/mn。 sdt2=xdt。 } int length=sizeof(xzhou)/sizeof(double)。 河北工业大学 2020 届本科毕业论文 15 // 开启 matlab 引擎 engine if (!(ep=engOpen(NULL))) { //CHARATER 为保存的文件名 MessageBox((HWND)NULL,(LPSTR)can39。 t start matlab engine,(LPSTR),MB_OK)。 exit(1)。 } XValue=mxCreateDoubleMatrix(1,length,mxREAL)。 YValue=mxCreateDoubleMatrix(1,length,mxREAL)。 ZValue=mxCreateDoubleMatrix(1,length,mxREAL)。 SValue=mxCreateDoubleMatrix(1,length,mxREAL)。 TValue=mxCreateDoubleMatrix(1,length,mxREAL)。 memcpy((void*)mxGetPr(XValue),(void*)xzhou,length*sizeof(double))。 memcpy((void*)mxGetPr(YValue),(void*)yzhou,length*sizeof(double))。 memcpy((void*)mxGetPr(ZValue),(void*)zzhou,length*sizeof(double))。 memcpy((void*)mxGetPr(SValue),(void*)szhou,length*sizeof(double))。 memcpy((void*)mxGetPr(TValue),(void*)tzhou,length*sizeof(double))。 engPutVariable(ep,x,XValue)。 engPutVariable(ep,y,YValue)。 engPutVariable(ep,z,ZValue)。 engPutVariable(ep,s,SValue)。 engPutVariable(ep,t,TValue)。 engEvalString(ep, plot(x, y,39。 r39。 )。 )。 engEvalString(ep, title(39。 拍合式继电器吸力与气隙关系图 39。 )。 )。 engEvalString(ep, xlabel(39。 气隙长 39。 )。 )。 engEvalString(ep, ylabel(39。 吸力 39。 )。 )。 engEvalString(ep, grid on。 )。 engEvalString(ep, figure(2)。 plot(x, z,39。 r39。 )。 )。 河北工业大学 2020 届本科毕业论文 16 engEvalString(ep, title(39。 拍合式继电器气隙磁通与气隙关系图 39。 )。 )。 engEvalString(ep, xlabel(39。 气隙长 39。 )。 )。 engEvalString(ep, ylabel(39。 气隙磁通 39。 )。 )。 engEvalString(ep, grid on。 )。 engEvalString(ep, figure(3)。 plot(x, s,39。 r39。 )。 )。 engEvalString(ep, title(39。 拍合式继电器气隙磁压降与气隙关系图 39。 )。 )。 engEvalString(ep, xlabel(39。 气隙长 39。 )。 )。 engEval。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。