控制系统CAD软件的设计与应用.pdf_第1页
控制系统CAD软件的设计与应用.pdf_第2页
控制系统CAD软件的设计与应用.pdf_第3页
控制系统CAD软件的设计与应用.pdf_第4页
控制系统CAD软件的设计与应用.pdf_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2000 年 控制系统 CAD 软件的设计与应用 周黎辉 董 泽 韩 璞 华北电力大学动力工程系 保定 071003 摘摘 要要 论述了在控制系统 CAD CAE2000 系统的软件设计中 采用了面向对象的方法进行需求分析 结构设 计和软件开发的软件设计过程 解决了如何组态任意控制系统的问题 使其满足方框图语言与可视化相结合的技术要求 使系统的设计更加规范 系统的可维护性 可扩展性都大为提高 关键词关键词 面向对象 控制 计算机辅助设计 方框图语言 1 引言 在过去的十几年中 控制系统计算机辅助设计 CSCAD 技术已经发生了重大变 化 特别是其 CAD 算法日益成熟 已经形成了比较完善的算法体系 但是在实际应用 中 往往缺乏具有较好的通用性 便利性和开放性的软件工具 由于近几年计算机软 硬件技术的快速发展 以及设计理论上的重大突破 使得大型的 CSCAD 平台化软件工 具得以能够实现 而且辅助设计 辅助分析和辅助教学等多种功能已经融合在一起 1 2 CAE2000 系统 目前国外已经出现了一些有代表性的 成熟的 CSCAD 软件 比如 MATLAB ISL VisSim 和 MATRIXx 等 其中由美国 MathWorks 公司推出的 MATLAB 软件以及与之 配套的 SIMULINK 软件由于采用了面向方框图语言技术与可视化技术 使得其成为功 能较完善和具有代表性的 CSCAD 软件之一 2 到九十年中期 我国新一代 CSCAD 软 件的开发 还处于起步阶段 基本上还没有与之相当的软件面世 针对这种新的发展 我们开发了一套 CSCAD 系统 CAE2000 系统 CAE2000 系统是一个集控制系统计算机辅助分析 辅助设计和辅助教学为一体的多功能 一体 化的计算机辅助工程系统 该系统除了具有一般 CSCAD 软件的组态 仿真功能外 还 特别为接近工程实际和结合过程控制的特点 具备了实时仿真 通过过程通道设备与 硬件结合仿真 软操作面板以及过程控制流程图等多种功能 这些功能是一般同类软 件所不具备的 同时 CAE2000 还提供了拟合传递函数 控制器参数寻优 控制理论分 析 控制系统 CAD 算法以及多种现代控制器研究等一系列从工程实际到理论分析的多 种工具 这些也是一般 CSCAD 软件所不具备的 3 CAE2000 组态软件的设计 CAE2000 软件设计中的一个复杂问题在于如何组态任意一个控制系统 首先必须 抽取典型算法模块 典型模块选择过多会造成程序界面过于繁琐 过少则使用时需要 做大量转化工作 其次各模块具有许多相似的属性和操作 但往往又有细微的差别 如果不考虑这些共性 孤立地分别设计每个模块 势必造成程序庞大臃肿 同时各个 模块的设计者各自为政 使得程序不具备开放性和可扩展性 而如果考虑该问题 如 何区分共性和个性是一个复杂问题 另外 在组态一个具体的控制系统时 理论上每 个模块可能使用许多次 整个系统可能由不受限制的许多具体模块构成 模块之间又 由不确定方向和数目的许多信号线连接 而且对于多文本界面 用户可以同时组态多 个控制系统并同时运行它们 如何有效的管理这些系统和每个系统中模块 以及有效 的如何组织系统的运行 是个重要的问题 采用传统的设计方法 在设计思想上和设 计方法上存在着多方面的缺陷 把整个设计分解成一系列局部的 孤立的 静态的处 理过程 不考虑这些过程与所研究对象的属性之间的内在联系 同时缺乏一个符合所 研究对象本身规律的规范化设计体系 对此我们采用了面向对象的方法 同时结合面 向方框图语言技术与可视化技术 在整个系统从需求分析到结构设计 到软件编程的 三个阶段都采用了面向对象的方法 从而使得以往软件设计中所存在的物理模型与计 算机模型之间的巨大鸿沟不复存在 系统的设计更加规范 更加容易 部件的可重用 性非常强 而且系统的可维护性 扩展性都大为提高 目前已构成 60 多种图形化 组 件式的功能模块 通过鼠标拖动的方式可以直观迅速地组态任意一个控制系统 并对 其进行实时或非实时仿真 在控制领域的各种设计 分析中 常使用方框图来表示控制系统 方框图是由各 种算法模块构成的 通过对各种算法模块的分析我们可以得知 各种算法模块的大部 分属性 参数 和行为 函数 是存在共性的 如输入端 输出端 位置 方向以及 名称等属性和改变模块大小 移动模块位置 在组态区画出模块 打开对话框以及计 算过程等行为 这些都是每种算法模块都具有的 通过抽象与继承技术 则我们可以 抽象出一个通用模块的类 CBaseModel 这个类是所有具体模块类的父类 也就是说所 有算法模块类都是从这个父类派生 派生 是 继承 的逆过程 出来的 它们都 继承了 CBaseModel 类的这些共有属性和行为 CBaseModel 类可以定义如下 以下分 析都用的是 C 语法 class CBaseModel public CObject public CBaseModel const CRect Constructors double inData 输入值 double outData 输出值 CRect m position 模块所在的位置 int Count 记录在一个控制系统中的序号 Direction m direct 模块的方向 Cstring m Name 模块的名称 public CPoint GetHandle int nHandle 得到拖动柄 void MoveHandleTo int nHandle CPoint point 拖动模块的拖动柄 改变模块大小 void MoveTo const CRect 移动模块位置 BOOL HitTest CPoint point 检测是否被选中 virtual void Draw CDC pDC 在组态区画出模块 virtual void OnOpen 打开对话框 virtual void Calculate double st double dt int step int simFun 计算过程 注意在函数 Draw OnOpen 和 Calculate 前使用了一个符号 virtual 这个符 号表示该函数是一个 虚 virtual 函数 虚函数是一个使用动态联编机制的典型方 式 使用虚函数 则函数的调用是在运行时刻进行的 也就是说 究竟调用哪个算法 模块类的 Calculate 函数 将推迟到运行期间在知道了相关对象的类型以后才自动决 定 同样的原因 各个算法模块类的方框中所画的内容以及打开的对话框也是不同的 CBaseModel 类中其它的变量和函数在派生的算法模块类中都是一样的 因此在这 些派生的算法模块类中已经继承了这些属性和行为 不再需要重新定义了 只要再加 入新的 父类中没有的属性和行为就可以组织出具体的算法模块类了 例如如图 1 所 示最简单的常系数模块类的定义如下 ConstinDataoutData outData Const inData 图 1 常系数模块 class CModelConst public CBaseModel 从 CBaseModel 类派生 public double Const public CModelConst const CRect Constructors void Draw CDC pDC void OnOpen void Calculate double st double dt int step int simFun 通过这种方法 我们可以很容易的组织出其它的所有算法模块类 而不必考虑 父类中已经具有的属性和行为了 而且由于面向对象的封装性 不必考虑变量和函数 的重名 多次调用等等许多问题 由于该软件设计中涉及的算法模块很多 60 多种 而且其中一些算法模块比较 复杂 如模糊控制 自整定控制 辨识模块和神经网络辨识等等 这些模块的算法往 往需要分别由专人来设计 采用上述面向对象的设计方法 每个单独算法模块只需按 照 CModelConst 类的定义方法从 CBaseModel 类中派生定义自己的类 然后把具体的算 发放入 Calculate 函数中就可以了 而不必考虑模块的大小 位置 方向 显示以 及拖放等等具有共性的属性和行为 以及与别的算法模块的信息交换等等许多复杂的 问题 这些问题都可以在 CBaseModel 这一个类中解决 这样就分工明确 可以避免大 量的重复工作 节约大量的代码 而且保持了界面中模块显示和操作的高度一致 另 外很重要的一点在于使软件具有良好的开放性 可以很容易地加入新的算法模块或对 已有的算法模块的算法进行修改 而不必了解其他功能的实现 从产品角度来说 由 于基层算法模块的设计人员根本无须知道这些功能的实现 甚至不需要了解整个软件 工程的体系 因此是软件工程的管理变得十分简单 3 4 应用举例 CAE2000 系统是一个功能十分丰富的平台 具体使用时 其中一些功能的实现要 结合 CAE2000 系统专用的硬件系统 由于篇幅所限 这里只举下面几个方面的应用 例 1 图 2 是某多变量协调控制系统的组态图以及实时仿真的情况 其中一个 PID 控制器的软操作面板打开了 通过该面板可以象生产现场一样进行定值的设定 手 自动切换和手动控制 从图中可以看到 60 多种典型算法模块根据功能分成 7 个模块 组 可以选择打开某个模块组 显示在窗口右侧 从中可以选择具体模块 图 2 多变量协调控制系统的实时仿真 例 2 通过 CAE2000 的硬件系统中的过程通道接口设备组态如图 3 的实时仿真 系统 其中实物部分的调节器为 DDZ 型调节器 操作器为角动执行器 通过调节器 改变定值 调节结果如图 4 所示 图 3 与硬件接口连接的组态 图 4 例 2 的调节结果 例 3 图 5 是利用 CAE2000 的 控制理论分析 工具对某系统的传递函数进行分 析的情况 可以使用 CAE2000 的传递函数编辑器输入任意传递函数 各分析图都具有 光标定位功能 可以在主窗口下方显示该点精确参数 图 5 控制理论分析示例 例 4 图 6 是使用神经网络的方法对某系统进行模型辨识的情况 图 6 神经网络辨识 5 结束语 由于在系统设计的全过程采用了面向对象的设计方法 再结合可视化技术 面向 方框图语言等方法 使得 CAE2000 系统具有良好的可维护性 扩展性和开放性 该系 统不仅适用于工程设计和生产试验部门进行建模 分析和设计 调试及参数优化等工 程方面的工作 而且适用于大中专院校的计算机辅助教学和培训工作 已经在包括科 研 教学和生产等几十家单位得到推广使用 取得了良好的效果 参考文献参考文献 1 韩蹼 周黎辉 董泽 控制系统计算机辅助工程 CAE2000 系统及应用 北京 中国电力出版 社 1999 10 1 3 2 Nicholas M Karayanakis Advanced System Modelling and Simulation with Block Diagram Languages CRC Press New York 1995 1 200 3 周黎辉 控制系统计算机辅助工程的分析与设计 硕士学位论文 保定 华北电力大学 1998 Design And Application of Control System CAD Zhou Lihui Dong Ze Han Pu Dept of Power Enginning North China Electic Power University Baoding 071003 ABSTRACT In design of CAE2000 the software of Control System Computer Aided Design CSCAD Object Oriented method is used in demand analysis designing and programming By this way the problem that how to configure a control system was

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论