- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
稀土测试课程的设计稀土焙烧炉自动控制系统模拟软件
成绩
课程名称:程序设计实训
设计题目:稀土焙烧炉自动控制系统模拟软件
题目 稀土焙烧炉自动控制系统模拟软件设计 姓名 学号 1108020204 班级 网工1102 指导老师 完成日期 2013.7.10 设计任务:
1.1设计目的
(1) 了解稀土以及稀土焙烧炉自动控制系统的基本工作原理;
(2) 进一步学习 C 语言或者 C++语言程序工程设计的方法以及程序调试技巧;
(3) 学习撰写专业技术文档。
1.2设计内容
稀土焙烧炉自动控制系统模拟软件设计
稀土焙烧炉的控制要求是:
1)要保证进入焙烧炉的稀土矿石粉料和浓硫酸量控制在设定的比例。一般设定稀土矿
石粉料和浓硫酸的比例为 1:1(重量比),并根据工艺要求可以适当改变这一比例。
2)规定进入焙烧炉的稀土矿石粉料流量调节范围为每分钟 0—10kg,一般设定稀土矿
石粉料进入焙烧炉的流量为 5kg/min。
3)1 号操作工要密切观察炉内情况,一旦发现焙烧炉的尾部有原料堆积的情况,就要
及时通知 2 号操作工减少稀土矿石粉料,从而消除焙烧炉尾部原料堆积的情况。
用 C 语言或者 C++语言编写一个程序,用形象化方式模拟上述稀土焙烧炉的控制系统
的工作过程。软件要能用适当的方式显示出稀土矿石粉料和浓硫酸的流量以及它们的比例,
当发生稀土矿石粉料和浓硫酸的流量比例超出设定的阈值是,能够用声音和图形的方式报警。
1.3设计指标或者要求
(1) 要求用 C 语言或者 C++语言编写满足设计内容的程序,并调试正确;
(2) 撰写设计报告。
设计过程
2.1程序功能
软件要能用适当的方式模拟焙烧炉的尾部有原料堆积的情况以及相应的处理过程, 当发
生焙烧炉尾部原料堆积时, 能够用声音和图形的方式报警; 软件要能允许用户在规定范围内
设定稀土矿石粉料的流量、 稀土矿石粉料和浓硫酸的流量比例以及稀土矿石粉料和浓硫酸的
流量比例阈值等三个参数。
2.2算法原理
2.3程序流程图
2.4程序主要模块或者函数
void CMeter::SetScaleDecimals(int nDecimals)
{
m_nScaleDecimals = nDecimals ;
ReconstructControl() ;
}
void CMeter::SetUnits(CString strUnits)
{
m_strUnits = strUnits ;
ReconstructControl() ;
}
void CMeter::SetValueDecimals(int nDecimals)
{
m_nValueDecimals = nDecimals ;
ReconstructControl() ;
}
void CMeter::DrawNode(CDC *pDC)
{
CPen penDraw, *pPenOld;
COLORREF cEdge, cMiddle, cNode;
cMiddle = RGB(255, 255, 255);
cEdge = RGB(0, 0, 0);
for(int i=m_nCenterRadius*3/4; i=0; i--)
{
cNode = RGB((GetRValue(cEdge)-GetRValue(cMiddle))*((float)i)*4/(3*m_nCenterRadius)+GetRValue(cMiddle),
(GetGValue(cEdge)-GetGValue(cMiddle))*((float)i)*4/(3*m_nCenterRadius)+GetGValue(cMiddle),
(GetBValue(cEdge)-GetBValue(cMiddle))*((float)i)*4/(3*m_nCenterRadius)+GetBValue(cMiddle));
penDraw.DeleteObject();
penDraw.CreatePen(PS_SOLID, 1, cNode);
pPenOld = pDC-SelectObject(penDraw);
pDC-Arc(m_ptMeterCenter.x-i, m_ptMeterCenter.y-i,m_ptMeterCenter.x+i,m_ptMeterCenter.y+i,
m_ptMeterCenter.x-i,m_ptMeterCenter.y,m_ptMeterCen
文档评论(0)