CN107102564A - 一种软件开发方法 - Google Patents
一种软件开发方法 Download PDFInfo
- Publication number
- CN107102564A CN107102564A CN201710205607.7A CN201710205607A CN107102564A CN 107102564 A CN107102564 A CN 107102564A CN 201710205607 A CN201710205607 A CN 201710205607A CN 107102564 A CN107102564 A CN 107102564A
- Authority
- CN
- China
- Prior art keywords
- controlled device
- software
- simulation model
- software development
- operating state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种软件开发方法,所述软件开发方法包括以下步骤:设置一控制对象和一被控对象,控制对象可控制被控对象进行动作,在软件设计平台中根据被控对象搭建仿真模型,根据控制对象的当前动作状态信号控制仿真模型运行、输出可执行代码并反馈到被控对象以控制被控对象动作,根据被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。通过以上技术方案可以实现对所开发的软件进行实时纠错和维护,使所开发的软件更加精确;同时通过结合实物的方式进行软件开发,有效缩短了其开发周期,并且有效节省了开发时间。
Description
技术领域
本发明涉及软件开发领域,尤其是涉及一种软件开发方法。
背景技术
随着嵌入式系统复杂性的提高,嵌入式软件的开发与维护已经成为一项非常重要的工作,这就对软件开发人员提出了更高的要求,在嵌入式软件开发过程中,项目人员应该在软件设计中运用现代的软件工程思想和先进的软件开发方法。同时,对于实时、嵌入式应用软件的开发还应做到在软件设计中支持实时、快速的软件开发和维护。
同时传统的设计流程图既不能准确地表达嵌入式软件的结构,也不能有效地分析嵌入式软件的结构,也不能有效地分析嵌入式系统的逻辑行为。传统的嵌入式软件开发方法是基于LABVIEW或者MATLAB或者SIMULINK的涉及平台,在平台上建立一个仿真模型,然后通过模拟信号来控制仿真模型进行相应的操作,并在此操作过程中将仿真模型生成可执行的代码,并结合单片机底层的驱动程序将两部分程序嵌套在一起,并通过上位机软件或仿真器烧写到单片机中,但是在此软件测试过程中,项目人员一旦发现程序错误或者应用此软件对实物的控制过程与实物的实际运行过程不相符,就需要返回单片机中在成百上千行源代码中查找原因,既延缓了开发进度,又增加了开发成本,无法建立有效的软件文档,这些问题导致软件的后期维护困难。而且在开发平台上通过模拟信号来模拟实物的实际运行过程中与实物实际的运行过程中是存在一定的悬殊差距的,实物的实际运行可能要考虑部件与部件之间的摩擦等情况,而模拟信号只是单一的模拟,中间并不存在其他信号的干扰,所以通过模拟信号所开发的软件在应用到真正的实物控制时,可能就会存在一定的误差。
发明内容
本发明的目的是为了解决现有技术中嵌入式软件开发周期长,维护困难,误差大的问题,提供一种维护方便,开发周期短,有效减小软件开发过程中的误差的嵌入式软件开发方法。
为了达到上述目的,本发明通过以下技术方案来实现的:
一种软件开发方法,按照以下步骤进行:
(1)设置一控制对象和一被控对象,控制对象可控制被控对象进行动作;
(2)在软件设计平台中根据被控对象搭建仿真模型;
(3)根据控制对象的当前动作状态信号控制仿真模型运行、输出可执行代码并反馈到被控对象以控制被控对象动作;
(4)根据被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
上述步骤(1)还包括以下步骤:
1)采集控制对象的当前状态信号;
2)将所述当前状态信号作为输入量输入给所述仿真模型;
3)仿真模型根据当前状态信号并按照其自身算法进行动作仿真并生成可执行代码;
4)将可执行代码烧录到单片机中;
5)通过单片机控制被控制对象进行动作。
进一步地,在步骤4)中将所述可执行代码与所述单片机的底层驱动程序相结合并烧录到所述单片机中。
优选地,所述软件开发平台为基于MATLAB和LABVIEW的开发平台。
进一步地,所述采集的控制对象的当前状态信号存储在所述MATLAB的工作空间内。
进一步地,通过所述LABVIEW中编写的上位机采集软件采集控制对象的当前状态信号,并将此信号存储到所述MATLAB的工作空间内。
进一步地,通过上述上位机标定软件实时修改模型中的标定参数以改变模型自身的算法。
进一步地,所述仿真模型通过RTW实时生成工具生成可执行代码。
本发明具有如下的有益效果:通过软件设计平台与实物相结合的方式,在软件设计平台上根据被控对象搭建仿真模型后,将被控对象的实际控制信号作为输入量来控制模型的运行,并将模型生成的可执行代码反馈到被控对象中,且通过比较被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法达到对所开发的软件进行实时纠错和维护,使所开发的软件更加精确;同时通过结合实物的方式进行嵌入式软件开发,有效缩短了其开发周期,并且有效节省了开发时间。
具体实施方式
下面结合实施例对本发明作进一步说明。
本发明的一种软件开发方法,首先设置一控制对象和一被控对象,控制对象可控制被控对象进行动作,在进行软件开发前,需要在相应的软件开发平台中根据被控对象建立仿真模型,然后将此软件平台与控制对象相连,并通过此平台采集控制对象的动作,即采集控制对象的当前状态,将所述采集到的控制对象的当前状态信号作为输入量输入到仿真模型中,仿真模型接收到此状态信号后就会根据此状态信号进行相应的运行动作生成可执行的代码;然后通过将此代码烧录到单片机中并反馈到被控对象上以控制被控对象进行动作。在这期间,通过被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
之后,将被控对象的动作与实际预设的动作进行实时比较,如果被控对象的动作与实际预设的动作不一致,那么对仿真模型自身的算法进行实时修改直到被控对象的动作状态与实际预设的动作状态一致,通过这种方式所开发出来的软件具有高精度的优点。而传统的软件设计方法是通过在设计平台中建立模拟信号,通过模拟信号控制模型运行并输出代码,然后将代码烧录到单片机中,完成相应软件的开发。然后再将开发的软件单片机应用的实物中去试验,如果发现所开发的软件与实物的实际控制过程存在出入就再返回来再去寻找误差并消除误差,整个开发过程用时比较长,严重浪费了科研人员的时间。本实施例中软件设计平台优选为基于MATLAB和LABVIEW的开发平台;也可以选用其他软件设计平台,其基本的设计思路是一样的。
首先,在所述设计平台中根据被控对象建立仿真模型;所述仿真模型需要基于控制对象的当前状态信号作为其自身的输入信号,并通过仿真模型自身的算法进行相应的动作运算并执行相应的运行。
其中,所述仿真模型的算法可以根据其自身的标定参数做相应修改,只要能够改变其仿真模型的标定参数,其模型内部相应的算法就会发生变化;而对仿真模型相应参数的修改方式有很多种,这里优选采用通过上位机标定软件对仿真模型的标定参数进行修改。所述设计平台可通过具有采集信号功能的采集卡对控制对象的当前状态信号进行采集,为了节约成本,这里优选采用LABVIEW采集软件对控制对象的当前状态信号进行采集,并将采集到的状态信号输入到设计平台中的仿真模型中。为了提高软件设计平台的信息处理速度及扩大其内部存储量,优选地,将LABVIEW采集到的控制对象的当前状态信号输入到MATLAB工作空间内。MATLAB工作空间作为该软件设计平台的储存空间,将存储所采集的控制对象的当前状态信号,并将该当前状态信号作为仿真模型的输入量发送给所述仿真控制模型。
仿真模型整个运行过程可以通过平台中的RTW实时生成工具生成可执行代码,然后将所生成的代码烧录到单片机中并通过此单片机控制被控对象的动作。期间,通过比较被控对象的动作状态与实际预设的动作状态实时反复修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
为了能够使方案具有通用性,本实施例中,作为一种优选的技术方案,可将仿真控制模型生成的可执行代码结合单片机的底层驱动程序相结合烧录到单片机中,在实际应用中,针对不同厂家,不同型号的单片机,只要修改底层驱动程序的驱动代码,就可以顺利移植到任何一款单片机上,在一定程度上解决了代码跨平台移植的问题。
接下来,详细描述一下本发明一种实施例软件设计流程。
第一步,在软件设计平台中根据被控对象搭建仿真模型;
第二步,采集控制对象的当前状态信号;这里优选采用LABVIEW采集软件采集控制对象的当前状态信号;
第三步,将所述当前状态信号作为输入量输入给所述仿真模型。优选地,所述LABVIEW采集软件采集的控制对象的当前状态信号首先发送到MATLAB工作空间进行存储,然后在MATLAB工作空间中调取此状态信号作为输入量输入给所述仿真模型。;
第四步,仿真模型根据当前状态信号并按照自身算法进行动作仿真并生成可执行代码。生成代码的方式可以为手工生成代码,也可以为自动生成代码,此处优选采用自动生成代码,即通过RTW实时生成工具生成可执行代码。而且通过自动生成代码的方式可以有效避免手工生成代码中出现的认为错误,有效提高软件的开发精度;
第五步,将所生成的可执行代码烧录到单片机中。这里作为一种优选的方案,可将所生成的代码与所述单片机的底层驱动程序相结合并烧录到所述单片机中。
第六步,通过单片机控制被控对象进行动作,并比较被控对象的动作状态与被控对象实际预设的动作状态。
其中,当被控对象的动作状态与实际预设的动作状态一致时,完成软件开发进入结束状态;当被控对象的动作状态与实际预设的动作状态不一致时,修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。这里优选采用通过上位机标定软件对仿真模型的标定参数进行修改从而实现对仿真模型的算法的修改。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种软件开发方法,其特征在于,包括以下步骤:
(1)设置一控制对象和一被控对象,控制对象可控制被控对象进行动作;
(2)在软件设计平台中根据被控对象搭建仿真模型;
(3)根据控制对象的当前动作状态信号控制仿真模型运行、输出可执行代码并反馈到被控对象以控制被控对象动作;
(4)根据被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
2.根据权利要求1所述的软件开发方法,其特征在于,上述步骤(1)还包括以下步骤:
1)采集控制对象的当前状态信号;
2)将所述当前状态信号作为输入量输入给所述仿真模型;
3)仿真模型根据当前状态信号并按照其自身算法进行动作仿真并生成可执行代码;
4)将可执行代码烧录到单片机中;
5)通过单片机控制被控制对象进行动作。
3.根据权利要求2所述的软件开发方法,其特征在于,在步骤4)中将所述可执行代码与所述单片机的底层驱动程序相结合并烧录到所述单片机中。
4.根据权利要求1所述的软件开发方法,其特征在于,所述软件开发平台为基于MATLAB和LABVIEW的开发平台。
5.根据权利要求1所述的软件开发方法,其特征在于,所述采集的控制对象的当前状态信号存储在所述MATLAB的工作空间内。
6.根据权利要求1所述的软件开发方法,其特征在于,通过所述LABVIEW中编写的上位机采集软件采集控制对象的当前状态信号,并将此信号存储到所述MATLAB的工作空间内。
7.根据权利要求6所述的软件开发方法,其特征在于,通过上述上位机标定软件实时修改模型中的标定参数以改变模型自身的算法。
8.根据权利要求1所述的软件开发方法,其特征在于,所述仿真模型通过RTW实时生成工具生成可执行代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710205607.7A CN107102564A (zh) | 2017-03-31 | 2017-03-31 | 一种软件开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710205607.7A CN107102564A (zh) | 2017-03-31 | 2017-03-31 | 一种软件开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107102564A true CN107102564A (zh) | 2017-08-29 |
Family
ID=59676110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710205607.7A Withdrawn CN107102564A (zh) | 2017-03-31 | 2017-03-31 | 一种软件开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107102564A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207860A (zh) * | 2010-03-31 | 2011-10-05 | 比亚迪股份有限公司 | 一种嵌入式软件开发方法 |
CN105955026A (zh) * | 2016-05-30 | 2016-09-21 | 神华集团有限责任公司 | 模糊pid控制方法和装置及系统 |
-
2017
- 2017-03-31 CN CN201710205607.7A patent/CN107102564A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207860A (zh) * | 2010-03-31 | 2011-10-05 | 比亚迪股份有限公司 | 一种嵌入式软件开发方法 |
CN105955026A (zh) * | 2016-05-30 | 2016-09-21 | 神华集团有限责任公司 | 模糊pid控制方法和装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101788820B (zh) | 基于目标的快速控制原型 | |
Rauch et al. | An advanced STEP-NC controller for intelligent machining processes | |
Xiao et al. | A complete CAD/CAM/CNC solution for STEP-compliant manufacturing | |
CN104142676B (zh) | 用于测试虚拟控制仪的测试装置 | |
CN107729230A (zh) | 一种基于控件模式下的web自动化测试装置及测试方法 | |
CN106095654A (zh) | 性能验证装置、具有性能验证装置的系统以及方法 | |
CN107832497A (zh) | 一种智能车间快速定制设计方法及系统 | |
CN102169846B (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN104573193B (zh) | 一种航天器gnc系统快速设计方法 | |
US20050102054A1 (en) | Method and system for simulating processing of a workpiece with a machine tool | |
CN104965750A (zh) | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 | |
CN1315044C (zh) | 控制逻辑模拟-验证方法和模拟-验证个人计算机 | |
CN107463147A (zh) | Plc程序开发方法及装置 | |
CN104463332A (zh) | 基于有色Petri网的FMS生产仿真分配方法 | |
CN109388096A (zh) | 信息处理装置及方法及非易失性的计算机可读记录介质 | |
CN106093897A (zh) | 一种雷达系统的测试系统及测试方法 | |
CN115202799A (zh) | 航空发动机控制软件仿真系统及其生成方法 | |
US20050033457A1 (en) | Simulation aid tools and ladder program verification systems | |
CN103135049B (zh) | 测试图形生成装置、测试程序生成装置、生成方法及测试装置 | |
CN110303495A (zh) | 提高操作性的综合模拟系统 | |
CN114326494B (zh) | 超导量子计算机的量子测控系统和方法 | |
CN104850478B (zh) | 一种建立待测对象模型的方法及虚拟测试方法 | |
CN105758648A (zh) | 车辆性能的测试方法和装置 | |
CN107102564A (zh) | 一种软件开发方法 | |
CN106462139A (zh) | 可编程显示器以及绘图软件 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170829 |