c++动态生成数组大小_详解PSIM仿真软件高级应用——C语言动态链接库编写和调用...

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

PSIM

PSIM9.0.3.400_x32

Visual Studio C++

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

C语言知识

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

2 了解PSIM软件及其简单应用

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

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

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

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

ed2a24f35752144a9b155ed9953a512e.png

(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语言控制算法几乎可以完全移植到DSP等CPU中运行,验证了算法程序的准确性。

3.1.1建立静态链接库步骤

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

3bb3c06cca0355eef8c7a272cd5ed6c8.png

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

cc46615f33bcf28317dbf420ce943461.png

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

850dda787ad44f8434cde7d37f000d9a.png

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

3bfbdb49a516932e2c48fbc01ecc54cc.png

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

3.1.2建立动态链接库步骤

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

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

d973dbb428065b8a7039fd2b77cd363f.png
be6e97a5cf4c00c02f9a37b6432dd285.png

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

d32bb709e1127edd4a3b3a69091cbfad.png

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

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

c7abf7423e4db48adf9d96ee87225a8d.png

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

39e3738f4a0eb3a0a29e7af994ec30f3.png
850dda787ad44f8434cde7d37f000d9a.png

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

732e8ea8751891863d4f8bfbd75e24a6.png

3.1.3主程序框架

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

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

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

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

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

out:DLL模块的输出,也是一个数组。

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

4edde47fba777c2329e44dd93ff33c23.png

3.1.4思考和改进

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

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

9726d1ada82d26a0d0774fd3ea071ced.png

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参数等。如有疑问可以在文后留言,尽量做到有问必答

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值