计算机控制实验指导书2016_第1页
计算机控制实验指导书2016_第2页
计算机控制实验指导书2016_第3页
计算机控制实验指导书2016_第4页
计算机控制实验指导书2016_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机控制技术实 验 指 导 书凤俊翔适用专业: 自动化 电气工程及其自动化 测控技术与仪器 江苏科技大学电子信息学院 2016.10前 言计算机控制技术是自动化、电气工程及其自动化和测控技术与仪器专业的一门必修课程。本课程的作用是使学生掌握计算机控制技术的基本理论、基本原理、基本方法和计算机控制系统的实现。它要求学生通过课堂教学和实验后,掌握计算机控制系统的基本概念、工作原理和计算机控制系统设计的基本方法,并具有计算机控制系统的初步分析能力。计算机控制技术实验课程是整个课程教学的重要组成部分,既是对理论知识的实践应用,也是对理论课程的补充、延伸和深化。本实验课程的主要目的是通过与课堂教学的密

2、切配合,巩固和扩充课堂讲授的理论知识,加深对课堂教学内容的理解;训练科学实验的基本技能和工程实践的基本方法,养成严谨的科学态度和工作作风,培养应用所学理论知识独立分析、解决实际问题的能力和实际动手能力。本实验课程共有三个实验项目,为设计性实验,实验有难、易不同的要求,为学生留有独立思考和发挥的空间。本实验指导书对每个实验项目的目的、内容、步骤、运行、预习要求、思考题及实验报告都有明确说明。学生应认真按照实验指导书的要求做好每一个实验。本实验指导书适合自动化专业、电气工程及其自动化专业、测控技术与仪器专业和电子信息工程专业的学生使用。目 录实验一:数字PID控制3实验二:最小拍控制系统5实验三:

3、基于Smith预估器的纯滞后控制系统设计实验四:船舶自动舵控制器设计11附录 学生实验报告基本内容要求42实验一:数字PID控制实验学时:3实验类型:设计实验要求:必修一实验目的1了解数字PID的一般原理;2掌握数字PID的编程方法及PID参数的调整。二实验器材PC机三实验内容及要求1必做内容针对具体的被控对象,设计PID控制器,其算法采用位置式或增量式算法。设计、编制程序进行仿真分析,给出仿真结果,并讨论比例、积分、微分的作用; 2选做内容采用一到二种改进型算法设计PID控制器,例如:积分分离PID算法、不完全微分PID算法和微分先行PID算法,设计、编制程序进行仿真分析,给出仿真结果;3被

4、控对象设被控对象为二阶惯性环节,其传递函数如下式:,且采样周期T0.1s,输入为单位阶跃信号; 4性能指标要求调整时间;超调量;静态误差。四实验原理图u*(t)e*(t)y(t)Tr(t)e(t)图1 PID闭环控制系统PID控制器TZOHG0(s)G(z)五实验步骤:1将零阶保持器和给定的控制对象构成广义控制对象,写出其z传递函数,并转化成相应的差分方程;2PID控制算法采用位置式算法或者增量式算法 位置式: 增量式:其中:为比例系数,为积分系数,为微分系数;3通过试凑法选择合适的PID参数,使得系统达到给定的性能指标。并讨论比例、积分和微分对系统产生的作用。 记录选择的PID参数; 记录输

5、出的仿真数据; 记录仿真图形曲线。提示: (1) 调整PID参数时,先将I、D参数保持不变,改变P参数,通过曲线图的变化得出P与超调量及调整时间的关系,再固定P、D参数,分析I对超调量及调整时间的影响,以此方法,观察D对超调量及调整时间的影响。PID调整时间超调量不变不变不变不变不变不变不变不变不变不变不变不变分别记录P、I、D三参数对应的仿真曲线(2) 试凑法选择合适的PID参数,使得系统达到给定的性能指标。记录仿真曲线及参数。六预习要求1复习数字PID控制算法的基本原理;2复习MATLAB和VC、C+的编程、调试方法;3用MATLAB或C+设计、编写数字PID控制算法源程序和仿真图形曲线输

