Motor drive efficiency and power
69 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello Everyone,
I have modelled a 3-phase motor drive, and now I would like to calculate its input and output power for the purpose of efficiency calculation. I am using a power sensor at the DC side in which I am averaging the power at every 0.001 sec, and using a three-phase power sensor at the inverter's output. The issue which I am facing is that the inverter's output power is somehow higher than input power, approximately 10 times higher. Could you please provide your insight on how do I rectify this issue, or what could the problem causing this? For three-phase power sensor, the settings are set at balanced load.
Moreover, I am also using a mechanical power sensor at the motor end to calculate mechanical power, and in order to calculate overall efficiency of the drive, i would normally divide the output power by input power. I have saved the scope data and transfered it into excel, where when I performed division between output and input, i get different efficiency values for different points which is expected, but at some points, the efficiency is more than 100% apparently. Could you kindly provide assistance on how should I approach this issue to find effciency? should I average the vlaues first?
The scope screenshot is hereby attached.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1752124/image.png)
Note: A drivecycle is used as a reference that is why there is no output until 20Sec.
3 Kommentare
Antworten (1)
Shivam Gothi
am 30 Aug. 2024 um 18:38
Bearbeitet: Shivam Gothi
am 31 Aug. 2024 um 5:52
Hello Hassan Ali,
I have reviewed the Electric Vehicle (EV) model you shared, and I would like to offer some observations and suggestions for improvement.
Upon examining the waveforms of the DC power, armature current, and speed response, it appears that the "Motor Controller" block may need some adjustments. The armature currents were not sinusoidal, leading to fluctuating power drawn from the DC source, which in turn caused variations in efficiency.
To assess the performance of your model, I replaced the "Drive Cycle Source" block with a "Constant" block set at a value of 10 to capture the step response of the speed and current control loops within the "Motor Controller" block. I have attached the waveforms obtained from these tests for your reference.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763524/image.png)
Fig 1: Above wave form is of phase 3 current. Motor accelerated for 2 seconds, than steady state was achieved. (current not smooth and sinusoidal)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763529/image.png)
Fig -2: Zoomed at the steady state part in the fig-1. (currents are not sinusoidal. This causes oscillating power between inverter drive and DC link input.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763534/image.png)
Observations:
- The dynamic response of the speed control loop could be improved.
- The armature currents were not sinusoidal, indicating potential issues with the current control loops.
- The controllers' saturation limits might need configuration.
Proposed Solutions:
I have made several modifications to the Simulink model, which I have attached with this answer for your review:
- Redesigned the PI controllers for the outer speed loop and both current loops.
- Change the switching frequency of power converter to 5000Hz.
- Replaced the "Moving Average" filter block with a continuous-time analog filter block using the "Transfer Function" block to better suit the "Variable Step" method used in the model.
- Added analog low-pass filters with a cutoff frequency of 500Hz after the current measurement to serve as anti-aliasing filters.
- Removed the delay element (1/z) from the input and output of the "Inverse Park Transform Block," (inside motor controller block) as additional delays are not necessary here.
- increase the switch on-state resistance to 0.1 ohm.
After implementing these changes, I tested the model with a step input of “33” (not sure about the units of speed) in the speed reference using a "Constant" block. The results were quite promising. They are attached below:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763539/image.png)
Fig 4: phase 3 current (for modified Simulink model). Motor is accelerating till 2 seconds, after that it decelerates. (Compare it with fig 1, you will see a vast difference.)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763544/image.png)
Fig 5 : Phase 3 current at steady state. (for modified Simulink model)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763549/image.png)
Fig -6 : speed response of vehicle. (modified Simulink model)
Results:
- Proper sinusoidal currents were achieved.
- The speed response showed significant improvement.
- Both current controller loops are functioning optimally.
The attached figure illustrates the waveform of DC input power, inverter output power, and mechanical power.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763554/image.png)
Fig 7 : waveform of DC input power, inverter output power, and mechanical power.
The DC input power is nearly equal to the inverter output power, reflecting a high efficiency of the power converter . During acceleration, the motor draws substantial current, leading to increased on-state losses and reduced efficiency under higher load conditions. Refer to fig 8 for plots of efficiency vs speed.
Efficiency Assessment:
Instead of giving arbitrary speed reference through “Drive cycle source” block, give a constant reference speed of “100”. Let the vehicle accelerate from zero speed. During this period, the motor will be drawing the maximum load current, and hence we will get the worst case electrical efficiency. Now find the mechanical efficiency by formula: (inv. Power/mech power). Also find the electrical efficiency by (inv power/ DC power)
This operation can be done from the Simulink itself, by using division block, as shown in the attached model. (look under the block “scopes”). There is no need to export the data into excel.
The electrical and mechanical efficiency are observed on scope, and attached below for your reference.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1763559/image.png)
Fig 8: Efficiencies
Use this modefied model of EV to carry out any further simulation, I think it should resolve majority of issues faced by you.
Thank you for your attention to these suggestions. Hope this helps you.
2 Kommentare
Shivam Gothi
vor etwa eine Stunde
Which transfer functions are you refering?
If you are talking about the filters placed after the current measurement, Here is a brief overview to get the values:
- If we are implementing the above system on actuall hardware, we first use a low pass filter bank to remove measurement noise from the current sensors. From there, I got the idea to use filter banks for current measurement.
- We know that the armature current of motor is not a pure sine wave, because it is supplied by the inverter. It also contains higher harmonics other than the fundamental frequency component. The microcontroller runs in discrete time steps. Therefore, it has a perticular samping frequency. If we do not remove the high frequency component, then "aliasing" effect will be observed due to sampling and it corrupts the actual current measurements. To avoid this , we use a low pass filter that will attenuate the unwanted high frequency component present in the measurement.
Deciding the values:
Care must be taken while using low pass filter at the current measurement, because it introduces phase lag. If the phase lag is more, then the closed loop control may become unstable.
The transfer function of low pass filter for unity gain is :
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1764599/image.png)
We can conclude that it adds a phase lag of
for the frequency (ω)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1764604/image.png)
We generally take operating frequency to be 50Hz. So, in the above transfer function, if I choose (
), it will only cause phase lag of
that is very small. This will not cause the closed loop to become unstable. Therefore I decided to take (
) which resulted in filter transfer function of :
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1764609/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1764614/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1764619/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1764624/image.png)
How to decide transfer function for DC power filter:
As per my understanding, The DC power remains almost constant. The mechanical dynamics govern the DC power consumed from the battery. But, we know that the mechanical dynamics are much slower. Therefore, I randomly selected the cutoff frequency of the filter to be approx 8Hz, so filter for DC power becomes:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1764629/image.png)
You can also change the filter cutoff frequency according to your needs of filter requirnment.
HOW TO DECIDE THE TRANSFER FUNCTION FOR PI CONTROLLERS
There are number of ways to tune the controller. I am discussing one of the approach based on my understanding.
The more sophisticated way to tune the controller is by proper modelling of system and then specifying the time domain and frequency domain objectives. But here, I used trial and error method. First keep only P controller. (keep I = 0). Keep on increasing the gain untill the peak overshoot of the response is not exceeded the safe value. Now, start increasing "I" i.e integral part, such that the steady state error decays to zero withih desired time.
NOTE: Always use proper limiters at the output of PI controllers. This is because, the Integrators can keep on accumulating very large numbers, which may cause the control input to be unexpectedly high.
You can configure the limiters for PI controller in SIMULINK by opening the "properties" box for PI controllers.
I hope this is as per your expectation.
Siehe auch
Kategorien
Mehr zu Parameterization Methods finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!