一、个人完成工作

1、物理建模与修改

热水系统的建模

费劲心思终于在网上找到了一个Simscape Thermal方向的英文入门PPT教程——
Using Simscape for Modeling Thermal Systems:Dynamics of a Quenching Process
参考上面的案例,结合自己的思考完成了热水系统的建模
考虑了水和空气的热对流散热,以及加热丝通过热对流对水加热,加热功率设为3000W,具体参数如散热系数,散热面积等,通过查阅资料确定

2、运动物理模型的修改简化

原本的运动模型考虑涉及到直流电机,惯性阻尼,求解时间长,更关键的是复杂的simscape模型不能使用定步长仿真,就算能跑通了,结果也很不正常
所以做了如下简化改动

3、模块整合、调试、仿真

传感器的建模

因为物理模型输出的是模拟量(如位移,角度等),而传感器信号一般为数字开关量,所以这里用simulink的数字运算模块做了传感器
可以设定比较值和测量误差

Stateflow的修改

将组员分工设计的Stateflow模块进行了修改和整合:

  • 采用了event作为各模块之间的通信方式——前者动作完成,则广播事件,后者接收到事件,开始运行
  • 将stateflow模块整合为一个控制器模块

整个工程的整合和调试仿真

将软件模块和物理模块整合,最终成果如下

  • 用的定步长仿真方式,步长设置为0.01s,仿真时长为50s。
  • 开关信号用脉冲代替,咖啡品种选择用type常量表示(1为美式、2为拿铁、3为卡布奇诺)
  • 用示波器检测各模块状态

仿真结果如下

Feeder Height

Feeder Angel(rad)

Conveyer Length

T_water(设定温度值为90℃)

coffee

milk

sugar

water

4、C代码生成与PIL测试

c代码生成

下载了qumu和cortex-m3的插件,按照教程完成了c代码的自动生成

PIL测试

按照教程操作,结果无法生成PIL Block,网上搜索发现可能是编译器的问题,试着安装了MinGW-x64,虽然mex -setup能够跑通,但依旧没办法生成PIL Block
于是尝试用第三方编译器,安了VS2012,但是matlab找不到,修改路径的方法也试了,不过没成功,最后无奈花两个小时重装了matlab,总算是可以了

用PIL Block代替原本的Controller,测试结果与之前的仿真无异

二、个人总结

总的来说,这次大作业的工作量还是很大的,想要完成就必须投入足够的时间去学习相关的知识内容,每周都很忙碌
身为小组的组长吧,感觉也没有尽到应尽的责任,在分工、交流、督促方面都做蛮不足。
由于前两周本人事情比较多,另外小组成员或忙于考研或忙于准备德福考试,所以前两周的进度比较缓慢,第三周开始也是有所觉悟,在分工和责任方面做出了强调,自己也是花了不少时间在建模和挑bug上,虽说是被一连串的bug整的头大,不过最后的完成结果还算是比较让人满意吧。
虽然说挺辛苦,但是也很有收获。

团队Github

posted on 2017-11-05 18:58  Hust_Jamie  阅读(415)  评论(2编辑  收藏  举报