首页/文章/ 详情

PSIM仿真软件高级应用——C语言动态链接库编写和调用

1年前浏览9682

软件平台的安装和基础知识

PSIM

 PSIM9.0.3.400_x32

Visual Studio C++

VC6.0只能安装在Win-XP上;VC2010只能安装在Win7Win-XPVC2012只能安装在Win8及更高Win系统。考虑电脑操作系统的通用性和普遍性本教程选用VC2010版本软件平台。

C语言知识

C语言语法和常用编程流程;子函数的调用和申明;重点掌握C语言中数组、指针、结构体、共用体等应用;养成良好的编程习惯和变量命名习惯。

了解PSIM软件及其简单应用

1)新建仿真文件File->New;

2)重点掌握调用系统自带的元件Elements->……,了解常用元件的设置和使用;

电力电子系统仿真常用的元器件包括:电阻、电容、电感、变压器、电机、各种交直流电源、逻辑门、IGBT、晶闸管、二极管、数学计算模块(加减乘除和三角函数等)、常用的数字控制和S域模块、传感器和仪表等,具体的使用详见文档《PSIM User Manual》和软件自带的例子。

    (3)仿真时间和步长设置Simulate->Simulation Control,主要设置Time step(一般设置1us)和Total time

4)运行仿真文件Simulate->Run Simulation

5)通过对系统自带的例子了解常用元器件的使用和设置,也可以了解一些经典电路的原理;

    (6)通过例子的学习和了解可以尝试将例子中《space vector pwm》两电平逆变器五段法SVPWM仿真修改成七段法SVPWM仿真,同时也能加深对空间矢量算法原理的理解。

3 PSIM仿真高级应用

3.1静态链接库和动态链接库(DLL)应用

静态链接库就是常说的lib文件,用户可以将常用的C语言子函数封装成静态库文件,以便建立动态DLL文件是直接调用,也有利于代码的归档和保存;动态链接库文件就是常说的DLL文件,用户可以将原理图电路难以实现的功能或者控制算法(比如变流器设备闭环控制算法、电机控制算法等)用C语言编写,通过编写生成DLL文件,通过PSIM软件提供的DLL Block模块直接调用,仿真更加灵活,仿真速度也大大提高,并且编写的C语言控制算法几乎可以完全移植到DSPCPU中运行,验证了算法程序的准确性。

3.1.1建立静态链接库步骤

1)打开Microsoft Visual Studio 2010软件,新建->项目->(已安装模板Visual C++)Win32->Win32控制台应用程序;

2)输入库文件名(不能出现汉字等符号)、选择路径->确定->下一步->选择静态库,附加选项中去掉预编译头的对号->完成;

3)向新建项目中添加子函数的c源文件和h文件->保存,界面如下图所示;

4C源文件和H文件添加完后的效果如下:

5)生成->编译,生成.lib文件,lib文件自动保存在debug目录下。

3.1.2建立动态链接库步骤

1)新建->项目->(已安装模板Visual C++)Win32->Win32项目;

2)输入项目文件名、选择路径->确定->下一步->选择“DLL’,附加选项中选空项目“->完成;

3)添加主函数的c源文件和h文件(例如静态库文件中所有子函数的申明MyFunction.h->保存,此过程和静态库文件中ch文件添加类似,添加完成后效果如图

4)将C子函数程序生成的静态链接库文件MyFunction.lib复制到DLL项目目录下;

   (5)项目->项目属性->链接器->常规->附加库目录->添加项目路径;


6)项目->属性->链接器->输入->附加依赖项->点击编辑->输入MyFunction.lib,或者此项不设置,在主程序顶端输入语句#pragma comment (lib,"MyFunction.lib")

7)生成->重新生成项目名称,编译后得到DLL文件在文件夹debug下。


3.1.3主程序框架

主程序中参数说明:__declspec(dllexportvoid simuser (t, delt, in, out)

t:仿真的实时时间,与仿真软件执行过程相对应,一般不用修改;

delt:仿真步长,其大小为Simulate->Simulation Control中的 Time step

inDLL的输入数组,对应PSIM软件中DLL模块(Elements->other->Function Blocks->DLL Block(n input),当然常用模块最大引脚数是25个,如需更多引脚可调用General DLL Block,其引脚数可以设定为任意数)输入引脚。

可以通过修改上图中红色椭圆里的程序,完成自己的控制算法,请认真读懂此处给出的主程序框架,实际该框架已经完成了模拟量的数字采样和算法运算,然后通过out数组输出,已经可以等效成一个DSP的中断子程序,这样仿真用的C语言程序几乎可以百分之百的移植到DSP中,缩短了算法的调试过程和准确性验证。

outDLL模块的输出,也是一个数组。

进行仿真时应将生成的DLL文件和PSIM文件在同一个文件夹里,且将DLL文件的名字和PSIM模块中DLL模块的名字一致。


3.1.4思考和改进

想要把仿真做的更加和实际贴近,该程序框架还有哪些可以改进?如何将三角载波以及DSP中的比较、行为动作等添加到此程序框架中,使得PSIM文件中元件更少仿真速度更快?

比较理想的三电平PWM整流器仿真平台(所有算法全部在DLL中进行,PSIM仅仅搭建一个主功率电路)


3.1.5练习和设计

1)利用PSIM软件平台搭建一个三相电压源给一个三相阻感负载供电的电路仿真,并对三相负载电流进行Clark变换,要求<1>Clark变换由PSIM软件自带的库元件计算实现;<2>Clark变换由调用PSIM自带的abc-alpha/beta模块实现;<3>Clark变换的算法在DLL文件中实现,并对这三种实现方法的结果进行对比。

    (2)利用PSIM软件搭建一个两电平逆变器七段式SVPWM调至算法的仿真,并且对逆变器输出电压和电流进行傅立叶分析,要求两电平主电路部分由PSIM软件自带的元件组成,SVPWM算法由DLL动态链接库完成,了解逆变输出电压电流的THD参数等。如有疑问可以在文后留言,尽量做到有问必答


PS:由于时间和精力有限,可能有很多表述不当之处,请大家指正。另外,大家有感兴趣的话题(比如仿真工具的使用及变流器C语言算法仿真、异步电机VF控制和矢量控制、电励磁同步电机矢量控制等)可以在文后留言或邮件的形式告知,尽量做到有问必答。欢迎和感谢大家的关注和转发,更欢迎大家投稿。

(来源:电力电子及电机控制

文章收集整理于网络,如有侵权,请联系小编删除

来源:电力电子技术与新能源
燃料电池电源电路电磁兼容系统仿真通用汽车电力电子MATLAB电源完整性UG新能源理论电机
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-05-01
最近编辑:1年前
获赞 154粉丝 261文章 2059课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