一、个人完成工作
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整的头大,不过最后的完成结果还算是比较让人满意吧。
虽然说挺辛苦,但是也很有收获。