dzrong Posted November 20, 2011 Share Posted November 20, 2011 How can i make a filter for current feedback? Because the noise of the current feedback. What i had done is that,using Encode Table to deal the current feedback address for filter,and using plc to copy the result to Y address(Y:$10f0 store ADC1A input value,Y:$10f1 store ADC1B input value),and setting Ix82 eque $10f1,but it seems not work. Any suggestion? This is my code. ///////////////////////////////////////////////////////////////////////////////////// undefine all del all i8008 = $3f8005 i8009 = 98304 i8010 = 409600 i8011 = $3f8006 i8012 = 98304 i8013 = 409600 i8014 = $3f800D i8015 = 98304 i8016 = 409600 i8017 = $3f800E i8018 = 98304 i8019 = 409600 i8020 = $3f8015 i8021 = 98304 i8022 = 409600 i8023 = $3f8016 i8024 = 98304 i8025 = 409600 i8026 = $3f801D i8027 = 98304 i8028 = 409600 i8029 = $3f801E i8030 = 98304 i8031 = 409600 i8032 = $3f8105 i8033 = 98304 i8034 = 409600 i8035 = $3f8106 i8036 = 98304 i8037 = 409600 i8038 = $3f810D i8039 = 98304 i8040 = 409600 i8041 = $3f810E i8042 = 98304 i8043 = 409600 i8044 = $3f8115 i8045 = 98304 i8046 = 409600 i8047 = $3f8116 i8048 = 98304 i8049 = 409600 i8050 = $3f811D i8051 = 98304 i8052 = 409600 i8053 = $3f811E i8054 = 98304 i8055 = 409600 m7105 ->x:$350b,0,24,s m7106 ->x:$350e,0,24,s m7205 ->x:$3511,0,24,s m7206 ->x:$3514,0,24,s m7305 ->x:$3517,0,24,s m7306 ->x:$351a,0,24,s m7405 ->x:$351d,0,24,s m7406 ->x:$3520,0,24,s m7505 ->x:$3523,0,24,s m7506 ->x:$3526,0,24,s m7605 ->x:$3529,0,24,s m7606 ->x:$352c,0,24,s m7705 ->x:$352f,0,24,s m7706 ->x:$3532,0,24,s m7805 ->x:$3535,0,24,s m7806 ->x:$3538,0,24,s m6105->Y:$10f0,0,24,s m6106->Y:$10f1,0,24,s m6205->Y:$10f2,0,24,s m6206->Y:$10f3,0,24,s m6305->Y:$10f4,0,24,s m6306->Y:$10f5,0,24,s m6405->Y:$10f6,0,24,s m6406->Y:$10f7,0,24,s m6505->Y:$10f8,0,24,s m6506->Y:$10f9,0,24,s m6605->Y:$10fa,0,24,s m6606->Y:$10fb,0,24,s m6705->Y:$10fc,0,24,s m6706->Y:$10fd,0,24,s m6805->Y:$10fe,0,24,s m6806->Y:$10ff,0,24,s i182=$10f1 i882=$10ff open plcc1 clear m6105= m7105 m6106= m7106 m6205= m7205 m6206= m7206 m6305= m7305 m6306= m7306 m6405= m7405 m6406= m7406 m6505= m7505 m6506= m7506 m6605= m7605 m6606= m7606 m6705= m7705 m6706= m7706 m6805= m7805 m6806= m7806 close enable plcc1 i5=2 i8=0 ///////////////////////////////////////////////////////////////////////////// Link to comment Share on other sites More sharing options...
Sina.Sattari Posted November 21, 2011 Share Posted November 21, 2011 dzrong, This method is a wrong method to use for filtering noise on Direct-PWM ADC feedback lines for couple of reasons: 1. The ADC feedback is required and updated every phase cycle. Your PLC which copies the data is running in background which means it doesn't have any correlation with the phase clock. 2. ECT is updated every servo cycle, after the phase cycle. So Even if your PLC was copying the data every phase cycle, and your Phase and Servo clocks were at the same rate, your ADC data is delayed one Servo cycle. 3. If you have ADC noise, the best way is to eliminate the noise source and not try to suppress it since it will reduce the performance of the current loop and it in turn will reduce the performance of the servo loop. 4. If you have ADC noise, you have to figure out what is the source of the noise and if the noise is generated because of current sensors in the drive or if they are generated because the is actual noise on the motor leads. Suppressing this noise may not be the best solution. Instead you have to resolve the problem from the source. Regards, Link to comment Share on other sites More sharing options...
Recommended Posts