ans =
結果:
I went to perform an IoT for an automated plantation but the same error always occurs to me when I upload it to the mcu node, which is: Connection to ThingSpeak failed.
Create a struct arrays where each struct has field names "a," "b," and "c," which store different types of data. What efficient methods do you have to assign values from individual variables "a," "b," and "c" to each struct element? Here are five methods I've provided, listed in order of decreasing efficiency. What do you think?
Create an array of 10,000 structures, each containing each of the elements corresponding to the a,b,c variables.
num = 10000;
a = (1:num)';
b = string(a);
c = rand(3,3,num);
Here are the methods;
%% method1
t1 =tic;
s = struct("a",[], ...
"b",[], ...
"c",[]);
s1 = repmat(s,num,1);
for i = 1:num
s1(i).a = a(i);
s1(i).b = b(i);
s1(i).c = c(:,:,i);
end
t1 = toc(t1);
%% method2
t2 =tic;
for i = num:-1:1
s2(i).a = a(i);
s2(i).b = b(i);
s2(i).c = c(:,:,i);
end
t2 = toc(t2);
%% method3
t3 =tic;
for i = 1:num
s3(i).a = a(i);
s3(i).b = b(i);
s3(i).c = c(:,:,i);
end
t3 = toc(t3);
%% method4
t4 =tic;
ct = permute(c,[3,2,1]);
t = table(a,b,ct);
s4 = table2struct(t);
t4 = toc(t4);
%% method5
t5 =tic;
s5 = struct("a",num2cell(a),...
"b",num2cell(b),...
"c",squeeze(mat2cell(c,3,3,ones(num,1))));
t5 = toc(t5);
%% plot
bar([t1,t2,t3,t4,t5])
xtickformat('method %g')
ylabel("time(second)")
yline(mean([t1,t2,t3,t4,t5]))
Local large language models (LLMs), such as llama, phi3, and mistral, are now available in the Large Language Models (LLMs) with MATLAB repository through Ollama™!
Read about it here:
Hot off the heels of my High Performance Computing experience in the Czech republic, I've just booked my flights to Atlanta for this year's supercomputing conference at SC24.
Will any of you be there?
syms u v
atan2alt(v,u)
function Z = atan2alt(V,U)
% extension of atan2(V,U) into the complex plane
Z = -1i*log((U+1i*V)./sqrt(U.^2+V.^2));
% check for purely real input. if so, zero out the imaginary part.
realInputs = (imag(U) == 0) & (imag(V) == 0);
Z(realInputs) = real(Z(realInputs));
end
As I am editing this post, I see the expected symbolic display in the nice form as have grown to love. However, when I save the post, it does not display. (In fact, it shows up here in the discussions post.) This seems to be a new problem, as I have not seen that failure mode in the past.
You can see the problem in this Answer forum response of mine, where it did fail.
In case you haven't come across it yet, @Gareth created a Jokes toolbox to get MATLAB to tell you a joke.
Dear MATLAB contest enthusiasts,
In the 2023 MATLAB Mini Hack Contest, Tim Marston captivated everyone with his incredible animations, showcasing both creativity and skill, ultimately earning him the 1st prize.
We had the pleasure of interviewing Tim to delve into his inspiring story. You can read the full interview on MathWorks Blogs: Community Q&A – Tim Marston.
Last question: Are you ready for this year’s Mini Hack contest?
As far as I know, starting from MATLAB R2024b, the documentation is defaulted to be accessed online. However, the problem is that every time I open the official online documentation through my browser, it defaults or forcibly redirects to the documentation hosted site for my current geographic location, often with multiple pop-up reminders, which is very annoying!

