simulink简单记录---(13) [2018年11月15日]

上一篇 / 下一篇  2018-11-16 14:56:31 / 天气: 算晴吧 / 心情: 还算平静吧 / 个人分类:simulink

        1.遇到过的问题 (一)

       ①simulink根据flag的具体数值判断系统是计算连续部分还是离散部分,并调用相应的子函数,simulink在处理混合系统时将同时调用S-function的mdlUpdate、mdlOutput和mdlGetTimeOfNextVarHit子函数。对于离散系统而言,在mdlUpdate、mdlOutput中需要判断是否需要更新离散状态和输出。

        ②在初始化子函数中有个simsizes函数
        关于这个函数,用“帮助”里给出的信息:
        simsizes用来设定s-function函数的尺寸
        simsizes是一个帮助函数,用在M文件S函数中去提供关于S函数的具体信息。
这个信息包括输入,输出,状态和其他模块的特性的数量。
        给simulink这些信息,在初始化阶段先调用未有预设值的simsizes函数
        如: sizes=simsizes; 
        在初始化适合S函数的说明后,simsizes函数会被重新调用将这个结构转变成矢量才能够被simulink处理。
        如 :sys=simsizes(sizes) 

        ③flag值未定义

        有时总会出现:
         Input argument “flag” is undefined. 

         switch flag,

         error in ==>xxxxx at 107
       这个问题我没有找到原因,弄好的方式是改变下初始化参量的位置,把flag放在了最后的位置,但是这应该不是原因。
        
        ④ S函数名字和simulink的文件名

        S-function的名字和editor中的调用.m文件名要一致,但不要和simulink的文件名一致。

        ⑤自带S-function的实例

        在Matlab中输入sfundemous命名,可以查看s-function的相关实例。
        或在User-defined function 模块库中的sfundemous模块可以查看实例。

        ⑥过零检测的作用

        变步长解算方法会动态地评估下一个采样时刻计算所使用的步长,当前后两个采样点的值变化大时,则缩小采样步长;反之,当前后两个采样点的值变化小时则增大步长。这种做法使得解算器在计算不连续临近区域时使用较小的步长,因为不连续点临近区域值变化幅度大。这种做法能保证计算的精确度,但是却有可能导致采样过于密集、步长过小而导致仿真时间太长。
        simulink使用过零检测技术来精确定位不连续点,以免仿真时步长过小导致仿真时间太长,一般情况下能够提高仿真速度,但有可能使得仿真到达规定时间长度之前就停止。当采用变步长解算方法仿真时,如果遇到步长自动变得很小导致仿真时间很长或基本没有进度,可以考虑勾选开启过零检测功能。
        简单地来说,变步长求解器可以在非连续点添加时间步长来仿真非连续动态系统。过零检测就是为这些不连续点设定的。(摘自:空天遮阳伞)

        ⑦示波器点约束
         有时示波器只显示仿真的后一部分,前面时间的结果没有显示。
         示波器有“5000"limit data points to last限制勾选,去掉了勾选就正常显示了。

        simulink的基础总结:
        
        首先,simulink的基本知识,包括simulink的工作环境,工作原理,simulink求解器,simulink的应用工具箱和模块库,和基本操作。
        重点需要关注的是:simulink求解器的设置和应用,还有模块库中各模块的作用,还有基本操作,例如连线分岔,用Ctrl+点连线,将虚线牵引到所要连接的模块。

        其次,系统仿真的基本概括,包括simulink建模与仿真(离散系统,连续系统,混合系统),命令行动态仿真,模型线性化,求平衡点(稳定),子系统应用(使能,触发,触发使能),控制流语句(if-else,switch,while,for),子系统封装,S-function(自定义模块)
        这里上面形成一定的覆盖,但是还有很多细节需要确认和应用时遇到再确认。

        总之,还需要继续应用才能更加清楚。
        


        
         
        
        
        

        
        
        
                                

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2018-12-15  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 4070
  • 日志数: 15
  • 建立时间: 2016-02-19
  • 更新时间: 2018-11-27

RSS订阅

Open Toolbar
博评网