6、出的源程序。七实验报告1写出程序清单并进行注释;2分析调试、运行结果。实验二:最小拍控制系统实验学时:3实验类型:设计实验要求:必修一实验目的1了解数字最小拍控制系统的一般原理;2掌握数字最小拍控制系统的编程方法。二实验器材PC机三实验内容1必做内容针对具体的被控对象,设计系统存在波纹的最小拍数字控制器,编制程序进行仿真分析,给出仿真结果;2选做内容采用阻尼因子法设计最小拍数字控制器,编制程序进行仿真分析,给出仿真结果;3被控对象设被控对象为二阶惯性环节,其传递函数如下式:,且采样周期T1s,输入分别为单位阶跃信号、单位速度信号和单位加速度信号。四实验原理图u*(t)e*(t)y(t)Tr(t

7、)e(t)图1 最小拍闭环控制系统TZOHG0(s)G(z)五实验步骤1将零阶保持器和给定的控制对象构成广义控制对象,写出其传递函数,并化成相应的差分方程;2确定希望的数字控制器: 单位阶跃信号: 单位速度信号: 单位加速度信号: 3通过MATLAB或C+编程进行仿真,验证系统是否在规定拍数达到稳态。分别对单位阶跃信号、单位速度信号和单位加速度信号: 记录调整的最小拍控制参数; 记录输出的仿真数据; 记录仿真图形曲线,标明拍数六预习要求1复习数字最小拍控制系统的基本原理; 2复习MATLAB和C+的编程、调试方法;3用MATLAB或C+设计、编写数字最小拍控制算法源程序和仿真图形曲线输出的源程

8、序。七实验报告1写出程序清单并进行注释;2分析调试、运行结果。实验三:基于Smith预估器的纯滞后控制系统设计实验学时:3实验类型:设计实验要求:必修一实验目的1了解smith预估控制器算法的一般原理;2掌握smith预估控制器算法的编程方法;3. 与PID控制算法进行比较,加深对该控制算法的掌握和理解。二实验器材PC机三实验内容1根据给定对象特性,设计smith预估控制器算法,利用Matlab(Simulink)软件或C+软件编制程序进行仿真分析,给出仿真结果;2设广义被控对象为: 控制系统框图为:取T=1、=2、T1=2.88,经采样(T=1s)保持后,其广义对象z传递函数为, 转换为2个

9、单位迟延控制器参数:Kp=0.5,Ki=0.2,Kd=0。四实验步骤1设计smith预估控制算法,作给定值扰动和外部扰动响应实验,并绘制控制器输出P和系统输出y响应曲线;2被控对象不变,采用理想PID进行给定值扰动和外部扰动响应实验,并绘制控制器输出P和系统输出y响应曲线。五预习要求1复习smith预估控制算法和PID算法的基本原理; 2复习MATLAB和C+的编程、调试方法;3用MATLAB或C+设计、编写smith预估控制算法源程序和仿真图形曲线输出的源程序。六思考题1分析两类控制算法对带迟延对象的控制效果;2根据实验分析Smith预估控制算法的优点是什么,若采用PID算法解决同类问题效果

10、如何? 七实验报告1写出程序清单并进行注释;2分析调试、运行结果。Matlab辅助设计软件:具体操作步骤:1、 启动Matlab;2、单击工具栏中的Simulink仿真图标 ,进入Simulink仿真环境新建模块库3、新建仿真结构图,寻找模块,拖动到新建仿真结构图中所涉及模块的位置:加法器Sum:在Simulink/Math Operations子库中。离散PID控制器:在SimPowerSystems/Extra Library/DiscreteControl Blocks子库中。离散传递函数Discrete Transfer Fcn:在Simulink/Discrete子库中。示波器Sco

11、pe:在Simulink/Sinks模型库中。阶跃信号Step:在Simulink/Sources模型库中。4、 修改模块参数。双击模块,在出现的窗口中设置参数。5、 连接模块。将光标移到一个模块的输出端()按下鼠标左键拖动鼠标到另一个模块的输入端(),松开鼠标左键就可以完成两个模块的连接。6、 设置仿真参数,进行仿真。 在Simulation下拉菜单中设置仿真参数,单击工具栏中的Start Simulation 图标 ),计算机开始仿真,示波器可显示出仿真曲线 。7、通过曲线,分析系统性能。实验四:船舶自动舵控制器设计实验学时:3实验类型:设计实验要求:必修一、实验目的1、了解船舶自动舵系统

