我创建了一个matlab模型,意图将其用于代码生成,特别是PLC编码器。该模型基本上是包含误差计算的示例离散PID块,但另外我希望增益和采样时间是输入。这在Simulink中可能没有意义,但对于生成的PLC代码,它是首选解决方案。
目前,模型工作区中的增益块(Kp,Ki,Kd)的变量为维度为[1 1]的double,然后我使用输入中的“ToWorkspace”块。这在模拟中不起作用,似乎只使用初始值,无论如何。
'SampleTime'变量也没有效果。此变量用于积分器和滤波器块中的“SampeTime”参数。这是必须的,因为在PLC生成的代码中我将处理器的循环时间传递给函数,因此它可以正确地集成,因为扫描时间可以变化。
此外,PLC代码生成器工作正常,但是,增益,积分器,滤波器,SampleTime,根本不会出现在代码中。我真正得到的是两个和函数。
知道我该如何处理这个问题?我可以用产品块替换增益块,但它对样本时间问题没有帮助。感谢。