在上述系统仿真模型的基础上开发仿真试验人机操作界而和相关数据处理程序,并实现与组态监控软件间动态数据传输功能,是进一步增强试验方案验证和操作人员培训功能的需要。
一、人机操作界面
MATLAB提供的图形界而开发工具虽然具有一定的局限性,但它可以自接使用MATLAB专用计算函数,与SIMULINK仿真模型共享主工作空间数据,并可利用SIMULINK内嵌ActicxX控制技术方便地实现与仿真模型间动态数据传递功能。
模拟高低温环模系统实际操作界而开发的仿真试验人相L操作界而如图6所示。用户无需访问后台系统仿真模型,即可模拟实际操作过程,实现修改相应模型参数、启停设备、修改控制参数等功能。同时,该界而还具有对仿真结果进行显示、分析、保存及生成报表功能,并对小正确试验步骤或参数超过女全值给出报警信息。其中,该界而控制仿真的进行主要是通过set param命
令修改仿真模型的属性实现的,如利用set param('mymodel','StartTime','S','StopTime','inf)指定仿真开始时刻为Ss,仿真时间为无限长,利用set param('mymodel','SimulationCommand','pause')},}停仿真计算。
将人机操作界而上各组件与相应仿真模块的Tag属性值标志相同,同时利用get/set和get_param/set_param命令实现界而数据及仿真模块参数的获得和修改,并进一步编制各组件回调函数可以实现将界而数据向仿真模型的传递。如根据人机操作界而上用户给定控制数据修改相应仿真模块参数的子函数为:
function y=Parameter Export Fcn(handles,HSYS)%handles:主窗u各兀件数柄,HSYS:仿真模型数柄
fighandle=handles.MainFig;%获得主窗u数柄
%将各界向单兀数柄的可见性改为可见
newhandles=struct2ce11(handles);
for i=1 aength(newhandles)
set(newhandles{i},'HandleV isibility','on');
end
%将所有滑块数值传给对应控制模块
block_tag=findobj(fighandle,'style','slider');
fori=laength(block_tag)
h=block_tag(i);
NewVal=get(h,'V aloe');
NewStrVal=num2str(NewVal);
bl=find_system(HSYS{1},'Tag',get(block tag(i),'Tag'));
if-isempty(bl)
set_param(bl{1},'Value',NewStrVal);
end
end.____
另一方而,SIMULINK内嵌了ActiveX控制技术。在仿真模型中将某仿真数据输入到一个ActiveX Control模块,同时在人机操作界而生成函数中利用actxcontrol命令在界而上指定位置创建一个ActiveX Control单元与之相对应,即可实现该仿真数据在人机界而的动态显示。
如为实现室内温度仿真计算结果曲线在ICI 6所示人机操作界而中的动态显示,在界而生成M函数中增加如下语句:
hActx_TR=actxcontrolfmwStrip.stripctrl.l',[628 115 370240],fig);
hActx_TR.configuration='Strip ChartImportcharf;
hActx TR_MaxRufFerSize=20000:
hActx_TR.XSpan=3600/60/60/24;
hActx TR_TimeMinutecFormat='%H:%M
assignin fbase','hActx_TR',hActx_TR);
其中,mwStrip.stripctrl.l为SIMULINK系统内部指定的动态曲线显示框对应函数标识,语句2到5则是通过调用并修改Dials&Gauges模块组中Strip Chart模块属性的方法确定个性化显示模式,语句6将该框图对应数柄传到基本工作空间,以供仿真模型调用。同时在系统仿真模型中,将室内温度计算结果输入到一个ActiveX Control模块,指定其数柄函数名为hActx_TRes fun,并如下编写:
function hactx=hActx TR fun
hactx=evalin('base','hActx_TR');
注意该函数返回变量与人机界而函数中对应显示框图返回数柄变量相同。
二、与组态监控软件问动态数据传递
美国FIX组态软件广泛应用于系统监控领域。若能在仿真软件与组态监控软件间实现实时数据传输,则组态软件逼真的系统流程可显著增强仿真试验效果,同时也为进一步利用实测数据在线式修正仿真模型参数奠定了基础n}MATLAB仿真软件和FIX组态软件间数据传输可通过动态数据传输DDE技术实现。山于仿真时间们们和实际时间小同,以MATLAB作为Client主动建立对话并传递数据的方式更介适。因为这样小仅可以根据仿真计算时间介理建立对话,减少数据传输对仿真计算速度的影响;还可以同时传递仿真结果及其对应的仿真时间,以利用组态监控软件对仿真结果数据进行正确处理、显示、分析及存档等。
具体实现方法是在系统仿真模型添加数据传输模块,并利用时钟和Trigger模块控制数据传输模块调用频率,以按仿真计算时间间隔控制数据传输频率。所有需要传递的仿真结果和仿真时间以向量形式为数据传输模块及其对应数据传输函数的输入参数u。数据传输函数中首先利用channel=ddeinit('view','tagname')建立MATLAB与Fix监视流程间DDE对话,其中view为Fix软件DDE服务名称,tagname为监视流程U而名称;然后通过ddepoke(channel,"auto:ai5.fcv",u(1))等语句即可逐个将仿真结果(如个输入变量u(1))传递给组态软件中对应显示模块变量(如auto:ai5.fcv)。图7为高低温环模系统仿真试验结果在Fix组态监控流程中实时显示。
http://www.zhenghangyq.com