Suggestion: Could there be an option to set preferences linked to my personal account so that the documentation defaults to my chosen language preference without having to deal with “forced reminders” or “forced redirection” based on my geographic location? I prefer reading the English documentation, but the website automatically redirects me to the Chinese documentation due to my geolocation, which is quite frustrating!
----------------2024.12.13 update-----------------
Although the above issue was resolved by technical support, subsequent redirects are still causing severe delays...
In the past two years, MATHWORKS has updated the image viewer and audio viewer, giving them a more modern interface with features like play, pause, fast forward, and some interactive tools that are more commonly found in typical third-party players. However, the video player has not seen any updates. For instance, the Video Viewer or vision.VideoPlayer could benefit from a more modern player interface. Perhaps I haven't found a suitable built-in player yet. It would be great if there were support for custom image processing and audio processing algorithms that could be played in a more modern interface in real time.
Additionally, I found it quite challenging to develop a modern video player from scratch in App Designer.(If there's a video component for that that would be great)
-----------------------------------------------------------------------------------------------------------------
BTW,the following picture shows the built-in function uihtml function showing a more modern playback interface with controls for play, pause and so on. But can not add real-time image processing algorithms within it.

Has this been eliminated? I've been at 31 or 32 for 30 days for awhile, but no badge. 10 badge was automatic.
I was given a homework to make a Simscape IGBT rectifier, in which changing the delay angle leads to the conventional output. The input is 220 V 50 Hz supply, there are 2 gate pulses which I am providing using pulse generators (period 1/50 and pulse width 50%). The output, however is not correct. I am attaching the circuit diagram
and the incorrect output for a delay angle (α) 60 degrees. Can somebody point out the mistake? Thank you.
Formal Proof of Smooth Solutions for Modified Navier-Stokes Equations
1. Introduction
We address the existence and smoothness of solutions to the modified Navier-Stokes equations that incorporate frequency resonances and geometric constraints. Our goal is to prove that these modifications prevent singularities, leading to smooth solutions.
2. Mathematical Formulation
2.1 Modified Navier-Stokes Equations
Consider the Navier-Stokes equations with a frequency resonance term R(u,f)\mathbf{R}(\mathbf{u}, \mathbf{f})R(u,f) and geometric constraints:
∂u∂t+(u⋅∇)u=−∇pρ+ν∇2u+R(u,f)\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u} \cdot \nabla) \mathbf{u} = -\frac{\nabla p}{\rho} + \nu \nabla^2 \mathbf{u} + \mathbf{R}(\mathbf{u}, \mathbf{f})∂t∂u+(u⋅∇)u=−ρ∇p+ν∇2u+R(u,f)
where:
• u=u(t,x)\mathbf{u} = \mathbf{u}(t, \mathbf{x})u=u(t,x) is the velocity field.
• p=p(t,x)p = p(t, \mathbf{x})p=p(t,x) is the pressure field.
• ν\nuν is the kinematic viscosity.
• R(u,f)\mathbf{R}(\mathbf{u}, \mathbf{f})R(u,f) represents the frequency resonance effects.
• f\mathbf{f}f denotes external forces.
2.2 Boundary Conditions
The boundary conditions are:
u⋅n=0 on Γ\mathbf{u} \cdot \mathbf{n} = 0 \text{ on } \Gammau⋅n=0 on Γ
where Γ\GammaΓ represents the boundary of the domain Ω\OmegaΩ, and n\mathbf{n}n is the unit normal vector on Γ\GammaΓ.
3. Existence and Smoothness of Solutions
3.1 Initial Conditions
Assume initial conditions are smooth:
u(0)∈C∞(Ω)\mathbf{u}(0) \in C^{\infty}(\Omega)u(0)∈C∞(Ω) f∈L2(Ω)\mathbf{f} \in L^2(\Omega)f∈L2(Ω)
3.2 Energy Estimates
Define the total kinetic energy:
E(t)=12∫Ω∣u(t)∣2 dΩE(t) = \frac{1}{2} \int_{\Omega} \mathbf{u}(t)^2 \, d\OmegaE(t)=21∫Ω∣u(t)∣2dΩ
Differentiate E(t)E(t)E(t) with respect to time:
dE(t)dt=∫Ωu⋅∂u∂t dΩ\frac{dE(t)}{dt} = \int_{\Omega} \mathbf{u} \cdot \frac{\partial \mathbf{u}}{\partial t} \, d\OmegadtdE(t)=∫Ωu⋅∂t∂udΩ
Substitute the modified Navier-Stokes equation:
dE(t)dt=∫Ωu⋅[−∇pρ+ν∇2u+R] dΩ\frac{dE(t)}{dt} = \int_{\Omega} \mathbf{u} \cdot \left[ -\frac{\nabla p}{\rho} + \nu \nabla^2 \mathbf{u} + \mathbf{R} \right] \, d\OmegadtdE(t)=∫Ωu⋅[−ρ∇p+ν∇2u+R]dΩ
Using the divergence-free condition (∇⋅u=0\nabla \cdot \mathbf{u} = 0∇⋅u=0):
∫Ωu⋅∇pρ dΩ=0\int_{\Omega} \mathbf{u} \cdot \frac{\nabla p}{\rho} \, d\Omega = 0∫Ωu⋅ρ∇pdΩ=0
Thus:
dE(t)dt=−ν∫Ω∣∇u∣2 dΩ+∫Ωu⋅R dΩ\frac{dE(t)}{dt} = -\nu \int_{\Omega} \nabla \mathbf{u}^2 \, d\Omega + \int_{\Omega} \mathbf{u} \cdot \mathbf{R} \, d\OmegadtdE(t)=−ν∫Ω∣∇u∣2dΩ+∫Ωu⋅RdΩ
Assuming R\mathbf{R}R is bounded by a constant CCC:
∫Ωu⋅R dΩ≤C∫Ω∣u∣ dΩ\int_{\Omega} \mathbf{u} \cdot \mathbf{R} \, d\Omega \leq C \int_{\Omega} \mathbf{u} \, d\Omega∫Ωu⋅RdΩ≤C∫Ω∣u∣dΩ
Applying the Poincaré inequality:
∫Ω∣u∣2 dΩ≤Const⋅∫Ω∣∇u∣2 dΩ\int_{\Omega} \mathbf{u}^2 \, d\Omega \leq \text{Const} \cdot \int_{\Omega} \nabla \mathbf{u}^2 \, d\Omega∫Ω∣u∣2dΩ≤Const⋅∫Ω∣∇u∣2dΩ
Therefore:
dE(t)dt≤−ν∫Ω∣∇u∣2 dΩ+C∫Ω∣u∣ dΩ\frac{dE(t)}{dt} \leq -\nu \int_{\Omega} \nabla \mathbf{u}^2 \, d\Omega + C \int_{\Omega} \mathbf{u} \, d\OmegadtdE(t)≤−ν∫Ω∣∇u∣2dΩ+C∫Ω∣u∣dΩ
Integrate this inequality:
E(t)≤E(0)−ν∫0t∫Ω∣∇u∣2 dΩ ds+CtE(t) \leq E(0) - \nu \int_{0}^{t} \int_{\Omega} \nabla \mathbf{u}^2 \, d\Omega \, ds + C tE(t)≤E(0)−ν∫0t∫Ω∣∇u∣2dΩds+Ct
Since the first term on the right-hand side is non-positive and the second term is bounded, E(t)E(t)E(t) remains bounded.
3.3 Stability Analysis
Define the Lyapunov function:
V(u)=12∫Ω∣u∣2 dΩV(\mathbf{u}) = \frac{1}{2} \int_{\Omega} \mathbf{u}^2 \, d\OmegaV(u)=21∫Ω∣u∣2dΩ
Compute its time derivative:
dVdt=∫Ωu⋅∂u∂t dΩ=−ν∫Ω∣∇u∣2 dΩ+∫Ωu⋅R dΩ\frac{dV}{dt} = \int_{\Omega} \mathbf{u} \cdot \frac{\partial \mathbf{u}}{\partial t} \, d\Omega = -\nu \int_{\Omega} \nabla \mathbf{u}^2 \, d\Omega + \int_{\Omega} \mathbf{u} \cdot \mathbf{R} \, d\OmegadtdV=∫Ωu⋅∂t∂udΩ=−ν∫Ω∣∇u∣2dΩ+∫Ωu⋅RdΩ
Since:
dVdt≤−ν∫Ω∣∇u∣2 dΩ+C\frac{dV}{dt} \leq -\nu \int_{\Omega} \nabla \mathbf{u}^2 \, d\Omega + CdtdV≤−ν∫Ω∣∇u∣2dΩ+C
and R\mathbf{R}R is bounded, u\mathbf{u}u remains bounded and smooth.
3.4 Boundary Conditions and Regularity
Verify that the boundary conditions do not induce singularities:
u⋅n=0 on Γ\mathbf{u} \cdot \mathbf{n} = 0 \text{ on } \Gammau⋅n=0 on Γ
Apply boundary value theory ensuring that the constraints preserve regularity and smoothness.
4. Extended Simulations and Experimental Validation
4.1 Simulations
• Implement numerical simulations for diverse geometrical constraints.
• Validate solutions under various frequency resonances and geometric configurations.
4.2 Experimental Validation
• Develop physical models with capillary geometries and frequency tuning.
• Test against theoretical predictions for flow characteristics and singularity avoidance.
4.3 Validation Metrics
Ensure:
• Solution smoothness and stability.
• Accurate representation of frequency and geometric effects.
• No emergence of singularities or discontinuities.
5. Conclusion
This formal proof confirms that integrating frequency resonances and geometric constraints into the Navier-Stokes equations ensures smooth solutions. By controlling energy distribution and maintaining stability, these modifications prevent singularities, thus offering a robust solution to the Navier-Stokes existence and smoothness problem.
D.R. Kaprekar was a self taught recreational mathematician, perhaps known mostly for some numbers that bear his name.
Today, I'll focus on Kaprekar's constant (as opposed to Kaprekar numbers.)
The idea is a simple one, embodied in these 5 steps.
1. Take any 4 digit integer, reduce to its decimal digits.
2. Sort the digits in decreasing order.
3. Flip the sequence of those digits, then recompose the two sets of sorted digits into 4 digit numbers. If there were any 0 digits, they will become leading zeros on the smaller number. In this case, a leading zero is acceptable to consider a number as a 4 digit integer.
4. Subtract the two numbers, smaller from the larger. The result will always have no more than 4 decimal digits. If it is less than 1000, then presume there are leading zero digits.
5. If necessary, repeat the above operation, until the result converges to a stable result, or until you see a cycle.
Since this process is deterministic, and must always result in a new 4 digit integer, it must either terminate at either an absorbing state, or in a cycle.
For example, consider the number 6174.
7641 - 1467
We get 6174 directly back. That seems rather surprising to me. But even more interesting is you will find all 4 digit numbers (excluding the pure rep-digit nmbers) will always terminate at 6174, after at most a few steps. For example, if we start with 1234
4321 - 1234
8730 - 0378
8532 - 2358
and we see that after 3 iterations of this process, we end at 6174. Similarly, if we start with 9998, it too maps to 6174 after 5 iterations.
9998 ==> 999 ==> 8991 ==> 8082 ==> 8532 ==> 6174
Why should that happen? That is, why should 6174 always drop out in the end? Clearly, since this is a deterministic proces which always produces another 4 digit integer (Assuming we treat integers with a leading zero as 4 digit integers), we must either end in some cycle, or we must end at some absorbing state. But for all (non-pure rep-digit) starting points to end at the same place, it seems just a bit surprising.
I always like to start a problem by working on a simpler problem, and see if it gives me some intuition about the process. I'll do the same thing here, but with a pair of two digit numbers. There are 100 possible two digit numbers, since we must treat all one digit numbers as having a "tens" digit of 0.
N = (0:99)';
Next, form the Kaprekar mapping for 2 digit numbers. This is easier than you may think, since we can do it in a very few lines of code on all possible inputs.
Ndig = dec2base(N,10,2) - '0';
Nmap = sort(Ndig,2,'descend')*[10;1] - sort(Ndig,2,'ascend')*[10;1];
I'll turn it into a graph, so we can visualize what happens. It also gives me an excuse to employ a very pretty set of tools in MATLAB.
G2 = graph(N+1,Nmap+1,[],cellstr(dec2base(N,10,2)));
plot(G2)
Do you see what happens? All of the rep-digit numbers, like 11, 44, 55, etc., all map directly to 0, and they stay there, since 0 also maps into 0. We can see that in the star on the lower right.
G2cycles = cyclebasis(G2)
G2cycles{1}
All other numbers eventually end up in the cycle:
G2cycles{2}
That is
81 ==> 63 ==> 27 ==> 45 ==> 09 ==> and back to 81
looping forever.
Another way of trying to visualize what happens with 2 digit numbers is to use symbolics. Thus, if we assume any 2 digit number can be written as 10*T+U, where I'll assume T>=U, since we always sort the digits first
syms T U
(10*T + U) - (10*U+T)
So after one iteration for 2 digit numbers, the result maps ALWAYS to a new 2 digit number that is divisible by 9. And there are only 10 such 2 digit numbers that are divisible by 9. So the 2-digit case must resolve itself rather quickly.
What happens when we move to 3 digit numbers? Note that for any 3 digit number abc (without loss of generality, assume a >= b >= c) it almost looks like it reduces to the 2 digit probem, aince we have abc - cba. The middle digit will always cancel itself in the subtraction operation. Does that mean we should expect a cycle at the end, as happens with 2 digit numbers? A simple modification to our previous code will tell us the answer.
N = (0:999)';
Ndig = dec2base(N,10,3) - '0';
Nmap = sort(Ndig,2,'descend')*[100;10;1] - sort(Ndig,2,'ascend')*[100;10;1];
G3 = graph(N+1,Nmap+1,[],cellstr(dec2base(N,10,2)));
plot(G3)
This one is more difficult to visualize, since there are 1000 nodes in the graph. However, we can clearly see two disjoint groups.
We can use cyclebasis to tell us the complete story again.
G3cycles = cyclebasis(G3)
G3cycles{:}
And we see that all 3 digit numbers must either terminate at 000, or 495. For example, if we start with 181, we would see:
811 - 118
963 - 369
954 - 459
It will terminate there, forever trapped at 495. And cyclebasis tells us there are no other cycles besides the boring one at 000.
What is the maximum length of any such path to get to 495?
D3 = distances(G3,496) % Remember, MATLAB uses an index origin of 1
D3(isinf(D3)) = -inf; % some nodes can never reach 495, so they have an infinite distance
plot(D3)
The maximum number of steps to get to 495 is 6 steps.
find(D3 == 6) - 1
So the 3 digit number 100 required 6 iterations to eventually reach 495.
shortestpath(G3,101,496) - 1
I think I've rather exhausted the 3 digit case. It is time now to move to the 4 digit problem, but we've already done all the hard work. The same scheme will apply to compute a graph. And the graph theory tools do all the hard work for us.
N = (0:9999)';
Ndig = dec2base(N,10,4) - '0';
Nmap = sort(Ndig,2,'descend')*[1000;100;10;1] - sort(Ndig,2,'ascend')*[1000;100;10;1];
G4 = graph(N+1,Nmap+1,[],cellstr(dec2base(N,10,2)));
plot(G4)
cyclebasis(G4)
ans{:}
And here we see the behavior, with one stable final point, 6174 as the only non-zero ending state. There are no circular cycles as we had for the 2-digit case.
How many iterations were necessary at most before termination?
D4 = distances(G4,6175);
D4(isinf(D4)) = -inf;
plot(D4)
The plot tells the story here. The maximum number of iterations before termination is 7 for the 4 digit case.
find(D4 == 7,1,'last') - 1
shortestpath(G4,9986,6175) - 1
Can you go further? Are there 5 or 6 digit Kaprekar constants? Sadly, I have read that for more than 4 digits, things break down a bit, there is no 5 digit (or higher) Kaprekar constant.
We can verify that fact, at least for 5 digit numbers.
N = (0:99999)';
Ndig = dec2base(N,10,5) - '0';
Nmap = sort(Ndig,2,'descend')*[10000;1000;100;10;1] - sort(Ndig,2,'ascend')*[10000;1000;100;10;1];
G5 = graph(N+1,Nmap+1,[],cellstr(dec2base(N,10,2)));
plot(G5)
cyclebasis(G5)
ans{:}
The result here are 4 disjoint cycles. Of course the rep-digit cycle must always be on its own, but the other three cycles are also fully disjoint, and are of respective length 2, 4, and 4.
It's been over six years since I've written any serious MATLAB code, so I thought it would be fun to see how easily ChatGPT could help me out. While others have probably already used ChatGPT to generate MATLAB code, I didn't find any evidence of it when I searched through the ThingSpeak forum. That inspired me to post an example to get people thinking about it.
This example reads four temperature fields from the same channel and plots them on a single graph.
My ChatGPT prompt:
The prompt is pretty straightforward and essentially walks through all the elements of the chart that I wanted. It's also important to consider any filtering or "data cleansing" that should be done. Since this was my first time doing this, I decided to use an existing plot I was already familiar with as my "target state".
The prompt: "I would like you to generate some MATLAB code to create what is called a MATLAB Visualization. Its purpose will be to generate a chart of 4 fields found in a ThingSpeak channel. The ThingSpeak channel name is "Nest Nanny 2 (NN-02)" and its channel id (needed for the code) is xxxxxxx. The read api key is XXXXXXXXXXXXXXXX. The chart title should be "Nest Nanny 02 (NN-02) Todays Temperature Readings" It should plot data from 4 fields (field 3 - 6) who's names are "Surface Temp", "1/4 Temp", "3/4 Temp", and "Deep Temp". I would like the plot lines for these 4 fields to be different colors (red, orange, cyan, and blue) but on the same chart. I would like Temperature in Fahrenheit to be on the Y axis and Time on the x axis. I would like it to display the last 100 data points. I'd like to use this colororder. colororder(["#FF0000","#FFBB00","#00BBFF", "#0000FF"]) I would like the legend to be to the right of the chart, not contained within the chart. No temperature data should have a value of 50 or less and we can assume it's a sensor issue when this is observed. If a data value is 50 or less, use the value of it's nearest (in the time series) non-zero, non-negative value for that field. The data is stored in the channel as Fahrenheit and does not need to be converted from Celsius. "
Because I did this exercise using an existing plot and had a clear objective in mind, it was relatively quick to iterate four or five times with ChatGPT to refine my prompt. In just a few minutes, the generated plot almost perfectly matched my existing plot. (I xxxx'ed out the channel ID and API key before posting.) For someone who now only occasionally uses MATLAB, this approach saves time and will hopefully allow me to tap into elements of MATLAB that are now beyond my skill level and memory. ;)
ChatGPT generated MATLAB code:
% MATLAB code to create a ThingSpeak Visualization for temperature readings
% Define channel ID and Read API Key
channelID = xxxxxxx;
readAPIKey = 'XXXXXXXXXXXXXXXX';
% Number of data points to retrieve
numPoints = 100;
% Read data from the ThingSpeak channel for fields 3 to 6
[data, time] = thingSpeakRead(channelID, ...
'Fields', [3 4 5 6], ...
'NumPoints', numPoints, ...
'ReadKey', readAPIKey);
% Replace any value 50 or less with the nearest non-zero, non-negative value
for i = 1:size(data, 2)
% Identify indices where the data is 50 or less
badIndices = find(data(:,i) <= 50);
% Identify indices where the data is valid (greater than 50)
validIndices = find(data(:,i) > 50);
% Interpolate to replace bad values
if ~isempty(validIndices)
data(badIndices, i) = interp1(validIndices, data(validIndices, i), badIndices, 'linear', 'extrap');
end
end
% Plot the data
figure;
colororder(["#FF0000","#FFBB00","#00BBFF", "#0000FF"]); % Set the color order
plot(time, data(:,1), 'LineWidth', 2); hold on;
plot(time, data(:,2), 'LineWidth', 2);
plot(time, data(:,3), 'LineWidth', 2);
plot(time, data(:,4), 'LineWidth', 2);
hold off;
% Add labels and title
xlabel('Time');
ylabel('Temperature (°F)');
title('Nest Nanny 02 (NN-02) Todays Temperature Readings');
% Add legend and move it to the right of the chart
legend({'Surface Temp', '1/4 Temp', '3/4 Temp', 'Deep Temp'}, ...
'Location', 'eastoutside');
% Format the time on the x-axis
datetick('x', 'HH:MM:SS', 'keepticks');
grid on;
% Adjust the figure for better readability
set(gca, 'FontSize', 12);
Plot Comparison:

isequaln exists to return true when NaN==NaN.
unique treats NaN==NaN as false (as it should) requiring NaN to be replaced if NaN is not considered unique in a particular application. In my application, I am checking uniqueness of table rows using [table_unique,index_unique]=unique(table,"rows","sorted") and would prefer to keep NaN as NaN or missing in table_unique without the overhead of replacing it with a dummy value then replacing it again. Dummy values also have the risk of matching existing values in the table, requiring first finding a dummy value that is not in the table.
uniquen (similar to isequaln) would be more eloquent.
Please point out if I am missing something!
I am creating an ESP32 device which will upload data to thingspeak channel and I want the data to be displayed on my website after login. I have succesfully completed the first part of uploading the data to thingspeak. Any suggestions with second part will be very much appreciated.
Hello everyone,
I have an EV model, and I would like to calculate its efficiency, i.e., inverter efficiency, motor efficiency and motor efficiency, and I would also like to draw its efficiency map. What approaches can I use to achieve the said objectives.
For now,
- I have connected a power sensor at the battery side, which provides a average power at 0.001 sec.
- A three-phase power sensor at inverter's output, which apparantly provides higher power than input.
- A rotational power sensor, which also provides averaged mechanical power at 0.001 sec.
Following are the challenges which I am facing.
- Higher inverter power.
- Negative power as well, depending on the drive cycle especially when torque is negative during deceleration.
I am attaching the EV model. Your guidance on this will be highly appreciated.
Hi,
I tried several times to clear my channel data.
I would expect, when I click on Channel settings-clear channel all data from the channel is gone.
For me the data stay in. Delete channel works fine.
Is there a trick?
many thanks for your help
HEP
So generally I want to be using uifigures over figures. For example I really like the tab group component, which can really help with organizing large numbers of plots in a manageable way. I also really prefer the look of the progress dialog, uialert, confirm, etc. That said, I run into way more bugs using uifigures. I always get a “flicker” in the axes toolbar for example. I also have matlab getting “hung” a lot more often when using uifigures.
So in general, what is recommended? Are uifigures ever going to fully replace traditional figures? Are they going to become more and more robust? Do I need a better GPU to handle graphics better? Just looking for general guidance.
I'm almost embarressed enough to not ask this. :) I assumed sorting the "Updated" column in the "My Channels" view would sort my channels based on when data was last written to (last updated to) the channel
However, I have channels that have received date in August and yet the date/time stamp in the Uodated column displays a June date and therefore they sort in the wrong order. Does "update" mean something other than a data update, such as a settings update? If so, if there a way to sort the channels by the more recent data update?






