RLC circuit equation problem
2 ビュー (過去 30 日間)
古いコメントを表示
Can some one tell me where I'm going wrong with this code?
I need to write a program that plots 2d graphics of the current (i) against time (t) with time changing from 0:0.001:0.4 seconds.
This is what I have so far:
1 件のコメント
Stephen23
2015 年 1 月 20 日
Not that you should never use i or j as your loop indices, as these are the names of the inbuilt imaginary unit .
採用された回答
Star Strider
2015 年 1 月 21 日
If you haven’t already solved it by now, you need to incorporate ‘t’ into your equation. Note that including it in ‘omega’ will make your code work:
Vm=240; f=50; R=5; L=0.004; C=0.0015; t=0:0.001:0.04;
for k1=1:length(t)
omega=2*pi*f*t(k1);
z(k1)=sqrt(R^2)+(omega*L-(1./(omega*C)).^2);
i(k1)=Vm/z(k1);
end;
plot(t, i)
2 件のコメント
Star Strider
2015 年 1 月 21 日
My pleasure!
I appreciate your compliment.
I remember my own struggles with ESCI 101 (‘Basic Circuits and Systems’).
その他の回答 (1 件)
John
2015 年 1 月 20 日
You must use positive integers to index into an array. z(j) doesn't work, because you have defined j as a number between 0 and .04. Add an index such as
i = 0;
for j ...
i=i+1;
z(i) = ...
...
6 件のコメント
Star Strider
2016 年 8 月 26 日
@James Tursa —
You’re absolutely correct.
It would do exactly that:
z = 3+i*4
z =
3.0000 + 4.0000i
Stephen23
2016 年 8 月 27 日
編集済み: Stephen23
2016 年 8 月 27 日
@John BG: Apparently I "really needs to refresh class notes."
Okay, lets have a look at my sources of information:
- The imaginary unit documentation itself currently states: "it is best to avoid using i and j for variable names if you intend to use them in complex arithmetic."
- The accepted answer written by an TMW employee (TMW, who write MATLAB in case you were wondering), who states regarding avoiding using i and j that "Stephen, I'd say it's a best practice".
- The official MATLAB documentation Programming Patterns: Some Common MATLAB Programming Pitfalls and How to Avoid Them: "to avoid this problem, either use different variable names or clear the variables...".
- The many comments by other MATLAB experts, both on this forum and elsewhere, who essentially comment that "using i or j works, but I would not do it myself..."
Can you please tell me exactly what your references are, that are so much better than these official MATLAB references, and comments by expert users and MATLAB employees?
@John: the attitude of "then it doesn't really matter" would get you fired where I work. Standards and best practice are there to make code easier to write, easier to read, easier to debug, easier to fix, easier to integrate with other code. Contrary to what many beginners think, good code practice make your own life easier too!
参考
カテゴリ
Help Center および File Exchange で Function Creation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!