您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 一个实例讲解基于模型设计
一个例子讲解Simulik基于模型设计Dynamic四川大学2014年05月14日MATLAB技术论坛、基于模型设计简介1.1什么是基于模型设计1.2为什么要基于模型设计(传统设计流程的弊端)1.2为什么要基于模型设计(技术革新创造价值)1.2为什么要基于模型设计(航空航天面临的挑战)1.3如何进行基于模型设计2基于模型设计实例2.1创建需求文档•对于一个项目,一般需要建立文件形式的需求文档并提交给设计人员,需求文档一般是以下格式的电子文档:•WORD•EXCEL•HTML•DOORS2.2搭建仿真建模设计工程是根据需求文档,使用Simulink&Stateflow建立可执行的技术规范(模型),用来实现需求文档中描述的功能和算法,这个模型主要是为了确定算法的可行性,为将来的设计提供依据,不涉及具体的硬件。2.3设计迭代优化•根据需求文档建立起来的模型,可能并不满足设计要求,工程师需要不停的迭代,设计出符合安全、性能、可靠的系统,这个过程中Simulink为我们提供了很多工具,比如,对于飞行控制领域:1.ControlSystemToolbox2.ModelPredictiveControlToolbox3.Mode-BasedCalibrationToolbox4.RobustControlToolbox5.SystemIdentificationToobox6.SimulinkControlSystem7.SimulinkOptimizationDesign•另外在设计迭代过程中,可能需要编写一些功能测试案例,这些案例可以保留到模型测试和代码测试。2.4需求一致性检查基于模型设计一个重要特征,设计全过程中不断的跟踪和验证,文档中每一条需求都与一个或多个模块关联,同时模块中每一个模块都与一个或多个需求关联。若在仿真过程中发现,存在某些需求不可达到,设计人员可以删除或增加新的模块,再通过需求一致性检查,反映在需求文档中。2.5模型助手检查•很多领域对设计模型有行业设计标准,比如DO-178b,IEC61508、MAAB等安全规范。ModelAdvisor可以检查模型的设计和配置是否导致仿真错误、代码无效、系统不可靠等。2.6生成测试用例•SimulinkDesignVerifier自动生成测试用例,可达到满意的模型覆盖率以及用户定义的目标,同时DesignVerifier还可以生成验证模型属性以及生成反例:•(1)生成测试用例,验证模型覆盖度,不能用于功能测试•(2)验证模型的属性,并给出反例,比如,某个参数必定在指定范围•(3)识别模型中无效的模块,比如,无法执行到的模块•(4)测试用例和模型覆盖度报告•SimulinkDesignVerifier只能生成用于验证模型覆盖和属性的用例,至于功能测试用例必须人工编写。•另外DesignVerifier很多限制条件,在很多情况下无法自动生成测试用例。因此在进行测试用例生成之前,需要进行兼容性检查2.7覆盖度分析•模型覆盖度分析可用于分析测试用例的有效程度,检查结果是一个百分比,他表示一个测试用例作为模型的输入,仿真以后通路占所有通路的比例。2.8生成定点数模型•进行定点数信号处理能简化电路,可以使得运算简单、提高速速,另外很多嵌入式系统不支持浮点数运算。而定点数中数据是有限字长,很容易引入量化误差,产生溢出。•Fixed-PointAdvisor工具进行字长自动标定,将模型从浮点转化成定点,长生初始定标来调整模型参数,为模型和数据配置初始定标,针对浮点模型来验证初始定标结果,并未代码生成做准备。•FixedPointTool工具进一步优化定标,它只对模型中已经设置为定点数的变量进行分析和操作,并可以为嵌入式代码优化定标、折衷精度范围,使数据不溢出。2.9代码自动生成•Simulink自动生成标准C/C++代码,然后验证生成的代码是否符合要求。以及模型和代码之间的相互追踪。2.10软件相关测试•软件在环测试(SIL):•–VisualC++或者Lcc编译器将代码编译成mex文件•–通过S函数的方式在Simulink模型中调用mex文件•–测试代码和用于代码生成的模型功能是否一致•处理器在环测试(PIL):•–使用目标编译器将代码编译成目标处理器上可以运行的文件•–通过编译器提供的接口将编译后的文件下载到目标版上运行文件•–测试生成的代码在目标处理器上运行的功能和对应模型功能一致•–测量生成的代码在目标处理器上的运行时间•硬件在环测试(HIL):•控制算法模型生成代码并集成到控制器中,被控对象模型生成代码并运行到工控机中,将控制器和工控机通过线束和信号调理电路连接起来2.11产品优化剖析•(1)Simulinkprofiler,剖析代码实时的性能•(3)CodeGenerationAdvisor•(2)SimulinkCoderInspector•(3)Polyspace,采用语义分析技术进行代码有效性检查•由于上面这些工作涉及较多的软件和硬件知识,今天不再进行演示了。
本文标题:一个实例讲解基于模型设计
链接地址:https://www.777doc.com/doc-3962625 .html