12、的组成,自动舵控制系统的结构、自动舵模型、控制器、环境载荷等;2、掌握MATLAB环境下仿真方法;3、掌握PID算法及参数的作用;4、掌握调试PID控制器的方法;5、掌握典型船舶自动控制系统的常用控制方法。二、实验器材1、PC机;2、Matlab软件。三、实验内容及要求针对船舶自动舵控制系统,设计能满足以下功能的控制器。1、利用自动舵模型,设计船舶自动舵闭环反馈控制系统,实现船舶自动艏向功能;2、采用PID控制器,设计船舶自动舵控制系统;3、采用带参考模型的PID控制器,设计船舶自动舵控制系统;4、观察系统仿真曲线分析不同控制器的作用。四、实验原理船舶自动舵是重要导航系统(设备),用来保持船舶

13、在给定航向或航迹上航行,是船舶操纵的关键设备。该系统采用工控计算机和专用计算机系统结合方式进行系统控制,工控计算机完成系统运算和信息处理,专用计算机系统完成部分单元的控制与检测,并与工控机进行信息交流,实现航向与航迹准确跟踪。该系统通过对海图信息、罗经信息和信号等信息的综合处理,采用大圆航线确定算法,使船舶的实际航迹接近设定航迹,航向控制更准确,减少航行过程中的打舵次数,节约能源延长舵机的使用寿命。系统具有以下主要功能:具有航迹自动操舵功能、具有航向自动操舵功能、具有舵角随动操航功能、具有航角外控随动操蛇功能、具有手动操蛇功能、具有航迹数据显示功能。图3-1 船舶自动舵示意图图3-2 自动舵控

14、制系统结构图船舶在航行时,船速,此时主要考虑的是纵荡和艏向两个自由度,纵荡方向主要是速度控制,艏向由于跟横荡方向的耦合影响,因此数学模型为:,,从而可以转化为Nomoto模型:二阶Nomoto模型:一阶Nomoto模型:由于,可以得出:K,T参数可以通过船舶Z操纵性实验求出。图3-3 Z型操舵试验特征曲线五.实验步骤1、在Matlab环境下编写船舶自动舵仿真程序;2、设置模型参数,调试仿真程序;3、设定定位参数,调试确定控制器最佳参数;4、修改控制器参数,观察结果变化,体会控制器算法中比例、积分与微分所起的作用;5、采用带参考模型PID控制器,分析该控制器的作用。6、观察加干扰后,调试船舶自动

15、舵仿真六.预习要求1、复习闭环负反馈系统、PID算法、前馈控制等相关知识;2、按照实验要求事先编写程序;3、按照实验要求事先选定几组试验数据进行测试;七.实验报告内容:1、分析MATLAB仿真程序和各部分的功能1)分析常规PID控制器、参考模型PID控制器的作用;2) 分析自动舵模型、舵机模型、饱和环节等;3)分析干扰下情况。2、分析仿真结果以30为期望艏向,仿真时间定位500s,分析调试、运行结果。八.思考题1、如果实验中静态误差较大,需要调试哪个参数?2、为什么需要参考模型,参考模型的作用是什么?3、如何把改程序改成Simulink仿真程序?九.附1. 参考模型现代的自动舵系统必须有航向保

16、持和转向功能。当需要变航向(即转向)操作时,我们可以通过设计参考模型来计算出期望的状态艏向,艏向变化率,以及艏向加速度;而航向保持可以被看做转向的一种的特殊情况,此时为一个常数。参考模型可以看成是一个航向指令的预滤波器。我们设计一个简单的三阶滤波器:其中,是操作者输入值,是阻尼比,是自然频率。需要注意的是:且和对于阶跃响应指令是光滑有界的。这些就是选择三阶模型的而主要原因。在许多情况下,在转向时限定期望的艏向变化率是非常有必要的,我们可以通过在参考模型中加入限幅结构来实现。艏向加速度也可以通过加入另外的限幅结构来限定。于是,包含有速度限幅、加速度限幅的状态空间模型为:饱和元素(限幅)为:在参考

