Control Loop Stability and Sampling

Hi
I have a motor drive modelled in simulink making use of Space Vector PWM and I'm having a few problems with stability. I have a PI current
controller on the front end and I'm trying to tune the PI Values to get a stable response....at the moment I get a ripple on the current (and hence torque) waveform.
I've done a block analysis (in terms of continous 's' domain) and the result is a second order response. THis lets me choose an wn (bandwidth) and zeta(damping factor)...I chose wn00Hz and zeta=0.707 which gives P=2 IP00. My first thoughts were "eeek the integral gain is huge" but trying to manually tune P&I has not give me a better response.
I'm currently working out my control action each PWM cycle. I get the feeling this is the wrong thing to do? but slowing the control down e.g working out the control every other PWM period increases the current and torque ripple. So I'm confused as to what the link is between choice of Bandwidth with PI values and Choice of bandwidth from the controler sampling frequency.
Presumably my system bandwidth....whatever it is needs to be significantly less than the PWM frequency for stable operation? Do I need to perform a discrete analysis of the system?
Thanks in advance for your help....once I get this controller stable I can get to hardware and have some fun
Steve Minshull
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Is it possible for you to post the diagram somewhere it can be seen? I have done PWM modeling in Scilab/Scicos and your problem doesn't correspond to what I remember.
RayRogers
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Steve Minshull wrote:

Yes, that does sound wrong. I'm thinking though that you're missing some dimensions. Simulink wants you to use integrators that are scaled by sampling rate, which means that the integrator gain should have dimensions of 1/sec -- if this is the case then the integrator gain number is not so bad, but you should be using the units.
Are these the numbers that you're using in your sampled time system, or are they the numbers that you get from a continuous-time analysis, or what?
What are the components that are generating the second order response? Are we talking about a series L with shunt C to suppress ripple from the PWM? If so, why aren't you talking about using a differentiator?
What's your circuit topology?
What's your PWM (and hence sampling) frequency?

It would only be 'wrong' in the sense that you may be making extravagant use of processor resources, and you'll need to pay attention to integrator depth.

Huh? I'm not sure what method you're working from, here. Usually you should choose the controller sampling frequency from your desired bandwidth (the rule of thumb is to sample at 10x or more); in extremis you can pull back your bandwidth to match a limited sampling rate, however.
Ultimately your bandwidth will be limited by the plant, no matter what you're doing with sampling rate.

Yes, this is the 10x I was talking about.

You can get by without it, but I heartily recommend that you get a discrete model of the plant and design to that.

--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tim Wescott wrote:

Hi Tim....Thanks for thinking about this one. I'll try to explain a little more.
THe model is presently in continous time but Space Vector PWM doesn't really exist in continous domain. It works by sampling a DQ voltage demand and working out a switching vector and dwelling times. My model effectively calculates a new vector each PWM Time. So my PWM frequency is 20kHz and effectively my Space Vector Control is also working at 20kHz. THe PI part of the control operates in continous time. i.e the transfer function is kp+(ki/s). Ultimately I'm going to a DSP and so the PI will be discrete therefore I think I should probably go to a fully discrete model too.
THe components are indeed a series L and a shunt C (Bruhless ac motor Phase) so I'll have a go at adding differential and see what happens.
Just had a thought....Maybe my problem is the mixed continous/discrete controller....the continous integral part will ramp up/down during PWM period when it cannot effect the output.
When I use an "ideal" converter (sinousoidal voltage source) The system behaves well. It is when I model the converter at a power electronics level (ideal switches) i get problems with the torque ripple.
I'm going to try cross posting this to comp.dsp
Steve Minshull
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Steve Minshull wrote:

-- snip --

A question:
What loop are you closing here? At that bandwidth I would hope it's the current, to set the torque.
A comment:
If it worked at the 'ideal' converter stage, but not when you changed both the controller and the drive stage, perhaps you should back out of half of your changes and just use a sampled-time controller with an 'ideal' sinusoidal drive. Even something as wheezy as putting a sample-and-hold block between the output of your controller and your sine wave drive should be enough to either validate your sampled-time controller or find your problem.
If it works with a sampled controller and a perfect drive, then you can reduce your question to asking why the PWM control doesn't work like the ideal drive.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.