物理建模仿真利器—Simscape language physics model debug log


第一次使用Simscape language建自定义scc,搞了一下午debug,摸流程,终于跑通了。
这里记录下。

1 .常见bug

  1. 单位调整。全部置为1,再在关键的variable在equation中乘上1*unit(A/V/Ohm)
    这是我研究出来的最绝妙的办法,simscape有个比较烦的地方在于,他要你把每个parameters variables inputs outputs都设置好他的单位才能run,实际模型中往往有很多单位很复杂的参数比如什么质子旋磁比、磁导率、玻尔磁子常数等等,以及一些你本不必去定义他的单位的变量,比如势垒能量对应的电子伏特。
    我也是觉得很繁琐,我解决方案是:将所有parameters variables inputs outputs的单位都设置为1,在设计到最终输出的across、through变量时,给他们乘上一个单位转换数,如下图,比如我要将Vs输出为电压值,那我就给他乘个K_V,这样他的单位在最终输出时就成了V。以此类推,岂不妙极。
    在这里插入图片描述

  2. intermediates无效,不能通过。猜测是版本更新,可以直接用equation调用来执行一些intermediates的公式。

  3. equation(Initial=true) 无效。直接在parameter variable定义时初始化就ok,不必再特意列equation去初始化。

  4. equation 数不等于variable数。我最终发现我出现这个bug的原因在于:设置了额外的电压virtual port/node,但该variable并不能以电压形式输出至我想让他去的virtual端口,把他去掉就可以,想显示的值全都可以在后面的simscape simulation results explorer里面查看到。后面会讲到。

  5. branch里面现在只能定义through量而不能定义across量了。across量比如电压,可以到equation里定义,且这里不分“电压/电流 是外部源送入的/自生改变的”,就闷头定义就完了。

  6. 没有"保持"这一赋值方式 。赋值时,ix == ix 不对,只能将数值送给variable,比如之前ix == 1 那么要保持它的值就仍然写ix==1 这样。如下图所示。
    在这里插入图片描述

  7. if 后的 条件expression 也需要带单位。比如 if Vs=={1,’V’}…

  8. 没有接地。必须接地,不然无法求解。

  9. 没有设置solver。所有基于Simscape建立的模型都要连接Solver Configuration模块,把这个模块的唯一输出端连接到电路的任一处即可。

  10. 显示至scope之前,要对信号做转换。用到PS-Simulink Converter(物理模型信号->仿真模型信号转换),在simscape->utilities里面。
    在这里插入图片描述

2 variable数据导出及explorer

数据输出在Model configuration parameter里面找,找到
在这里插入图片描述
这样设置,建议自己找manual P422 摸索一下,这边提供下我之前的一篇博客,里面提供了simscape说明文档的下载链接。Matlab的物理建模仿真利器——Simscape及其编程语言Simscape language学习资源汇总
在这里插入图片描述
这里是设置页面,我估摸着按我这个样子设置,出数据就没问题。在这里插入图片描述
仿真完之后它会自动弹出simscape simulation results explorer
Simscape Simulation Results Explorer
在这里插入图片描述

3.ssc—>subsystem—>mask

这些操作比较简单。可以看下面的博客
Creating a Mask: Parameters and Dialog Pane
如何在simscape中建立subsystem运行 ssc_explore(simlog)

至此,我的物理模型的ssc就搭建完成了。后面的工作就是搭建simulink里的电路网络了,后面就会很快了。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值