17、模型中加入变化率限幅的主要目的是把船舶转向过程分成三个阶段,如下(正转向过程):I. 开始转向II. 稳定转向III. 结束转向负转向过程同样分为三个阶段,只是和取相反的值。在航向发生大的改变时,运用这种控制策略可以起到很好的控制效果。还有一种更加复杂的方法来产生航向参考信号,就是利用最优技术来计算出期望的艏向角度,与此同时所要付出的代价是需要更复杂的软件算法来实时实现。三阶参考模型仿真结果如图3-4所示:设自然频率,阻尼比;设定艏向变化率,艏向加速度,设定航向。图3-4三阶参考模型仿真曲线图2. 实验示例1)基于PID的船舶自动舵控制见附录2)基于参考模型的PID船舶自动舵控制见附件附录参考

18、程序1#include stdafx.h#include 1111.h#include 1111Doc.h#include 1111View.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifIMPLEMENT_DYNCREATE(CMy1111View, CView)BEGIN_MESSAGE_MAP(CMy1111View, CView)ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PR

19、INT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()CMy1111View:CMy1111View()CMy1111View:CMy1111View()BOOL CMy1111View:PreCreateWindow(CREATESTRUCT& cs)return CView:PreCreateWindow(cs);/ CMy1111View drawingvoid CMy1111View:OnDraw(CDC* pDC) /求PID参

