Embedded Matlab function for Microcontroller modelling with PWM
이전 댓글 표시
Hello!
I am modelling a solar tracking system in simulink, and i want to include an embedded matlab function with 'if' statements to represent a microcontroller. The inputs will be 2 values of voltage representing the LDR values, and within the matlab function i will compare the input values and create an output which will commmand a motor to rotate clockwise or counterclockwise. I have built the motor model in simulink, which will recieve an input voltage(coming from the microcontroller) and will output an angle of rotation. My question is what should be the output of the microcontroller? I think maybe the microcontroller could output a duty cycle of a PWM which will correspond to a voltage(maybe use a look up table) but i am not sure. I also want to include a PI controller but i am not sure were should be connected and what the error input should be. I want to model this operation as simple as possible because i am a beginner at electronics, and also the simulation time is very long,(10*3600s) so a complex system will make my simulation slow. Any response will be very helpful.
Thank you
댓글 수: 8
Eleni.T
2020년 6월 26일
Mohsen Aleenejad
2020년 6월 29일
Hi Eleni.T,
The correct answer to this question really depends on your final design. What paramters are being controlled and what topology is driving the motor? (Type of the motor and Drive. Parameters: Position/Speed of the motor. Control algorithm: Speed Control/Torque and Direction Control, Current Limiting Circuit). If a general answer helps, then assume that you wanna control a dc motor position:

If you wanna increase the model accuracy and get closer to the real problem then:

The real world problem needs a very accurate system with more complexity.
Best
Mohsen
Eleni.T
2020년 6월 29일
Eleni.T
2020년 6월 30일
Mohsen Aleenejad
2020년 6월 30일
Yes, your first assumption about the speed and position is correct, and you can move forward with that.
The second question, they are diffrent, Va is armature voltage and Vs is the dc voltage source connected to the input of the dc/dc converter: Va=d.Vs and is=d.Va, basically for the ideal cnverter with no lose P=Va.Ia or P=Vs.Is.
About the last question, I don't know what exactly we are talking about, these two voltages I mean. If (IF) one of them is a reference voltage and the other one is a measured voltage coming from a sensor, then yes we can create the position reference from their error:

However, if you get two measured voltages and by changing the position you can minimize (or make zero) the difference between these voltages, then you can use a method smilar to Perturb and Observe:

I have no past experience in this particular subject (2 voltage values of the light sensors), but I'm trying to give you some ideas.
Hope these solutions resolve your issue.
Good Luck
Mohsen
Mohsen Aleenejad
2020년 6월 30일
DeltaV=V2-V1;
also in the * DeltaTheta calculator, you could say (elseif DeltaV(k)=DeltaV(k-1) then DeltaTheta=0).
Eleni.T
2020년 6월 30일
Mohsen Aleenejad
2020년 6월 30일
I am happy I could help.
Good Luck.
채택된 답변
추가 답변 (0개)
커뮤니티
더 많은 답변 보기: Power Electronics Community
카테고리
도움말 센터 및 File Exchange에서 Real-Time PID Autotuning에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



