记录一下simulink的pid controller模块某些情况下不能使用的坑
simulink的pid controller模块不能够再function-call subsystem中使用,因为我们使用simulink pid的时候系统的采样时间必须是确定的,因为再这个模块中要使用这个时间,而一般我们使用function-call subsytem的时候,采样时间是集成的,设置的是-1,所以这个时候pid模块生成代码的时候会报错(但是编译的时候不报错)
**
建议1:使用function-call subsystem不要用simulink的pid controller模块,自己搭建pid模块
建议2:系统时间确定的情况下可以使用siumlink的pid模块,因为它的工具很齐全,快速调节pid参数很方面,尤其是再仿真的时候。
**
具体报错如下:
Motor Control/PID Controller/Integrator/Discrete/Integrator’ that uses
elapsed time cannot be allowed inside a function-call subsystem driven
by function-call root-level Inport block
‘fieldRobots_397SW/trig_autodrive’ with an inherited sample time (-1).
Suggested Actions:
• To fix this, set ‘Sample time’ on Inport block ‘fieldRobots_397SW/trig_autodrive’ to a discrete rate. - Open