20、数int i=0; double Kp=0.5,Ki=0.045,Kd=1;double r100;double y100,u100,e100,datau100;y0=0;e0=0;u0=0;e1=0;y1=0;u1=0;for(i=0;i100;i+)ri=4.01;for(i=2;iSelectObject(&hPen1); / 画X-Y坐标抽pDC-MoveTo(50,610);pDC-LineTo(950,610);pDC-MoveTo(50,610);pDC-LineTo(50,10);pDC-SelectObject(pen0); pen0=pDC-SelectObject(&hP

21、en1);pDC-MoveTo(950,610);pDC-LineTo(945,605);pDC-MoveTo(950,610);pDC-LineTo(945,615);pDC-MoveTo(50,10);pDC-LineTo(45,15);pDC-MoveTo(50,10);pDC-LineTo(55,15);pDC-SelectObject(pen0);for(i=0;iSelectObject(&hPen1);pDC-MoveTo(100+i*50,610); pDC-LineTo(100+i*50,605); pDC-SelectObject(pen0);rect0.left=90+i

22、*50;rect0.right=rect0.left+20;rect0.top=615;rect0.bottom=630;sprintf(s,%d,(i+1)*10);font0=pDC-SelectObject(&font); pDC-SetTextColor(RGB(0,0,0); pDC-SetBkMode(TRANSPARENT);pDC-DrawText(s,-1,&rect0,DT_CENTER);pDC-SelectObject(font0);for(i=0;iSelectObject(&hPen1);pDC-MoveTo(50,510-i*100); pDC-LineTo(55

23、,510-i*100);pDC-SelectObject(pen0);rect0.left=30;rect0.right=rect0.left+20;rect0.top=510-i*100-5;rect0.bottom=rect0.top+20;sprintf(s,%d,i+1);font0=pDC-SelectObject(&font); pDC-SetTextColor(RGB(0,0,0); pDC-SetBkMode(TRANSPARENT);pDC-DrawText(s,-1,&rect0,DT_CENTER);pDC-SelectObject(font0); pen0=pDC-Se

24、lectObject(&hPen2); /画曲线rtfor(i=0;iMoveTo(50+i*5),(610-ri*100); pDC-LineTo(50+i*5+5),(610-ri+1*100); pDC-SelectObject(pen0);pen0=pDC-SelectObject(&hPen3); /画曲线ytfor(i=0;iMoveTo(50+i*5),(610-yi*100); pDC-LineTo(50+i*5+5),(610-yi+1*100); pDC-SelectObject(pen0); hPen1.DeleteObject();hPen2.DeleteObject(

25、); hPen3.DeleteObject();font.DeleteObject();/ CMy1111View printingBOOL CMy1111View:OnPreparePrinting(CPrintInfo* pInfo)return DoPreparePrinting(pInfo);void CMy1111View:OnBeginPrinting(CDC*, CPrintInfo*)/ TODO: add extra initialization before printingvoid CMy1111View:OnEndPrinting(CDC*, CPrintInfo*)/

26、 TODO: add cleanup after printing/ CMy1111View diagnostics#ifdef _DEBUGvoid CMy1111View:AssertValid() constCView:AssertValid();void CMy1111View:Dump(CDumpContext& dc) constCView:Dump(dc);CMy1111Doc* CMy1111View:GetDocument()/ non-debug version is /inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMy1

27、111Doc);return (CMy1111Doc*)m_pDocument;#endif /_DEBUG参考程序2#include stdafx.h#include 1111.h#include 1111Doc.h#include 1111View.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifIMPLEMENT_DYNCREATE(CMy1111View, CView)BEGIN_MESSAGE_MAP(CMy1111View, CView)ON_COMMAN

28、D(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()CMy1111View:CMy1111View()CMy1111View:CMy1111View()BOOL CMy1111View:PreCreateWindow(CREATESTRUCT& cs)return CView:PreCreateWindow(cs);void

29、CMy1111View:OnDraw(CDC* pDC)int i;double r1000;double y1000;double e1000;double u1000;for(i=0;i1000;i+)ri=1;e0=0;u0=0;y0=0;e1=1;u1=1/3.68;y1=0;for( i=2;iSelectObject(&hPen1);pDC-MoveTo(50,610);pDC-LineTo(950,610);pDC-MoveTo(50,610);pDC-LineTo(50,10);pDC-SelectObject(pen0); pen0=pDC-SelectObject(&hPe

30、n1);pDC-MoveTo(950,610);pDC-LineTo(945,605);pDC-MoveTo(950,610);pDC-LineTo(945,615);pDC-MoveTo(50,10);pDC-LineTo(45,15);pDC-MoveTo(50,10);pDC-LineTo(55,15);pDC-SelectObject(pen0);/画X轴刻度for(i=0;iSelectObject(&hPen1);/画的刻度线pDC-MoveTo(50+i*100,610); pDC-LineTo(50+i*100,605); pDC-SelectObject(pen0);rect

31、0.left=40+i*100;rect0.right=rect0.left+20;rect0.top=615;rect0.bottom=630;sprintf(s,%d,i);font0=pDC-SelectObject(&font); pDC-SetTextColor(RGB(0,0,0); pDC-SetBkMode(TRANSPARENT);pDC-DrawText(s,-1,&rect0,DT_CENTER);pDC-SelectObject(font0);/画Y轴刻度for(i=0;iSelectObject(&hPen1);/画刻度线pDC-MoveTo(50,410-i*200

32、); pDC-LineTo(55,410-i*200);pDC-SelectObject(pen0);/rect0.left=30;/画刻度rect0.right=rect0.left+20;rect0.top=410-i*200-5;rect0.bottom=rect0.top+20;sprintf(s,%d,i+1);font0=pDC-SelectObject(&font); pDC-SetTextColor(RGB(0,0,0); pDC-SetBkMode(TRANSPARENT);pDC-DrawText(s,-1,&rect0,DT_CENTER);pDC-SelectObjec

33、t(font0); /画曲线rt pen0=pDC-SelectObject(&hPen2);for(i=0;iMoveTo(50+i*100),(610-ri*200); pDC-LineTo(50+i*100+100),(610-ri+1*200); pDC-SelectObject(pen0);/画曲线ytpen0=pDC-SelectObject(&hPen3);for(i=0;iMoveTo(50+i*100),(610-yi*200); pDC-LineTo(50+i*100+100),(610-yi+1*200); pDC-SelectObject(pen0); hPen1.De

34、leteObject();hPen2.DeleteObject(); hPen3.DeleteObject();font.DeleteObject();BOOL CMy1111View:OnPreparePrinting(CPrintInfo* pInfo)return DoPreparePrinting(pInfo);void CMy1111View:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)void CMy1111View:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)#if

35、def _DEBUGvoid CMy1111View:AssertValid() constCView:AssertValid();void CMy1111View:Dump(CDumpContext& dc) constCView:Dump(dc);CMy1111Doc* CMy1111View:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMy1111Doc);return (CMy1111Doc*)m_pDocument;#endif /_DEBUG参考程序3#i

36、nclude stdafx.h#include 1111.h#include 1111Doc.h#include 1111View.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifIMPLEMENT_DYNCREATE(CMy1111View, CView)BEGIN_MESSAGE_MAP(CMy1111View, CView)ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_D

37、IRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()CMy1111View:CMy1111View()CMy1111View:CMy1111View()BOOL CMy1111View:PreCreateWindow(CREATESTRUCT& cs)return CView:PreCreateWindow(cs);void CMy1111View:OnDraw(CDC* pDC)int i;double r1000;double y1000;d

38、ouble e1000;double u1000;for(i=0;i1000;i+)ri=i;e0=0;u0=0;y0=0;e1=1;u1=0.543;y1=0;for( i=2;iSelectObject(&hPen1);pDC-MoveTo(50,610);pDC-LineTo(950,610);pDC-MoveTo(50,610);pDC-LineTo(50,10);pDC-SelectObject(pen0); pen0=pDC-SelectObject(&hPen1);pDC-MoveTo(950,610);pDC-LineTo(945,605);pDC-MoveTo(950,610

39、);pDC-LineTo(945,615);pDC-MoveTo(50,10);pDC-LineTo(45,15);pDC-MoveTo(50,10);pDC-LineTo(55,15);pDC-SelectObject(pen0);/画X轴刻度for(i=0;iSelectObject(&hPen1);/画的刻度线pDC-MoveTo(50+i*100,610); pDC-LineTo(50+i*100,605); pDC-SelectObject(pen0);rect0.left=40+i*100; /画刻度rect0.right=rect0.left+20;rect0.top=615;r

40、ect0.bottom=630;sprintf(s,%d,i);font0=pDC-SelectObject(&font); pDC-SetTextColor(RGB(0,0,0); pDC-SetBkMode(TRANSPARENT);pDC-DrawText(s,-1,&rect0,DT_CENTER);pDC-SelectObject(font0);for(i=0;iSelectObject(&hPen1);/画刻度线pDC-MoveTo(50,560-i*50); pDC-LineTo(55,560-i*50);pDC-SelectObject(pen0);rect0.left=30;

41、/画刻度rect0.right=rect0.left+20;rect0.top=560-i*50-5;rect0.bottom=rect0.top+20;sprintf(s,%d,i+1);font0=pDC-SelectObject(&font); pDC-SetTextColor(RGB(0,0,0); pDC-SetBkMode(TRANSPARENT);pDC-DrawText(s,-1,&rect0,DT_CENTER);pDC-SelectObject(font0); / pen0=pDC-SelectObject(&hPen2); /画曲线rtfor(i=0;iMoveTo(50

42、+i*100),(610-ri*50); pDC-LineTo(50+i*100+100),(610-ri+1*50); pDC-SelectObject(pen0);pen0=pDC-SelectObject(&hPen3); /画曲线ytfor(i=0;iMoveTo(50+i*100),(610-yi*50); pDC-LineTo(50+i*100+100),(610-yi+1*50); pDC-SelectObject(pen0); hPen1.DeleteObject();hPen2.DeleteObject(); hPen3.DeleteObject();font.DeleteO

43、bject();BOOL CMy1111View:OnPreparePrinting(CPrintInfo* pInfo)return DoPreparePrinting(pInfo);void CMy1111View:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)void CMy1111View:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)#ifdef _DEBUGvoid CMy1111View:AssertValid() constCView:AssertValid();void CMy1111View

温馨提示

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

评论

0/150

提交评论