结合来自Simulink Coder的2个生成代码

时间:2017-04-05 13:50:05

标签: matlab simulink generated-code

我有2个Simulink模型,一个是spring-mass-damper system

,其中一个是PI controller

具有参数:m = 1; c = 10; k = 50; Kp = 30; Ki = 70; reference = 0.2; 在使用Simulink Coder为这两个模型生成C ++代码之后,我尝试使用CodeBlock中的一个新项目将它们组合在一起。代码顺序如下:

while(1){

  springMass.spring_mass_damper_U.Force = piController.PI_controller_Y.force;
  springMass.step();
  piController.PI_controller_U.position = springMass.spring_mass_damper_Y.position;
  piController.step();

  timeStep += 1;
  if(timeStep == 51) break;
} 

然而,结果(每个时间步的位置值)与Simulink的结果完全不同,即使最终转换为0.2。我试图在一个Simulink模型中连接它们,我从中生成了一个C ++文件,然后运行了这个文件,但结果仍然与Simulink文件不同,也来自2个生成代码的组合。谁能给我一个关于这是怎么发生的建议?非常感谢你提前!

0 个答案:

没有答案