simulinksamplingdspic

How does Simulink sample time relate to Interrupt Service Routine sample time?


I have a question concerning a simulink model I am building. I am trying to find out with values of P and I are needed for a closed loop controler. That is for a PFC controled by a dspic. I know that the sample time in Simulink determine the rate at which a given block updates his value. Now, back to the microcontroller. I am implementing the control loop inside an ISR which is triggered every 160 uS, making the calculation and giving the results(dutycyle) to the PWM-Module register. Am I right to think that by setting the Simulation sample time at 160uS, I should get a similar behavior as the Microcontroller? I would also like to know how the Sample time on Simulink affects the behavior and/or the stability of a closed loop controller. can anyone link me to a paper exploring the sujet. I can´t find anything on the topic. sorry for the english, thank you guys


Solution

  • Yes you should set your sample time in the model identical to what your hardware is doing if you want the same results.

    Longer sample times directly translate into phase lag in the control loop. Specifically it translates to 180 degrees of phase lag at 360° / 160us / 180° = 12.5KHz. So if your loop gain is not < 1.0 for frequencies > 12.5Khz you can't guarantee stability. And if you have any other phase lag at other points in the loop then you would have to add that to the sample related lag.

    Generally you would want to use higher sample rates if your control loop needs more bandwidth.