一个好的仿真软件首先要保证精度的要求,且要有一定的计算速度和好的人机界面。基于这种原则,采用Visual C+ + 6. 0面向对象的程序语言对软件进行设计和编制,总体结构如图1所示。拼接式仿真界面的功能包括构建仿真系统,设置参数,并产生一个表明系统连接关系和参数的连接文件。连接文件采用一种HDL语言,格式与SPICE的网络连接文件格式相似。计算部分读取连接文件,按照其中的信息进行仿真计算,仿真的结果存人数据文件。图形式数据分析界面可以显示数据文件中的仿真结果,并进行数据后处理。
1 算法
仿真计算部分是仿真软件的核心。基于电路模型的并行计算精度高,但计算速度慢,与此相反,串行计算的速度快,但计算的精度低。如何才‘能既保证仿真效率,又可以达到较高的仿真精度,是仿真算法研究的重点。
首先分析仿真对象的特征。电力电子主电路、电机以及控制系统(其中包括电压、电流调节器,矢量控制电路)的电路方程都很复杂。如果构造整个系统的电路方程,同时进行并行仿真,方程阶数很大,计算将非常耗时。而实际上,大部分的控制电路由许多近似串行的模块组成,各模块之间的信号流向清楚,藕合较为松散,允许采用串行计算的方法,降低计算量。串行计算所带来的“一个步长滞后”的误差在仿真精度允许范围内。但对于藕合强的部分,串行计算引起的计算误差,会导致计算误差不断放大,甚至不收敛。此时,必须用并行算法仿真,才‘能得到较为精确的结果。所以,将基于功能模块的串行算法和基于理想电路模型的并行算法结合在一起,是仿真电力电子电机系统的一个好方法。
为此,提出了一种新的建模方法,对于各种模块,设计了统一的模块基类。基类中包含每一个具体模块都通用的数据结构和基本操作,表征了一个模块的全部信息,又使得各个模块具有一致的接口。对各种模型分类进行功能建模和器件建模。功能模块包括:各种坐标变换、PI调节竹器、异步电机、两电平的PWM控制器、多电平的PWM控制器、比较器、加减乘除模块等。器件模型有:电路中可以包含的各种功率开关、电阻、电容、电感、电压源、电流源等。
仿真计算时,将藕合不太紧密的所有控制模块独立出来,不参与形成电路方程,采用串行计算。藕合比较紧密的模块,用改进节点法仿真。它们之间有固定的接口传递数据和消息。在仿真系统中,电路级模型作为整体被封装成一个面向功能的模块。这样,从宏观来看,系统是由一个个的面向功能的模块连接而成,用串行计算的方法仿真,大大提高了仿真的速度。实际上藕合紧密的模块内部采用改进节点法仿真,保证了关键部分的仿真精度。
电力电子电机系统的开关动作或拓扑结构变化时,系统的电路方程发生变化,包括信号的突变,必须采用迭代的方法准确找到间断点。在不同的拓扑状态下采用不同的电路方程计算,刁‘能保证仿真的精度。但是如果全部采用变步长的迭代算法,仿真效率会很低。所以软件采用整体定步长计算,在间断点附近变步长搜索间断点的方法,比较有效地解决了这个问题。
2 界面
用户界面要有通用性,组织清晰,容易使用。本软件的拼接式仿真界面类似通用的绘图软件Visio,方便用户构造仿真系统,见图2。
本软件设计和实现了三种不同功能的窗口:拼图窗口(图2中右侧部分)、模块库窗口(图2中左侧部分)和数据分析窗口。
拼图窗口主要实现了下述功能:拼接式构造仿真系统,可自由选择模块,自由布局和连接;模块参数设定和仿真参数的设定;自动生成连接文件。
模块库窗口的功能:分类存储代表实际设备的抽象模块,并管理和维护(增添、修改和删除)模块。
数据分析窗口实现了下述功能:示波器实时显示指定的变量;读取仿真的结果文件,显示数据曲线;对仿真结果讲行后处理,如FFT,拟合等。