Hi guys,
I'm working on a control system for a DC-DC converter, and I'm stuck on a certain aspect.
I have the transfer function in difference equation format for my DC-DC convert, but I'm unsure how to program it. I'm using an FPGA with Verilog, but in terms of conceptualization, I believe it applied to any programming language.
For instance, let's say my difference equation is:
D(n) = 5.45*I(n) - 123.4*I(n-1) + 1.3*D(n-1) - 0.5*D(n-2)
Where D(n) is the duty cycle at instant n and I(n) is the current at instant n.
I guess my question is how do I know what values to use for this input? My maximum current is going to be 1 A. I'm using an 11 bit ADC, so that translates to 11111111111 (for 1 A) in binary. Do I need to scale this value for the difference equation, and if so by what amount?
My duty cycle routine accepts a number from 0-2048, where 1024 would be 50%, 2048 would be 100% and so on. This is easily modifiable.
For the duty cycle, is it the same process? In reality, the duty cycle can be from 1-0, and never above. Let's say I assume that my max current value is scaled to 1, and my duty cycle is scaled to 1 also. Feeding my equation, I just may get a number greater than 1. I don't know what the output of the difference equation's duty cycle actually means.
This is where I'm very unsure what to make of it and I apologize if I'm not making any sense. I'm not sure if this concept is one that has been already addressed in textbooks or such. I'd appreciate any information on this subject. Please let me know if I'm not being clear and I'll try my best to explain it more clearly.
Thanks,
Obanion
I'm working on a control system for a DC-DC converter, and I'm stuck on a certain aspect.
I have the transfer function in difference equation format for my DC-DC convert, but I'm unsure how to program it. I'm using an FPGA with Verilog, but in terms of conceptualization, I believe it applied to any programming language.
For instance, let's say my difference equation is:
D(n) = 5.45*I(n) - 123.4*I(n-1) + 1.3*D(n-1) - 0.5*D(n-2)
Where D(n) is the duty cycle at instant n and I(n) is the current at instant n.
I guess my question is how do I know what values to use for this input? My maximum current is going to be 1 A. I'm using an 11 bit ADC, so that translates to 11111111111 (for 1 A) in binary. Do I need to scale this value for the difference equation, and if so by what amount?
My duty cycle routine accepts a number from 0-2048, where 1024 would be 50%, 2048 would be 100% and so on. This is easily modifiable.
For the duty cycle, is it the same process? In reality, the duty cycle can be from 1-0, and never above. Let's say I assume that my max current value is scaled to 1, and my duty cycle is scaled to 1 also. Feeding my equation, I just may get a number greater than 1. I don't know what the output of the difference equation's duty cycle actually means.
This is where I'm very unsure what to make of it and I apologize if I'm not making any sense. I'm not sure if this concept is one that has been already addressed in textbooks or such. I'd appreciate any information on this subject. Please let me know if I'm not being clear and I'll try my best to explain it more clearly.
Thanks,
Obanion