我有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个生成代码的组合。谁能给我一个关于这是怎么发生的建议?非常感谢你提前!