用SIMULINK做灵敏度(SA)_不确定度(UA)分析

本文属 MATLAB与SOLIDWORK集成机电系统仿真与实现系列文章 

  灵敏度分析是一个内容非常广泛领域,本博文的目标是希望把灵敏的分析问题引入到整个系统的设计过程中。在设计中,一般对系统整体的指标是有个要求,这个指标是个统计值,那么如何把这个统计值的置信区间在设计时分配到系统的各影响因素、系统参数的控制上去呢?

经过一段时间折腾,对这一主题,又增加了些认识,结合European Commission, Joint Research Centre of Ispra在这一领域的工作和软件(SimLab),可以在MATLAB、SIMULINK、Simlab的联合计算模拟中找到答案。

在我们的工作中,遇到的具体情况各不相同,比如,一种情况是没有被研究系统的模型,一种情况是有系统模型。第一种情况下,要求找到引起系统输出变异的来源,第二种情况下,或许想确切的知道各因素引起的系统输出不确定性的量化数据,这样可以根据工艺或者成本等因素进行系统设计

在做SA\UA分析时,数值实验是少不了的,SimLab提供下面所列的灵敏度、不确定度分析流程。后面将提到SIMULINK能做的一些工作。

  • 因素的分布假设,在SA\UA的分析中,因素的分布假设是一个前提条件,到底一个系统参数变异是成什么样的分布,可能影响最终的结论,在MATLAB的统计箱里列出了几十种分布,如果对某个参数的的分布没有先验的知识,那么对每一种分布都尝试一次分析吗?一般是假设为正态分布,然后就开始分析下结论了。值得记住的是这并不完全可能符合事实。
  • 采样方法,影响系统输出变异的因素一般不止一个,每个因素的取值范围也不一样,在做数值实验时,也不可能每种因素的所有可能组合都进行计算。SimLab给出了采样的各种计算方法。
  • 因素去相关性,Simlab考虑了各因素之间的相关性的可能,这一步使得因素间相互独立。
  • 样本产生
  • 把样本送入模型,产生输出数据。
  • 不确定性分析,灵敏度分析。
     以上是Simlab的分析步骤,他有自己的专业的特点,在SIMULINK里,使用系统测试工具,在该工具里把系统的输入或着参数作为分布测试矢量,然后把测试矢量注入被测试系统的SIMULINK模型,测试完后,用MATLAB的统计函数来做UA\SA分析,这个办法,是个简化,按European Commission, Joint Research Centre of Ispra的研究结论,用SIMULINK做这个分析,适合系统线性化后,并且按OTA方法进行模拟。这样一来,与Simlab相比,省略了很多内容,而且这种方法本质上是居于泰勒级数原理进行的。但是另外一种用SIMULINK辅助设计系统参数的可能是,假如知道了系统参数的分布,按上面的分布参数测试方法,可以得知参数在各种可能下,系统的输出变异是否在确定范围内,如果能满足这一条件,而不需考虑成本因素,那么这种情况下,深入的UA\SA分析看来就不是必需的了。

   根据以上的分析,具体做UA\SA时,有了个指导性方案可用。

 待续。。。 

本文转载自李会先博客http://foundy.blog.163.com/blog/static/263383442010213111747693/

你可能感兴趣的:(simulink机电一体仿真)